• Linux 刚面世时并没有图形界面,所有的操作全靠命令完成,如磁盘操作文件存取文件权限设定等
  • 在职场中,大量的服务器维护工作以及测试功能都是在远程通过SSH 客户端来完成的,没有图形界面,所有的维护工作都需要通过命令来完成
  • Linux 发行版本的命令大概有 200 多个,但是常用的命令只有 20 多个而已
  • 在职场中,作为测试,运维,安全来说,必须要或多或少的掌握一些 Linux 常用的终端命令

    一、文件和目录常用命令

    1. ls(list) —— 查看目录内容

  • . ” 代表当前目录,“ . . ” 代表上一级目录。

  • 以 “ . ” 开头的文件为隐藏文件,需要用 -a 参数才能显示。

ls 常用选项:

参数 含义
-a 显示指定目录下所有子目录与文件,包括隐藏文件.(通常是系统文件)
-l 以列表的方式显示文件的详细方式。
-h 必须配合 -l 使用,以人性化的方式显示文件.(就是显示文件大小的单位)

ls 通配符的使用 —- 快速定位:

通配符 含义
* 代表任意个输字符.
代表任意一个字符,问号的个数至少可以是一个。
[] 表示可以匹配字符组中的任意一个.
[abc] 匹配a, b, c 中任意一个.
[a-f] 匹配 a 到 f 范围内的任意一个字符.
\ 转义字符,例如:ls \a(查找文件名为 a 的文件) 。

2. cd(change directory)—— 切换工作目录

cd 常用命令:

命令 含义
cd/cd ~ 切换到当前用户的主目录( / 根目录;~ home。目录root用户为:/root,普通用户为:/home/用户名)
cd. 保持在当前目录不变。
cd .. 切换到上级目录。
cd - 可以在最近两次的工作目录之间来回切换。
cd ./目录1/目录2 进入当前目录下的子目录。

3. touch —— 创建修改操作

例如: xxx@ubuntu:~$ touch test

  • 如文件不存在,则将创建一个新的空白文件。
  • 如文件或者目录存在,这会改变目录或文件的时间属性(改为当前系统时间)。

4. mkdir(make directory)—- 创建目录

示例 含义
mkdir a b c 创建同一水平的不同目录。
mkdir -p a/b/c 创建递归目录.

注意:新建目录的名称不能与当前目录中已有的目录或文件同名。


5. rm(remove)—— 删除文件或目录

参数 含义
-f 强制删除,忽略不存在的文件,没有提示。
-r 递归的删除目录下的内容,删除不是空目录时必须加上此参数。(rmdir 只能删除空目录)

注意:使用rm删除后的文件不能恢复,所以要谨慎使用。


6. tree —— 以树状图列出文件目录结构

参数 含义
-d 只显示目录。

7.cp(copy)—— 复值目录或文件

参数 含义
-i 覆盖文件前提示,用来判断是否已经存在同名文件,并是否需要重新写入。
-r 用于复制目录下所有子目录和文件,目标文件必须是个目录名。

8. mv(move)—— 移动文件或目录(也可以给文件或目录重命名)

操作 含义
mv (-i)(-f)源文件 目标文件
- 目标文件不存在,与源文件在同一目录下,则相当于重命名源文件。
- 目标文件不存在,与源文件在不同目录下,则移动源文件。
- 若目标文件是已存在的的文件,则会于替换目标文件原有的内容。
mv 源文件 目标目录 将文件移动到目标目录下。
mv 原目录 目标目录 目标目录已存在,则移动到目标目录下;目标目录不存在则改名。

因此要用 -i 选项来判断目标文件是否存在,以及是否需要覆盖。
(-f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示)


9. cat(concatenate) —— 查看文件内容,创建文件,合并文件,追加文件内容

操作 示例
查看文件:对非空输出行编号。 cat -b 文件名
查看文件:对所有的输出行编号。 cat -n 文件名
同时查看多个文件:按顺序依次显示。 cat 文件1 文件2
创建新的文件:然后输入内容,最后空行 ctrl+d 保存文件。 cat > 新文件名
合并文件:文件1,2依然存在,文件3中的内容会被覆盖掉。 cat 文件1 文件2 > 文件3
追加文件内容:在原文件上继续添加内容 cat >> 文件名(ctrl+d 保存退出)或者 cat 文件1 >> 文件2
覆盖文件内容:文件1内容不变,文件2内容被覆盖。 cat 文件1 > 文件2

10. more —— 分屏显示文件内容,每次只显示一页内容,使用查看内容较多的文件

  • cat是一次显示所有的内容,适用查看内容较少的文件。

11. grep —— 在文本文件中进行特定的搜索

选项 含义
-n 显示匹配行及行号
-v 显示不包含匹配文本的所有行(相当于取反)
-i 忽略大小写

例如:在123.txt中查找所有 as单词: grep as 123.txt

两种模式的搜索:

  • grep ^f 123.txt 查找所有以 f 开头的行。
  • grep a$ 123.txt 查找所有以 a 结尾的行。

12. 管道 | —— 将左端命令的做为右边命令的输入

常用管道命令:

命令 举例
more ls -lah | more 输出的内容分屏显示。
grep ls -lah | grep as 在输出的内容中查找文件名/目录名包含 as 的。

13. echo —— 输出输入的文字内容

  • echo hello 显示 hello。
  • 常与重定向一起使用。

14. > 和 >> —— 重定向

将本应显示在终端上的内容,输出/追加到指定文件中。

符号 含义
> 表示输出,会覆盖文件原有的内容。例:echo hello world! > a
>> 表示追加, 会将内容增加到已有文件的末尾。 例:echo hello >> b

15. 其他常用命令

命令 含义
clear 清屏。(windows下为 cls)快捷键: ctrl + l
file [文件或目录] 显示文件的类型(目录、text、zip、shell脚本等)
history 查看历史命令。
pwd 查看当前所在路径。

二、远程管理常用命令

1. shutdown —— 开关机

常用选项:

参数 含义
sync 把内存中的数据写到磁盘中。(关机、重启前都需先执行sync)
shutdown -r now 或 reboot 立刻重启。
shutdown -h now 立刻关机。
shutdown -h 08:00 预定时间关闭系统。(若现在超过8点,则明晚8点)
shutdown -h +10 10分钟后关机。
shutdown -c 取消按预定时间关闭系统。

2. ifconfig —— 显示或配置网卡信息(临时的)

  • 修改IP地址:ifconfig eth0 192.168.120.6
  • 修改MAC地址:ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE

3. SSH工具 —— 对数据进行加密和压缩

SSH 是专门为远程登录会话和其他网络服务提供安全性的协议。

  • 加密:防止信息泄露。
  • 压缩:提高传输速率。

    ssh客户端简单的使用格式:ssh [-p port] user@remote

    | 参数 | 含义 | | —- | —- | | port | ssh server监听的端口,若不指定则默认为 22。(一定要根据服务器来指定,否则可能连不上服务器) | | user | 是远程机器上的用户名,如果不指定则默认为当前用户。 | | remote | 是远程机器上的地址,可以是IP地址,也可以是域名。 |

4. Scp(Secure copy)—— 用来远程拷贝文件

常用的命令格式:

作用 命令格式(注意选项)
将文件从本地复制到远端。 scp -P port 本地文件名(最好写上绝对路径) user@remote:远程主机上路径+文件名
把远端文件复制到本地。 scp -P port user@remote:远程要复制文件的路径+文件名
复制目录文件。 scp -r text root@remote:Desktop(本地复制到远端)
指定其他端口。 scp -P 50 root@remote:/home/123.txt(远程复制到本地当前目录)

三、用户和权限命令

1. 文件/目录的权限包括:

序号 权限 英文 缩写 数字代号
01 read r 4
02 write w 2
03 执行 excute x 1

2. ls -l —— 查看文件夹下文件的详细信息

权限 硬连接数 拥有者 大小 时间 名称
drwxrwxr-x 2 root root 4096 Jan 2 22:09 Desktop
  • “d”代表文件夹,”-“代表普通文件,”c”代表硬件字符设备,”b”代表硬件设备。
  • 后9个字母分别代表三组权限:文件所有者,用户组,其他用户拥有的权限。
  • 硬连接数表示有多少种方式可以访问到当前目录/文件。例:cd . 或 绝对路径

3. chmod —— 修改用户/组 或 文件/目录的权限

  • 方法1:chmod +/-[wrx] 文件/目录名
  • 方法2:chmod 数字0-7 文件/目录名

4. 超级用户(root账号) —— 用于系统的维护和管理

sudo含义:substitute user 表示使用另一个用户的身份,预设的身份为 root。


5. 组管理

命令 作用
groupadd 组名 添加组。
groupdel 组名 删除组。
cat /etc/group 确认组信息。
chgrp -R(主要用于目录,表示递归)组名 文件/目录名 修改文件/目录的所在组。
groupmod -n 新组名 旧组名 修改用户组名字。

6. 用户管理

命令 作用 说明
useradd -m -g 组 新建用户名 添加新用户 -m 自动建立用户 hom 目录。
-g 指定用户所在的组,否则会建立
一个与新用户名同名的组。
passwd 用户名 设置用户密码 也可以直接修改当前用户的密码。
userdel -r 用户名 删除用户 -r 自动删除用户 home 目录。
cat /etc/passwd | grep 用户名 确认用户信息 新建用户后,用户信息会保存在/etc/passwd 文件中。

passwd 文件格式:

用户名 密码 UID GID 用户全名/本地账号 home目录 登陆使用的shell
root x(表加密) 0 0 root /root /bin/bash

7. 查看用户

命令 作用
id [用户名] 查看用户UID(用户标识符)和 GID(组标识信息)。
who 查看所有登录的用户列表。
whoami 查看当前登录用户的账户名。

8. usermod —— 设置用户的主组/附加组和登录 shell

  • 主组:通常在建立用户时指定,在 /etc/passwd/的第四列 GID 对应的组。表示自己创建新的组。
  • 附加组:/etc/group中最后一列表示该组的用户列表,表示加入到其他组当中。用于获取附加权限(如:sudo权限) | 语法格式 | 作用 | | —- | —- | | (sudo)usermod -g 组(主组) 用户名 | 修改用户的主组。 | | (sudo)usermod -G 组(附加组) 用户名 | 修改用户的附加组。 | | (sudo)usermod -s /bin/bash 用户名 | 修改用户登录的 shell。 |

9. which —— 查看命令所在位置

  • /etc/passwd 用于保存用户信息的文件。
  • /usr/bin/passwd 用于修改用户密码的程序。

例如: which ls 输出:/bin/ls which useradd 输出:/usr/sbin/usradd

bin 和 sbin 的含义(了解):

  • /bin(binary)是二进制执行文件目录,主要用于具体应用。
  • /sbin(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理。
  • /usr/bin 主要用于后期安装的一些软件。
  • /usr/sbin(super ~)超级用户的一些管理程序。

10. su —— 切换用户

命令 作用
su - 目标用户名 切换用户,并切换到目标用户的 home 目录。
su 目标用户名 切换用户,但不切换 home 目录。
su 切换到 root,不推荐使用,不安全。
exit 退出当前登录账户。

11. 修改文件权限

命令格式 含义
chown 用户名 文件名|目录名 修改文件/目录的拥有者。
chgrp -R 组名 文件名|目录名 递归修改文件/目录的组。
chmod -R 数字(例:777) 文件名|目录名 递归修改文件/目录权限。

四、系统信息命令

1. 时间和日期

  • 查看系统时间 date:Fri Jan 3 15:45:05 CST 2020

  • 查看日历 cal 2020


2. 磁盘信息

命令 作用
df -h(disk free) 显示磁盘剩余空间。-h 以人性化的方式磁盘文件大小
du -h 目录名(disk usage) 显示目录下的文件大小。

3. 服务与进程信息

命令 含义
netstat -lnp(t)(network state)
常用方法:netstat -lnp|grep 端口号/进程号/进程名
一般用于检验本机各端口的网络连接情况。(l:只列出监听中的连接. n:禁用域名解析功能,查出IP且速度快。p:获取进程名、进程号。t:只列出 TCP协议的连接。)
ps aux(process status)
常用方法:ps aux|grep 进程号/进程启动命令/服务名
查看进程的详细状况。(a:显示终端上的所有进程,包括其他用户的进程。u:显示进程的详细状态。x:显示没有控制终端的进程。(不是终端启动的))
top 动态显示运行中的程序并且排序。(退出可以直接输入 q)
kill [-9] 进程号 终止指定代号

示例:ps aux|grep tomcat netstat -lnp|grep 进程号 :查tomcat服务占用的端口。


4. 软/硬链接

  • 软链接:相当于快捷方式,源文件删除时,软链接就会失效。
  • 硬链接:相当于文件的副本,修改源文件时,副本也会被修改,源文件被删除时,副本依然存在。 | 命令格式 | 说明 | | —- | —- | | ln -s 被链接源文件绝对路径+文件名 [新建软件链接名称] | 创建文件软链接。 | | ln 被链接源文件绝对路径+文件名 [新建软件链接名称] | 创建文件硬链接。 |

两者的差异是在图标上,硬链接的图标是没有快捷方式那样的箭头。

五、打包/解包 和 压缩/解压缩

  • tar 打包/解包(后缀 .tar):将一系列文件打包到一个大文件中,也可以恢复回来
  • gzip 压缩/解压缩(后缀 .tar.gz):压缩或解压缩 tar 打包后的文件。(仅对单一文件)
  • bzip2 压缩/解压缩(后缀 .tar.bz2):压缩或解压缩 tar 打包后的文件。(仅对单一文件)
  • zip/unzip 压缩/解压缩(后缀 .zip):压缩或解压缩 zip 打包后的文件。 | 含义 | 命令格式 | | —- | —- | | 查看文件类型 | file 文件名 | | 打包文件 | tar -cvf a.tar 文件1 文件2 …或 路径 | | 解包文件 | tar -xvf a.tar (到当前目录) | | 压缩文件 | zip -r b.zip 文件1 文件2 …或 路径 | | 解压缩文件 | unzip b.zip (到当前目录) / unzip -o e.war -d 目标路径(推荐使用unzip解压war包) | | 压缩一个文件 | gzip file1 (不能保留源文件) / gzip -9 file1 (最大程度压缩) / bzip2 -k file1 (-k表示保留源文件,bzip2格式,比gzip好) | | 解压一个文件 | gzip -d file1.gz / bzip2 -d -k file1.bz2 | | 打包并压缩文件 | tar -zcvf c.tar.gz 文件1 文件2 ….或 路径 | | 解压缩并解包文件 | tar -zxvf c.tar.gz -C 目标路径 (必须存在) | | 打包并压缩文件 | tar -jcvf d.tar.bz2 文件1 文件2 ….或 路径 | | 解压缩并解包文件 | tar -jxvf d.tar.bz2 (到当前目录) |
选项 含义
c 生成档案文件,创建打包文件。(压缩)
C 指定文件解压到存储的目录。
d 解压文件。
f 指定档案文件的名称,必须放在选项的最后一位。
k 表示保留源文件。
o 表示覆盖原有文件。
r 用于压缩文件夹。
z 压缩/解压缩打包文件。