愿你坚持不懈,努力进步,进阶成自己理想的人

—— 2017.09, 写给3年后的自己

Linux常用命令总结

1、cd

用于切换目录,如:

cd ../
cd /Users/Ame/localhost

2、ls

用于列出(list)文件与目录,常用参数:
1) -l 列出长字符串,包括文件和文件夹的各种信息,如:

total 0
drwxr-xr-x+ 49 Ruphi  staff  1666  3 21 21:51 Ame
drwxrwxrwt   8 root   wheel   272  1 28  2016 Shared

2)-a 列出全部的文件和文件夹(包括隐藏的文件、当前目录.和上级目录..

  1. -d 仅列出目录本身
    4)-h 将文件容量以容易阅读的方式列出来(如KB、MB),和-l搭配使用
    5)-R 递归列出子目录
    注意:命令可以组合使用,如ls -lh

3、grep

用于匹配分析,如果有所需要的信息,就显示出来,语法格式为:

grep [-acinv][--color=auto] '待查找的字符串' filename

grep apple str.txt,将显示出str.txt文件中含有apple的所有行
它的参数有:
1)-a 对binary文件以text文件的方式查找数据
2)-c 计算查找到字符串的次数,如grep -c apple str.txt找到两行,所以输出2
3)-i 查找的时候忽略大小写
4)-v 反向选择,即显示出没有匹配内容的行
5)-n 显示行号
加上--color=auto参数,可以把匹配行中的待查找字符串高亮显示
还可以结合管道符使用,如ls -l | grep -i .txt,便是列出文件名含有.txt的文件

4、find

查找文件的命令,功能非常强大,基本语法为:

find [PATH] [option] [action]

4.1 与时间有关的参数

1)-mtime n 找出n天之前的一天内被更改过的文件
2)-mtime +n 找出n天之前(不包括n天)被改过的文件
3)-mtime -n 找出n天之内(含n天)被改过的文件
4)-newer fileName 找出比文件名为fileName的文件新的文件

4.2 与用户或用户组有关的

1)-user name 所有者为name的文件
2)-group name 所属用户组为name的文件
3)-uid n-gid n,用户ID/用户组ID为n的文件

4.3 与文件名和文件权限有关的

1)-name fileName 文件名为fileName的文件
2)-size [+-]fileSize 根据文件尺寸查找,+表示大于,-表示小于
3)-type fileType 文件类型:一般文件(f)、设备文件(b、c)、目录(d)、链接文件(l)、socket(s)、FIFO管道文件(p)
4)-perm mode 文件权限等于mode的,如find ./ -perm 0777
5)-perm -mode 文件权限要包含全部mode权限的文件,如find ./ -perm -0777
6)-perm +mode 文件权限至少包含任意一个mode权限的文件,如find ./ -perm +0777

5、cp

复制文件的命令,可以一次性复制多个文件到某一目录下,基本语法:

cp [-apiru] file1 file2 # 复制file1,生成为file2
cp file1 file2 file3 [...filen] someDir # 把多个文件复制到某一目录

常用参数:
1)-a 连同文件的特性复制(如权限、所有者、修改时间等)
2)-p 连同文件的属性复制,类似于-a,常用于备份
3)-i 若目标文件已经存在,覆盖前询问
4)-r 递归地复制,用于复制目录
5)-u 目标文件与源文件有差异的时候才能复制

6、mv

移动(move)文件、目录的命令,还可以该名,常用参数:
1)-f 强制覆盖(不会询问)
2)-i 覆盖前询问
3)-u 目标文件存在时,仅当当前文件较新的时候覆盖

7、rm

删除文件或者目录(remove之意)的命令,常用参数:
1)-f 强制删除
2)-i 互动模式,会询问用户
3)-r 递归删除

8、ps

查看进程情况的命令,常用参数:
1)-A 显示所有进程
2)-a 显示同一终端下的所有程序
3)-u 有效用户的相关进程
4)-x 列出完整的信息
5)-l 详细地将PID的信息列出
常用搭配:
1)ps aux 列出目前所有的正在内存当中的程序

9、kill、killall

kill用于传递一个信号(到某个PID或者%jobNumber),基本语法为

kill -signal PID

singal的参数有:
1)SIGHUP(代号1) 启动被终止的进程
2)SIGINT(代号2) 相当于ctrl+c,中断一个程序的进行
3)SIGKILL(代号9)强行终止一个进程
4)SIGTERM(代号15)以正常的方式来终止一个进程
5)SIGSTOP(代号17)相当于ctrl+z,暂停一个进程
实例:

kill -SIGTERM %1 # 正常方式终止后台第一个工作
kill -SIGHUP PID # 重启PID进程

killall 则是通过程序的名字来终止符合条件的进程,语法:

killall [-ile] [commandName]

解释如下:
1)-i 交互式,删除前询问
2)-l 命令名称忽略大小写
3)-e 要匹配名称

参考资料

初窥Linux之我最常用的20条命令