Linux学习笔记

linux系统目录

  • /boot 放置Linux内核以及其他用来启动树莓派的软件包
  • /bin 放置与Raspbian有关(包括运行图形界面所需的)的二进制可执行文件
  • /dev 这是虚拟文件夹之一,用来访问所有连接设备,包括存储卡
  • /etc 系统管理和配置文件
  • /home Linux上的我的文档,包含用户名命名的文件夹
  • /lib 各种应用需要的代码库
  • /lost+found 一般情况下是空的,当系统非法关机后,这里就存放了一些文件
  • /media 放置可移动存储驱动器,比如USB和CD
  • /mnt 用来手动挂在外部硬件驱动器或存储设备
  • /opt 可选软件文件夹,非系统部分的软件将会放置在这里
  • /sbin 放置超级用户使用的系统管理命令
  • /sys 放置操作系统文件
  • /tmp 放置临时文件
  • /usr 放置用户使用的程序
  • /var 虚拟文件,用于程序保存数据

更新源信息数据库

1
sudo apt-get update

更新已安装的包

1
sudo apt-get upgrade

升级系统

1
sudo apt-get dist-upgrade

开启root权限,su进入root

1
2
3
sudo passwd root
sudo passwd --unlock root
su

显示系统日期时间

1
date

从最后一行开始显示

1
tac /proc/cgroups

显示的时候,顺道输出行号

1
nl /proc/cgroups

一页一页的显示文件内容

1
more /proc/cgroups

一页一页的显示文件内容(可以往前翻页)

1
less /proc/cgroups

只看头几行

1
head -5 /proc/cgroups

只看尾巴几行

1
tail -5 /proc/cgroups

删除一个空的目录

1
rmdir name

编译c语言

1
2
3
4
5
gcc test.c -o test
# arm 平台
arm-linux-gcc test.c -o test
# 运行
./test

赋予超级可执行权限

1
2
chmod u+x test
chmod 777 test

关机

1
2
3
4
5
# 可以定时
sudo shutdown -h now
sudo halt
sudo poweroff
sudo init 0

重启

1
2
sudo reboot
sudo init 6

软件包管理软件

1
2
3
apt --help
dpkg --help
yum --help

Wget

1
wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tgz

查看系统信息

1
2
3
4
5
# 查看操作系统版本
cat /proc/version
# 查看主板版
cat /proc/cpuinfo
cat /proc/...

查看硬盘剩余空间

1
df -h

搜索局域网中IP地址

1
arp -a

查看挂载信息

1
sudo fdisk –l

执行shell脚本

1
2
./test.sh
sh test.sh

解压

1
2
3
4
# 解压一个zip格式压缩包
unzip file1.zip 
# 解压一个gzip格式的压缩包
tar -xvfz archive.tar.gz 

压缩

1
2
3
4
# 创建一个zip格式的压缩包
zip file1.zip file1 
# 创建一个gzip格式的压缩包
tar -cvfz archive.tar.gz dir1 

查看USB设备

1
lsusb

显示已载入系统的模块

1
2
# lsmod 其实就是list modules的缩写
lsmod

设置启动服务

1
sudo insserv /etc/init.d/mysript

删除启动服务

1
sudo insserv -r /etc/init.d/mysript

修改主机名

1
sudo hostname newname

增加用户

1
sudo adduser username

删除用户

1
sudo deluser username

查看系统运行情况

1
top

进程管理

1
2
3
ps -aux
# 或者
ps -ef | less

静态显示系统正在运行的进程

  • ps -aux
    • 参数
    • -a:显示终端上的所有进程,包括造作系统动态执行的基本单元
    • -u:显示进程的详细状态
    • -x:显示没有控制的终端的进程
    • -w:显示加宽,以便显示等多信息
    • -r:只显示正在进行的进程 动态显示系统进程:top
  • top
    • 参数
    • M:根据内存使用量来排序
    • P:根据CPU占有率来排序
    • T:根据进程运行时间长短来排序
    • U:可以根据后面输入的用户名来筛选进程
    • K:可以根据后面输入的PID来杀死进程
    • q:退出
    • h:获取帮助
      • 查看进程树:pstree [选项] [PID或用户名]
      • 查看后台任务列表: jobs -l
      • 将后台任务恢复到前台运行: fg
      • 激活后台被挂起的任务: bg
      • 挂起当前进程:Ctrl+z 组合键
      • 中断正在执行的命令程序:Ctrl+c组合键
      • 杀死置顶PID的进程: kill 13613
      • 显示同名的进程:pgrep -l vim
      • 杀死多个同名进程: killall -9 vim
      • 杀死符合条件的进程: pgrep -l -U huangdayu
      • 强制提出用户: pkill -9 -U huangdayu

查看内存分配情况

1
free -m (-k, -g)

当前目录下的磁盘使用信息

1
sudo du -sh

对进程做出一定的操作

1
kill -<signal> <PID>
  • signal 1 (SIGHUP): hang-up的缩写,该信号通知应用程序重新启动
  • signal 3 (SIGQUIT):该信号通知应用程序清理自身资源并退出
  • signal 6 (SIGABRT):该信号通知应用程序终止并立即退出
  • signal 9 (SIGKILL):该信号立即终止应用程序
  • PID :应用程序的进程号,可以通过ps 查看

文件管理

1
2
3
4
5
6
7
8
# 显示当前的绝对路径
pwd
# 切换路径
cd 
# 新建文件夹
mkdir
# 新建文件
touch

cd

  • cd .. :切换到上级目录
  • cd ~ :切换到/home/pi
  • cd / :切换到更目录
    • -L :表示启动符号连接跟踪,默认情况下是不会启动的。
    • -maxdepth: 该选项指定find命令最大的目录查看深度,如果为1的话表示当前目录文件和一级子目录文件。
    • -newer:表示只查找指定文件的修改时间更新的文件
    • -empty:表示只查找空文件
    • -atime :表示只查找距离上次访问指定天数之后的文件
    • -name:表示搜索完全匹配指定文件名的文件
    • -exec:指示find命令为每个匹配的文件路径执行指定的命令。

查找文件

1
2
3
4
5
6
7
find
# 该命令会搜索/mnt/volumer 中的所有名称匹配foobar的空文件,并执行rm命令将其删去
find /mnt/volumer -empty -name foobar -exec rm
# 按文件名查找文件
ind ./ -name test.py
# 按文件大小查找文件
find ./ -size +2M

通过读取filename文件

1
file <filename>

grep

1
2
3
4
5
6
7
8
9
grep <pattern> <file>
# > 定向符号(以把一个命令的输出结果重定向到一个文件)
top > Desktop/file_top.txt
# >> 重定向符号(在一个文件里追加内容)
ls -alh >> Desktop/file_top.txt
# 筛选内容
tail -f /linux.log | grep 'error'
# 搜索文件中的内容(头部:^ 结尾:$)
grep -n 'abcd' test.py

查看历史命令

1
history

管道命令

1
2
# 管道命令允许你把一个命令的输出结果转移给另一个命令
ls /home/pi | grep duer_linux.log

声卡

1
2
3
4
5
# 查看声卡
arecord -l
# 录音
arecord -Dhw:1,0 -c 2 -r 16000 -f S16_LE test.wav
arecord -D "plughw:0,0" -f S16_LE -r 16000 -d 5 -t wav file.wav  

软链接

1
2
3
4
# 创建文件的软链接(win中的快捷方式)
ln -s test.py test_link.py
# 创建文件的硬链接(创建文件的不同文件名:内存中记录指向该数据的文件名的个数,为0时是彻底删除)
ln test.py test_link.py

合并两个文件

1
cat test_1.py test_2.py > test_3.py

目录结构

1
tree .

文件打包管理:tar

  • -c :生成压缩包文件,创建打包文件
  • -v :列出压缩解压的详细过程,显示进度
  • -f :指出压缩文件名称,f后面一定是.tar文件,所以必须放选项最后(必须在参数的最后)
  • -t :列出压缩中包含的文件
  • -x :解开压缩文件
  • -C :指定解压路径(大写字母C)
  • -z :表示是tar.gz格式

解压缩

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 打包成tar文件(未压缩)
tar -cvf testTar.tar ./*
# 解压tar文件
tar -xvf testTar.tar
# 将已经打包的文件压缩成tar.gz文件:gzip
gzip -r testTar.tar
# 将tar.gz压缩包文件解压成tar打包文件
gzip -d testTar.tar.gz
# 直接压缩成tar.gz压缩包:
tar -zcvf teatTar.tar.gz ./*
# 直接解压tar.gz压缩包
tar -zxvf tearTar.tar.gz
# 解压到指定路径
tar -zxvf testTar.tar.gz -C /home/pi/test
# 直接压缩成tar.bz2压缩包:
tar -jcvf testTar.tar.bz2 ./*
# 直接解压tar.bz2压缩包
tar -jxvf tesrTar.tar.bz2
# 压缩成zip
zip -r testZip.zip ./*
# 解压zip
unzip -d /home/pi/test testZip.zip

查看位置

1
2
3
 which java
 # 或者
 whereis java

退出超级管理员

1
exit

查看Linux系统操作位

1
2
3
getconf LONG_BIT
# 包括系统内核
uname -a

查看端口占用

id是指端口号或进程ID

1
netstat -anp | grep id

查看进程信息

id/name:值进程ID或进程名称

1
ps aux | grep id/name

或者

1
ll /proc/id

远程复制本地1

1
scp -rp www.yibuwulianwang.com:/usr/local/java/jdk1.8.0_151/ ./

本地复制到远程

1
apt install sshpass
1
sshpass -p "password" scp -rp ./target/ybwlw.war root@47.106.91.50:/usr/local/src/tomcat/tomcat-1/webapps/

检查和控制内核的环形缓冲区2

1
dmesg | grep pid/name

Linux命令大全

Linux命令大全

  1. 20190112更新 

  2. 20190409更新 

今日诗词

作者信息