常用Linux命令

因为面试的时候经常问到 Linux 常用命令,蚊子就将他们的命令分类总结了一下。

文件目录类命令

浏览目录命令

ls

命令英文原意:list

功能描述:显示目p;录文件

语法:ls 选项 [ -ald ] [ 文件或目录 ]

-a 显示所有文件,包括隐藏文件

-l 详细信息显示

-d 查看目录属性

ls命令

pwd

命令英文原意:print working directory

语法:pwd

功能描述:显示当前所在的工作目录

pwd命令

目录操作命令

cd

命令英文原意:change directory

语法:cd [ 目录 ]

功能描述:切换目录

范例:\$ cd / 切换到根目录 :\$ cd ..

cd命令

mkdir

命令英文原意:make directory

语法:mkdir [ 目录名 ]

功能描述:创建新目录

范例:$ mkdir newdir

mkdir命令

rmdir

命令英文原意:remove directory

语法:rmdir [ 目录名 ]

功能描述:删除空目录

范例:$ rmdir newdir

浏览文件命令

cat

命令英文原意:concatenate and display files

功能描述:连接文件并打印到标准输出设备上

选项:-E 在每一行的末尾显示 $

​ -n 危险时行添加行号

参数:指定要连接的文件列表

范例:cat m1(在屏幕上显示文件 m1 的内容)

​ cat m1 m2 (同时显示文件 m1 和 m2 的内容)

more

语法:more [ 文件名 ]

​ (空格) 或 f – 显示下一页

​ (Enter) – 显示下一行

​ q 或 Q – 退出

功能描述:分页显示文件内容

范例:$ more /etc/services

less 命令的用法和 more 命令类似,也可以用来浏览超过一页的文件。所不同的是 less 命令除了可以按空格键向下显示文件外,还可以利用上下键卷动文件

功能描述:用于显示文件前几行的内容

格式:head [ 参数 ] < 文件名 >

参数:-n:显示前 n 行,不指定此参数显示前 10 行

范例:$ head /etc/passwd

tail

功能描述:用于显示文件后几行的内容

格式:tail [ 参数 ] < 文件名 >

参数:-n:显示后 n 行,不指定此参数显示后 10 行

+n:从第 n 行显示到文件尾

-F:用于跟踪显示不断增长的文件结尾内容(通常用于显示日志文件)

范例:$ tail /etc/passwd

文件操作命令

cp

命令英文原意:copy

功能描述:将文件从一处复制到另一处。一般在使用 cp 命令时将一个文件复制成另一个文件或复制到目录时,需要制定源文件名与目标文件名或目录。

格式:cp [ 参数 ] < 源文件路径 > < 目标文件路径 >

参数:-p:连同文件的属性一起复制,而非使用默认方式,常用于备份

​ -i:若目标文件已经存在时,在覆盖时会先询问操纵的进行

​ -r:递归持续复制,用于目录的复制行为

​ -u:目标文件与源文件有差异时才会复制

范例:cp test1.txt test2.txt(将 test1.txt 复制成 test2.txt)

​ cp test3.txt /tmp(将 test3.txt 复制到 /tmp 目录中)

​ cp -r test1(目录) test2(目录)(目录拷贝)

rm

命令英文原意:remove

功能描述:删除文件或目录

格式:rm [ 参数 ] < 目标文件路径 >

参数:-f:就是 force 的意思,忽略不存在的文件,不会出现警告消息

​ -i:互动模式,在删除前会询问用户是否操作

​ -r:递归删除,最常用于目录删除,它是一个非常危险的参数

范例:rm myfiles(文件名)(删除某个文件)

​ rm *(删除当前目录下的所有文件)

​ rm -r myfolder(目录名) (递归删除某个目录,包含该目录下所有文件及子目录)

​ rm -f *.txt(强迫删除所有后缀名为 txt 的文件)

​ rm -i *(删除当前目录下的所有文件,删除文件时会询问,可按 Y 或 N 键表示允许或拒绝删除文件)

find

功能描述:用来寻找文件或目录

格式:find 路径 [ 参数 ]

参数:-name filename:找出文件名为 filename 的文件

​ -size [ +- ] SIZE:找出比 SIZE 还要大(+)或小(-)的文件

​ -type TYPE:查找文件的类型为 TYPE 的文件,TYPE 的值主要有:一般文件(f)、设备文件(b、c)、目录(d)、连接文件(l)、socket(s)、FIFO 管道文件(p)

​ -perm mode:查找文件权限刚好等于 mode 的文件,mode 用数字表示,如0755

范例:find -type f(查找一般文件)

​ find -name runtest(查找名为 runtest 的文件)

find命令

grep

命令英文原意:Globally search a Regular Expression and Print

功能描述:在文件中搜索匹配的字符并进行输出

格式:grep [ 参数 ] < 要找的字串 > < 要寻找字串的源文件 >

参数:-a:将 binary 文件以 text 文件的方式查找数据

​ -c:计算找到 “查找字符串” 的次数

​ -i:忽略大小写的区别,即把大小写视为相同

​ -v:反向选择,即显示出不包含 ‘查找字符串’ 内容的那一行

grep命令

tar

命令英文原意:tape archive

功能描述:能够将用户所指定的文件或目录打包成一个文件,也可以通过指定参数开启压缩/解压缩功能

格式:tar [ 参数 ]< 文件 >

参数:-c:新建打包文件

​ -t:查看打包文件的内容含有哪些文件名

​ -x:解打包或解压缩的功能,可以搭配 -C(大写)指定解压的目录,注意 -c、-t、-x 不能同时出现在一条命令中

​ -j:通过 bzip2 的支持进行压缩/解压缩

​ -z:通过 bzip 的支持进行压缩/解压缩

​ -v:在压缩/解压缩过程中,将正在处理的文件名显示出来

​ -f filename:filename 为要处理的文件

​ -C dir:指定压缩/解压缩的目录 dir

范例:$ tar -cvf test.tar *(将当前的所有文件打包成 test.tar)

$ tar -czvf test.tar.gz *(将当前的所有文件打包成 test.tar,再用 gzip 命令压缩)

$ tar -tf test.tar(查看 test.tar 文件中包括了哪些文件)

$ tar -xvf test.tar(将 test.tar 解打包)

$ tar -xzvf foo.tar.gz(将 foo.tar.gz 解压缩并解打包)

进程控制类命令

查看系统中的进程命令

ps

功能描述:用来显示系统瞬间的进程信息,它可以显示出在用户输入 ps 命令时系统的进程及进程的相关信息

格式:ps [ 参数 ]

参数:-l:长格式输出

​ -u:按用户名和启动时间的顺序显示进程

​ -j:用任务格式来显示进程

​ -f:用树形格式来显示进程

​ -a:显示所有用户的所有进程(包括其他用户)

​ -x:显示五控制终端的进程

​ -r:显示运行中的进程

范例:$ ps(显示本用户的进程)

$ ps -aux | grep mosquito(查找 mosquito 用户的进程)

ps命令

top

功能描述:动态监视系统任务的工具,输出结果是连续的

格式:top [ 参数 ]

参数:-b:以批量模式运行,但不能接受命令行输入

​ -c:显示命令行,而不仅仅是命令名

​ -d N:显示两次刷新时间的间隔,比如 -d 5,表示两次刷新间隔为 5 秒

​ -i:禁止显示空闲进程或僵尸进程

​ -n NUM:显示更新次数,然后退出。比如 -n 5,表示 top 更新 5 次数据就退出

​ -p PID:仅监视制定进程的 ID,PID 是一个数值

​ -q:不经任何延时就刷新

​ -s:安全模式运行,金庸一些效互指令

​ -S:累积模式,输出每个进程的总的 CPU 时间

top命令

每 5 秒钟刷新一次,动态显示

按下 U 键:输入用户名 – 查看用户进程

按下 K 键:输入 PID – 删除进程

按下 Q 键:退出

控制系统中的进程命令

kill

功能描述:用于向某个进程(通过 PID 标识)传送一个信号,它通常与 ps 和 jobs 命令一起使用

格式:kill -SIGNAL PID

SIGNAL 参数:

​ 1:SIGHUP,启动被终止的进程

​ 2:SIGINT,相当于输入 ctrl + c,终端一个程序的进行

​ 9:SIGKILL,强制中断一个进程的进行

​ 15:SIGTERM,以正常的结束进程方式来终止进程

​ 17:SIGSTOP,相当于输入 ctrl + z,暂停一个进程的进行

范例:$ kill -SIGTERM %1(以正常的结束进程方式重之第一个后台工作进程)

$ kill -SIGHUP PID(重新启动进程 ID 为 PID 的进程)

killall

功能描述:使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程

格式:killall [ 参数 ] < 正在运行的进程名 >

参数:-e:对长名称进行精确匹配

​ -I:忽略大小写的不同

​ -p:杀死进程所属的进程组

​ -i:交互式杀死进程,杀死进程前需要进行确认

​ -l:打印所有已知信号列表

​ -q:如果没有进程被杀死。则不输出任何信息

​ -r:使用正则表达式匹配要杀死的进程名称

​ -s:用指定的进程号代替默认信号 “SIGTERM”

​ -u:杀死指定用户的进程

范例:$ killall game

nice

功能描述:允许在默认优先级的基础上进行增大或减小的方式来运行命令

格式:nice [ 参数 ] < command [arguments] >

参数:command:系统中任意可执行文件的名称

​ -n –adjustment:指定程序运行优先级的调整值(优先级的调整值范围为 -20 ~ 19,其中数值越小优先级越高,数值越大优先级越低,若 nice 命令未指定优先级的调整值,则以缺省值 10 来调整程序运行优先级,既在命令通常运行优先级基础之上增加 10)

范例:$ nice -n -5 myprogram&(在后台以通常运行优先级 -5 的优先级运行 myprogram)

renice

功能描述:改变一个正在运行的 nice 值

格式:renice [ 参数 ] < pid >

参数:command:系统中任意可执行文件的名称

​ -n:指定程序运行优先级的调整值

范例:$ renice -5 777(将正在运行的 PID 为 777 的进程的 nice 值改为 -5)

进程后台运行命令

&

范例:cp -r /usr/* test &(将 /usr 目录下的所有子目录及文件复制到 /root/test 目录下的工作放到后台运行)

进程的挂起和恢复

Ctrl + Z:进程挂起

Ctrl + C:进程终止

gf [ n ]:恢复到前台继续运行

bg [ n ]:恢复到后台继续运行

jobs:查看被挂起的进程

用户及权限管理类命令

用户管理类命令

useradd

功能描述:新建用户账号(超级用户可用)

格式:useradd [ 参数 ] < 用户名 >

参数:-d:指定用户登入时的主目录

​ -e:账号终止日期

​ -g:指定账户所属的用户组

​ -G:指定账户所属的附加组

​ -s:指定账户登陆后所使用的 shell

​ -u:指定用户 ID 号

范例:$ useradd -g net04 zhangsan(新建一个用户 zhangsan,用户组为 net04)

passwd

功能描述:设置或修改用户的口令以及口令的属性

格式:passwd [ 参数 ] < 用户 >

参数:-d:删除用户的口令

​ -I:暂时锁定指定的用户账号

​ -s:显示指定用户账号的状态

​ -u:解除指定用户账号的锁定

范例:$ passwd -l zhangsan(锁定用户 zhangsan账号)

$ passwd -u zhangsan(解锁用户 zhangsan账号)

usermod

功能描述:修改用户的属性(超级用户可用)

格式:usermod [ 参数 ] < 用户名 >

参数:-d:指定用户登入时的主目录

​ -e:账号终止日期

​ -g:指定账户所属的用户组

​ -G:指定账户所属的附加组

​ -s:指定账户登陆后所使用的 shell

​ -u:指定用户 ID 号

​ -I:新用户名(用于修改用户名)

范例:$ usermod -l zhangs zhangsan(将 zhangsan 改为 zhangs)

userdel

功能描述:删除指定的用户账号(超级用户可用)

格式:userdel [ 参数 ] < 用户名 >

参数:-r:不仅删除此用户账号,而且删除用户主目录及本地邮件存储的目录或文件

​ -f:删除用户登入目录以及目录中所有文件

su

功能描述:切换用户身份

格式:su < 用户名 >

注:超级用户可以切换为任何普通用户,而不需要输入口令;普通用户转换为其他用户需要输入被转换用户的口令;使用 exit 可以返回本来的用户身份。

id

功能描述:查看用户的 UID、GID 和用户所属用户组的信息,如果不指定用户,则显示当前用户的相关信息。

格式:id < 用户名 >

whoami

查看当前用户名

w

查看当前登录系统用户和详细信息

用户组管理类命令

groupadd

功能描述:新建组群(超级用户可用)

格式:groupadd [ 参数 ] < 用户组名 >

参数:-g:指定用户组 ID

​ -o:允许组 ID 号不唯一

groupmod

功能描述:修改指定的用户组的属性(超级用户可用)

格式:groupmod [ 参数 ] < 用户组名 >

参数:-g:指定新的用户组 ID

​ -n:制定新的用户组名字

​ -o:允许组 ID 号不唯一

groupdel

功能描述:删除指定的用户组(超级用户可用)

格式:groupdel < 用户组名 >

注:在删除指定用户组之前必须保证该用户组不是任何用户的主要组群,否则要先删除以此用户组为主要组群的用户才可以删除该用户组。

文件权限管理类命令

文件权限:

  1. 读取权限(r):浏览文件 / 目录中内容的权限
  2. 写入权限(w):对文件而言是修改文件内容的权限;对目录而言是删除、添加和重命名目录内文件的权限
  3. 执行权限(x):对可执行文件而言是允许执行的权限;对目录而言是进入目录的权限

文件用户分类:

  1. 文件所有者:建立文件和目录的用户
  2. 文件所有者所在组用户:文件所有者所属用户组中的其他用户
  3. 其他用户:既不是文件所有者,又不是文件所有者所在组的其他所有用户
  4. 超级用户:负责整个系统的管理和维护,拥有系统中所有文件的全部访问权限

chmod

功能描述:修改文件的访问权限

格式:chmod < 模式 > < 文件 >

模式:对象:u – 文件所有者、g – 同组用户、o – 其他用户

​ 操作符:+ – 增加、- – 删除、= – 赋予

​ 权限:r – 读、w – 写、x – 执行、s – 设置用户 ID

范例:$ chmod g-w file(取消同组用户对 file 文件的写入权限)

$ chmod 775 pict(将 pict 目录的访问权限设置为 775)

$ chmod u+s file(设置 file 文件的设置用户 ID 位)

chown

功能描述:将指定文件的拥有者改为指定的用户或用户组

格式:chown < 参数 > < 所有者/组 > < 文件 >

参数:-c:显示更改的部分的信息

​ -f:忽略错误信息

​ -h:修复符号链接

​ -R:处理指定目录以及其子目录下的所有文件

​ -v:显示详细的处理信息

​ -deference:作用于符号链接的指向,而不是链接文件本身

范例:$ chown hellen ex1(将 ex1 的所有者由 root 改为 hellen)

chgrp

功能描述:改变文件的所属用户组

格式:chgrp < 参数 > < 组 > < 文件 >

参数:-c:当发生改变时输出调试信息

​ -f:不显示错误信息

​ -R:处理指定目录以及其子目录下的所有文件

​ -v:运行时显示详细的处理信息

​ –deference:作用于符号链接的指向,而不是链接文件本身

​ –no-deference:作用于符号链接本身

范例:$ chgrp staff ex1(将 ex1 文件所属的用户组由 root 改为 staff)