linux常⽤命令总结
查看当前操作系统内核信息、发⾏版本
uname -a #查看内核信息
cat /etc/issue  #查看系统发⾏版本
将屏幕输出的信息重定向输出到某个⽂件。
重定向符号
>    输出重定向到⼀个⽂件或设备覆盖原来的⽂件
>!    输出重定向到⼀个⽂件或设备强制覆盖原来的⽂件
>>    输出重定向到⼀个⽂件或设备追加原来的⽂件,旧数据保留
<    输⼊重定向到⼀个程序即将程序A的输出可以重定向输⼊到程序B,作为B的输⼊
标准错误重定向符号
2>      将⼀个标准错误输出重定向到⼀个⽂件或设备覆盖原来的⽂件  b-shell
2>>      将⼀个标准错误输出重定向到⼀个⽂件或设备追加到原来的⽂件
2>&1    将⼀个标准错误输出重定向到标准输出注释:1 可能就是代表标准输出
>&      将⼀个标准错误输出重定向到⼀个⽂件或设备覆盖原来的⽂件  c-shell
|&      将⼀个标准错误管道输送到另⼀个命令作为输⼊
在 bash 命令执⾏的过程中,主要有三种输出⼊的状况,分别是:
1. 标准输⼊;代码为 0 ;或称为 stdin ;使⽤的⽅式为 <
2. 标准输出:代码为 1 ;或称为 stdout;使⽤的⽅式为 1>
3. 错误输出:代码为 2 ;或称为 stderr;使⽤的⽅式为 2>
⽰例
[test @test test]# ls -al  1>   2>
将屏幕显⽰的数据,正确的输出到 错误的数据输出到
[test @test test]# ls -al 1> 2> &1
把stdout定位到 ,再把stderr定位到
即将显⽰的数据,不论正确或错误均输出到 当中!错误与正确⽂件输出到同⼀个⽂件中,则必须以上⾯的⽅法来写!不能写成其它格式!
[test @test test]# ls -al 1> 2> /dev/null
将显⽰的数据,正确的输出到 错误的数据则予以丢弃! /dev/null ,可以说成是⿊洞装置。为空,即不保存。
参考:
进程后台运⾏:
如果想后台运⾏,即使关闭当前的终端也可以运⾏的话,需要nohup命令和&命令。
&:加在⼀个命令的最后,可以把这个命令放在后台执⾏
nohup:不挂断的运⾏命令。即no hang up(不挂起)
让进程在后台不挂断的运⾏:
nohup command &
缺省情况下上述命令的所有输出都被重定向到⼀个名为nohup.out的⽂件中,除⾮另外指定了输出⽂件:
nohup command > myout.log 2>&1 &
说明:
鹿晗七龙珠事件
(1) 表⽰把标准输出(STDOUT)重定向到 那个⽂件,这⾥重定向到了myout.log
(2) & 表⽰在后台执⾏脚本
这样可以到达⽬的,但是,我们退出shell窗⼝的时候,必须⽤exit命令来退出,否则,退出之后,该进程也会随着shell的消失⽽消失(退出、关闭)
(3)2>&1 表⽰把标准错误重定向到标准输出,这⾥&1表⽰标准输出 , 为什么需要将标准错误重定向到标准输出的原因,是因为标准错误没有缓冲区,⽽STDOUT有。
(4)使⽤-u参数,使得python不启⽤缓冲。
nohup python -u test.py > myout.log 2>&1 &
python的输出有缓冲,导致python.log3并不能够马上看到输出。加-u参数就可以了。
杀死进程
先⽤ps命令查看进程pid,再⽤kill命令杀死进程。
ps -aux
kill <;进程号>
例:后台运⾏test_mysql.py脚本
4075是此进程的id
杀死T进程:
哈佛大学的入学要求kill -9 pid
批量杀死进程
ps -ef|grep 进程名包含的部分字符|awk '{print $2}'|xargs kill -9
⽬录操作
新建、删除⽬录命令
新建:
mkdir  [选项] ⽬录名
-p选项:递归建⽴所需⽬录
剪切粘贴
将source⽬录或⽂件剪切到dest⽬录或⽂件:
mv [options] source dest
-i: 若指定⽬录已有同名⽂件,则先询问是否覆盖旧⽂件;
-f: 在 mv 操作要覆盖某已有的⽬标⽂件时不给任何指⽰;
删除:
rm [选项] ⽂件名
例如:删除backup⽂件夹
1 删除⽂件夹的内容包括⽂件夹:
rm -rf ⽂件夹的名字(-r 是循环的意思, f是不询问的意思)
2 .删除⽂件夹的内容不包括⽂件夹:
rm -rf  ⽂件夹的名字/*      (后⾯加上/*表⽰删除内容不删除⽂件夹)沉珂的照片
3、清空当前⽂件夹下的所有⽂件
在当前⽂件夹执⾏命令:
rm -rf *
4、rm反向删除⽂件(删除指定⽂件之外的⽂件)
法⼀:母亲节快乐祝福语简短
shopt -s extglob      (打开extglob模式)关闭:shopt -u extglob
rm -fr !(file1)      # 删除除file1外的所有⽂件
rm -rf !(file1|file2)      # 删除除file1、file2外的所有⽂件
法⼆:
ls | grep -v keepfile | xargs rm  # 删除keep⽂件之外的所有⽂件
说明: ls先得到当前的所有⽂件和⽂件夹的名字, grep -v keep,进⾏grep正则匹配查keep,-v参冼米华
数决定了结果为匹配之外的结果,也就是的到了keep之外的所有⽂件名,然后 xargs⽤于从标准输⼊获得参数并且传递给后⾯的命令,这⾥使⽤的命令是 rm,然后由rm删除前⾯选择的⽂件
参考:
返回到linux系统根⽬录
cd /
此时⽤ls命令,会看到⼀个home⽂件夹,home⽂件夹中存放linux系统下所有⽤户名。
返回到当前⽤户的Home⽬录
cd ~
返回上⼀级⽬录
cd ..
返回上两级⽬录
cd ../..
查看进程信息
显⽰内存中所有进程详细信息
ps -aux
若是只⽤ps,只能看到当前终端的进程信息。 ps -aux可以查看内存中所有进程的信息。
查询某个进程信息
ps -aux | grep <;进程号>
ps -aux命令显⽰的结果中各字段的含义:
USER:该 process 属于那个使⽤者账号的
PID :该 process 的号码
%CPU:该 process 使⽤掉的 CPU 资源百分⽐
%MEM:该 process 所占⽤的物理内存百分⽐
VSZ :该 process 使⽤掉的虚拟内存量 (Kbytes)
RSS :该 process 占⽤的固定的内存量 (Kbytes)
TTY :该 process 是在那个终端机上⾯运作,若与终端机⽆关,则显⽰ ?,另外, tty1-tty6 是本机上⾯的登⼊者程序,若为 pts/0 等等的,则表⽰为由⽹络连接进主机的程序。
STAT:该程序⽬前的状态,主要的状态有
R :该程序⽬前正在运作,或者是可被运作
S :该程序⽬前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
T :该程序⽬前正在侦测或者是停⽌了
Z :该程序应该已经终⽌,但是其⽗程序却⽆法正常的终⽌他,造成 zombie (疆⼫) 程序的状态
START:该 process 被触发启动的时间
TIME :该 process 实际使⽤ CPU 运作的时间
COMMAND:该程序的实际指令
参考:
linux上进程有5种状态:
1. 运⾏(正在运⾏或在运⾏队列中等待)
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3. 不可中断(收到信号不唤醒和不可运⾏, 进程必须等待直到有中断发⽣)
4. 僵死(进程已终⽌, 但进程描述符存在, 直到⽗进程调⽤wait4()系统调⽤后释放)
张雨绮有对双胞胎5. 停⽌(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停⽌运⾏运⾏)
要对进程进⾏监测和控制,⾸先必须要了解当前进程的情况,也就是需要查看当前进程,⽽ps命令就是最基本同时也是⾮常强⼤的进程查看命令.使⽤该命令可以确定有哪些进程正在运⾏和运⾏的状态、进程是否结束、进程有没有僵⼫、哪些进程占⽤了过多的资源等等.
杀死T进程:
kill -9 pid
⽂件操作
查看指定⽂件的⼤⼩
du -h ⽂件名
例如:
du -h 1.jpg
新建⽂件
touch ⽂件名
解压缩⽂件
*.⽂件解压缩命令:
1、压缩命令:
命令格式:tar  -zcvf  压缩⽂件名.  被压缩⽂件名
例如:
tar -cvzf Driver_ Driver_license
可先切换到当前⽬录下。压缩⽂件名和被压缩⽂件名都可加⼊路径。
2.解压缩命令:
命令格式:tar  -zxvf  ⽂件名.
解压缩后的⽂件只能放在当前的⽬录。
解压zip⽂件:
unzip test.zip  # 解压到当前⽂件夹
unzip -o test.zip -d tmp/  # 解压到tmp⽂件夹下
查某个⽂件
find / -name ⽂件名
按条件删除⽂件
find . -name "01*.jpg" | xargs rm  # 删除当前⽬录下01开头jpg结尾的所有⽂件
find . -name "00[2-9]*.jpg" | xargs rm  # 删除当前⽬录下00开头第三位是2到9中任⼀个数且jpg结尾的所有⽂件
如果没有可以删除的⽂件,就会提⽰:
rm: missing operand
Try ‘rm --help’ for more information.
删除指定⽬录下⼤⼩为0的⽂件
find ⽂件名 -size  0 -print0 |xargs -0 rm
例如删除当前⽬录下⼤⼩为0的⽂件:
find . -size  0 -print0 |xargs -0 rm
参考:
批量拷贝⽂件
格式:
find path1 -name "jpg" | xargs cp -t path2
将path1下所有较jpg的⽂件拷贝到path2
例如:
find ./ ocr_train_data/ -name "*.jpg" | xargs cp -t ocr_train_data_merge20_and_true/
查看⽂档⾏数:
wc -l <⽂件名>