Linux常用命令学习笔记
Linux 常用命令学习笔记(超全面 · 超详细)
内容覆盖 Linux 常见命令及实际操作示例:文件目录操作、时间日期管理、用户与组管理、文件权限管理、网络管理、进程管理、压缩和解压缩、搜索查找、软件包管理、关机重启与帮助命令等。
目录
- 一、文件目录命令
- 二、时间日期指令
- 三、用户管理和组管理
- 四、文件权限管理
- 五、网络管理命令
- 六、进程管理命令
- 七、压缩和解压缩命令
- 八、搜索查找指令
- 九、软件包管理命令
- 十、关机重启、帮助命令
- 十一、vim/vi 中行号的显示和关闭
一、文件目录命令
1. pwd:显示当前目录路径
语法: pwd
显示当前所在目录的完整路径。
[root@localhost ~]# pwd
/root
2. ls:查看文件和目录
语法: ls [OPTION]... [FILE]...
ls 命令用于查看当前目录下的所有文件和目录。常用选项如下:
| 选项 | 说明 |
|---|---|
-a |
显示当前目录所有的文件和目录,包括隐藏文件和目录 |
-l |
使用列表的方式显示信息,等同于 ll 命令,能详细展示文件的权限、所有者、大小、修改时间等信息 |
在 ls 后面直接跟目录或者文件,用于指定查看的目录或者文件。
3. cd:切换目录
语法: cd [-L|[-P [-e]]] [dir]
cd 命令用于切换目录,常见示例如下:
| 命令 | 作用 |
|---|---|
cd 目录名 |
切换到指定目录 |
cd .. |
切换到上一级目录 |
cd / |
切换到根目录 |
cd ~ 或直接 cd |
切换到 home 目录 |
cd - |
切换到上次访问的目录 |
4. mkdir:创建目录
语法: mkdir [OPTION]... DIRECTORY...
mkdir 用于创建目录。如果要创建多级目录,需要使用 -p 选项。
mkdir test # 创建单级目录
mkdir -p a/b/c # 递归创建多级目录
5. rmdir:删除空目录
语法: rmdir [OPTION]... DIRECTORY...
rmdir 只能用于删除空目录。如果目录非空,使用该命令会提示错误(删除非空目录需使用 rm -r)。
6. touch:创建空文件
语法: touch [OPTION]... FILE...
touch 命令用于创建一个或多个空文件。
touch test.txt # 在当前目录下创建 test.txt 空文件
touch file1.txt file2.txt # 同时创建多个空文件
7. rm:删除文件或目录
语法: rm [OPTION]... FILE...
rm 命令可用于删除文件或目录,使用时需谨慎。常用选项如下:
| 选项 | 说明 |
|---|---|
-r |
递归删除整个文件夹 |
-f |
强制删除不提示 |
rm test.txt # 删除文件
rm -rf test/ # 递归强制删除目录(⚠️ 危险,慎用)
8. mv:重命名或移动文件/目录
语法: mv [OPTION]... SOURCE... DIRECTORY
mv 命令有两个主要用途:一是重命名文件或目录,二是将文件或目录从一个位置移动到另一个位置。
mv old.txt new.txt # 重命名
mv file.txt /tmp/ # 移动到其他目录
9. cp:复制文件或目录
语法: cp [OPTION]... SOURCE... DIRECTORY
cp 命令用于复制文件或目录。递归复制目录需要使用 -r 选项。
cp file.txt /tmp/ # 复制文件
cp -r dir/ /tmp/ # 递归复制目录
10. 文件查看命令
(1)cat:显示文件内容
语法: cat [OPTION]... [FILE]...
cat 用于查看文件内容,但只能显示最后一屏内容。使用 -n 选项可以显示行号。
cat test.txt
cat -n test.txt # 显示行号
(2)more:百分比查看文件内容
语法: more [options] file...
more 命令以百分比的形式查看文件内容:回车向下一行,空格向下一页,按 q 退出查看。
(3)less:分屏查看文件内容
语法: less [options] file...
less 功能与 more 相似,但更强大,适合查看大文件。常用快捷键如下:
| 快捷键 | 作用 |
|---|---|
| 空格 / pagedown | 向下一页 |
| pageup | 向上一页 |
q |
退出 |
/字符串 |
向下搜索字符串(n 向下查找,N 向上查找) |
?字符串 |
向上搜索字符串(操作与 /字符串 类似) |
(4)head:从文件头开始查看内容
语法: head [OPTION]... [FILE]...
head 命令从文件头开始查看内容,使用 -n 行数 可以指定查看的行数。
head -n 1 test.txt # 查看文件前 1 行
(5)tail:从文件尾部开始查看内容
语法: tail [OPTION]... [FILE]...
tail 与 head 原理类似,但从文件尾部开始查看。-n 用于指定行数,表示查看文件尾部的行数。
tail -n 1 test.txt # 查看文件最后 1 行
11. 重定向指令
(1)>:覆盖写入
语法: 命令 > 目标文件
该指令将命令所产生的结果写入目标文件中,会覆盖原有内容。
(2)>>:追加写入
语法: 命令 >> 目标文件
>> 也是将结果写入目标文件中,但采用追加的方式,不会覆盖原有内容。
echo "hello" > test.txt # 覆盖写入
echo "world" >> test.txt # 追加写入
二、时间日期指令
1. date:显示和设置时间
语法: date [OPTION]... [+FORMAT]
date 命令用于显示当前时间。[+FORMAT] 用于指定显示的格式,常用格式如下:
| 命令 | 作用 |
|---|---|
date +%Y |
显示当前年份 |
date +%m |
显示当前月份 |
date +%d |
显示当前日 |
date -s 时间字符串 |
用于设置时间 |
2. cal:显示日历
语法: cal [options] [[[day] month] year]
cal 命令用于显示日历。常用指令如下:
cal # 显示当前月的日历
cal 2024 # 显示某年份的日历
三、用户管理和组管理
1. 用户管理
(1)新增用户
语法: useradd [选项] username
例如 useradd test 会创建一个名为 test 的用户,并指定组为 test,同时在 /home 目录下创建 test 目录作为用户的主目录。使用 passwd test 可以给新建的 test 用户设置密码。常见选项如 -d /home/test1,用于手动指定主目录。
useradd test # 新增用户
passwd test # 设置密码
useradd -d /home/test1 test # 指定主目录
(2)删除用户
语法: userdel [选项] username
userdel test 用于删除用户 test,但保留其主目录。使用 -r 选项(如 userdel -r test)可以在删除用户时一起删除主目录。
(3)查看用户信息
语法: id username
id test 用于查看用户 test 的信息(uid、gid、所属组等)。
(4)切换用户
语法: su username
su root 用于切换到 root 用户。低权限用户切换到高权限用户需要输入密码,使用 exit 命令可以回到之前的用户。
(5)查看当前用户
语法: whoami
输入该命令会显示当前用户名。
2. 组管理
(1)新增组
语法: groupadd groupname
groupadd test 用于创建组 test。
(2)删除组
语法: groupdel groupname
groupdel test 用于删除组 test。
(3)指定组
有两种方式:
useradd -g groupname username:在新增用户时手动指定组(需要先创建组);gpasswd -a username groupname:将用户添加到组里面。
(4)将用户从组中移除
语法: gpasswd -d username groupname
该命令用于将指定用户从指定组中移除。
gpasswd -d test root # 将 test 用户从 root 组移除
四、文件权限管理
1. 文件权限基础知识
在 Linux 中,每个文件和目录都有相关的权限,权限类型有三种:读取(Read)、写入(Write)和执行(Execute)。每一个文件或目录都有一个文件类型标识和 9 个权限位,权限位分为三组,分别代表文件所有者、同组用户和不同组用户的权限。具体对应关系如下:
| 权限 | 对应数字 | 对应字符 | 作用 |
|---|---|---|---|
| 读取权限(Read) | 4 | r |
可以查看文件内容,列出目录中的内容 |
| 写入权限(Write) | 2 | w |
可以修改文件内容,在目录中创建、删除文件 |
| 执行权限(Execute) | 1 | x |
可以执行文件或者进入目录 |
ls -l 输出字段解读:
-rw-r--r-- 1 root root 0 Dec 10 23:30 demo
│ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ └─ 文件或目录名称
│ │ │ │ │ │ │ │ │ └─ 文件最后修改时间
│ │ │ │ │ │ │ │ └─ 文件大小
│ │ │ │ │ │ │ └─ 文件所在组用户
│ │ │ │ │ │ └─ 文件所有者
│ │ │ │ │ └─ 文件的硬链接数(如果是目录,表示该目录下子目录与文件的数量)
│ │ │ │ └─── 其他组的用户拥有的权限
│ │ │ └───── 文件所在组用户拥有的权限
│ │ └─────── 文件所有者拥有的权限
│ └───────── 文件类型(- 普通文件、d 目录)
2. 权限相关命令
(1)chmod:更改文件权限
语法: chmod [OPTION]... MODE[,MODE]... FILE...
有两种更改方式:
方式一:通过 r、w、x 字符更改
u、g、o、a分别是文件所有者、文件所在组用户、其他组用户、所有用户的标识;=、+、-分别代表设置权限、增加权限、取消权限。
chmod u=rwx,g=wx,o=r 文件名
chmod u+x 文件名 # 给所有者增加执行权限
方式二:通过数字更改
r=4,w=2,x=1,rwx=4+2+1=7。三位数字分别对应所有者、所在组、其他组。
chmod 754 文件名
# 7 = rwx(所有者),5 = r-x(组用户),4 = r--(其他用户)
chmod 777 test1.txt # 所有人拥有全部权限(不推荐生产环境使用)
(2)chown:改变文件或目录的所有者
语法: chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown centos test.txt # 将 test.txt 的所有者改为 centos
chown centos:centos test.txt # 同时修改所有者和所属组
(3)chgrp:改变文件或目录的所属组
语法: chgrp [OPTION]... GROUP FILE...
chgrp centos test.txt # 将 test.txt 的所属组改为 centos
(4)umask:查看和修改新建时默认文件权限
语法: umask [-p] [-S] [mode]
使用 umask 命令可以显示新建时默认文件权限。
umask # 查看,默认 0022
umask 777 # 修改为 777 后,新建文件权限变为 ----------
touch test.txt # 新建文件验证权限
五、网络管理命令
1. ifconfig
语法: ifconfig
作用: 查看网卡信息。通过该命令可以获取网卡的 IP 地址、子网掩码、MAC 地址等信息,帮助我们了解网络接口的配置情况。
2. ping
语法: ping ip地址/域名
作用: 测试与某台主机的连通性。
ping www.baidu.com # 测试与百度服务器之间的网络连接是否正常
3. curl
语法: curl [options...] <url>
作用: 用来发送 HTTP 请求。可以用于获取网页内容、上传文件等操作。
4. host
语法: host ip/域名
作用: 做 DNS 查询,可以查询 ip 对应的域名,反之亦可。
host 8.8.8.8 # 查询该 IP 对应的域名信息
5. netstat
语法: netstat [options...]
作用: 监测网络连接状态、查找端口占用情况、分析网络通信状况。常用选项如下:
| 选项 | 说明 |
|---|---|
-a |
显示所有端口 |
-n |
数字形式显示网络地址和端口号 |
六、进程管理命令
1. 进程基本介绍
- 在 Linux 中,每一个正在执行的程序都称为一个进程,每个进程都有各自的 pid(进程 ID);
- 进程分为后台与前台进程:前台进程是用户可以感知到的,后台进程则相反。
2. 进程相关命令
(1)ps
语法: ps [options]
作用: 查看进程相关信息。常用选项如下:
| 选项 | 说明 |
|---|---|
-a |
显示当前终端下的所有进程信息 |
-u |
以用户的格式显示进程信息 |
-x |
显示后台进程运行的参数 |
-f |
用全格式显示进程信息 |
-e |
显示所有进程信息 |
ps -aux # 查看所有用户的所有进程信息
(2)kill、killall
语法: kill [options] pid 或 killall 进程名称
作用: 停止进程。
kill -9 进程号 # -9 是一种信号,用于强制终止进程
killall 进程名称
(3)top
语法: top
作用: 用于实时显示进程的信息,可以动态查看系统中各个进程的资源占用情况。常用列的含义:USER(用户)、PID(进程 ID)、%CPU(进程占用 CPU 百分比)、%MEM(进程占用内存百分比)、VSZ(进程占用虚拟内存大小 KB)、RSS(进程占用物理内存大小 KB)、TTY(进程使用的终端)、STAT(进程状态)、START(启动时间)、COMMAND(进程运行的命令)。
(4)pstree
语法: pstree [options...]
作用: 以树的形式直观的查看进程信息。常用选项如下:
| 选项 | 说明 |
|---|---|
-p |
显示进程的 pid |
-u |
显示进程所属的用户 |
七、压缩和解压缩命令
1. zip
语法: zip [-options] targetName 将要压缩的文件或目录
作用: 将指定文件或者目录压缩。用于目录压缩需要指定选项 -r 进行递归压缩。
zip test.zip test.txt # 压缩文件
zip -r dir.zip dir/ # 递归压缩目录
2. unzip
语法: unzip [OPTION]... 被zip命令压缩的文件
作用: 用于解压 zip 命令压缩生成的文件。默认解压后文件存放在当前文件夹,-d 可以手工指定文件夹。
unzip test.zip
unzip test.zip -d /tmp/ # 解压到指定目录
3. gzip
语法: gzip file
作用: 与 zip 相比,只能压缩单个文件,并会删除源文件,后缀格式为 .gz。
4. gunzip
语法: gunzip 压缩文件
作用: 解压 gzip 压缩的文件,解压后会删除原压缩文件。
5. tar
语法: tar [OPTION]... targetName 待打包文件或者目录
作用: tar 只是一个简单的打包命令,压缩和解压缩都是由选项决定的。常用选项如下:
| 选项 | 说明 |
|---|---|
-c |
生成 .tar.gz 文件 |
-z |
打包的时候压缩 |
-x |
解压文件 |
-v |
显示详细信息 |
-f |
指定压缩/解压后的文件名 |
-C |
指定解压到哪个目标目录 |
示例:
# 将 demo 和 demo.txt 打包成 demo.tar.gz
tar -zcvf demo.tar.gz demo demo.txt
# 将 demo.tar.gz 解压到指定的目录 test/ 中
tar -zxvf demo.tar.gz -C test/
八、搜索查找指令
1. find
find 命令会从指定目录向下递归遍历各个子目录,从而找到满足条件的文件或目录。
语法: find [指定查找目录]... [OPTION]
OPTION 常用可选值有以下几种,可以自由组合:
| 选项 | 说明 |
|---|---|
-name |
按照名称查找,支持通配符 |
-user |
使用用户名查找 |
-size |
按照文件大小查找,+ 号表示大于,- 号表示小于 |
-perm |
指定文件的权限 |
-type |
指定文件的类型,d 为目录 |
示例:
find -name test.txt # 在当前目录下查找 test.txt
find / -name '*.txt' # 从根目录下递归查找以 .txt 结尾的文件
find -type d # 查找当前目录下的所有目录
find -size +100M # 查找当前目录下大于 100M 的文件
find -size -100M # 查找当前目录下小于 100M 的文件
2. locate
系统默认每天自动备份更新系统的文件路径数据,使用 locate 指令可以快速定位整个系统的文件路径。使用 locate 命令查不到最新变动过的文件,可以使用命令 updatedb 手动更新到最新。
语法: locate [OPTION]... [PATTERN]...
locate test.txt # 查找文件名含有 test.txt 的所有文件
updatedb # 手动更新文件路径数据库
3. grep
grep 命令是一种强大的文本搜索工具。
语法: grep [OPTION]... PATTERN [FILE]...
常用选项示例:
| 选项 | 说明 |
|---|---|
-n |
显示行号 |
-i |
忽略大小写 |
| 为管道符,可以将前一个命令的处理结果输出传递到后面的命令处理。
cat test.txt | grep '搜索的字符' # 在文件内容中搜索
cat test.txt | grep -n 11111 # 搜索并显示行号
cat test.txt | grep -i abc # 忽略大小写搜索
4. which
语法: which 命令
作用: 用于搜索某个系统命令在 PATH 变量指定的位置。
which java
5. whereis
语法: whereis file...
作用: 用于搜索可执行文件、源代码文件、帮助文件在系统中的位置。
whereis pwd
九、软件包管理命令
1. yum list
语法: yum list
作用: 查询系统已经安装的软件。此命令经常和 grep 一起使用。
yum list | grep maven # 查询 maven 相关的本地软件
2. yum install
语法: yum install 软件包名
作用: 下载安装软件包。
yum install ftp
3. yum remove
语法: yum remove 软件包名
作用: 卸载软件包。
yum remove ftp
十、关机重启、帮助命令
1. 关机重启
语法: shutdown [OPTIONS...] [TIME] [WALL...]
关机示例:
| 命令 | 作用 |
|---|---|
shutdown -h now |
立刻关机 |
shutdown -h 分钟数 |
多少分钟后关机 |
poweroff |
立刻关机 |
重启示例:
| 命令 | 作用 |
|---|---|
shutdown -r now |
立刻重启 |
shutdown -r 分钟数 |
多少分钟后重启 |
reboot |
立刻重启 |
2. 帮助命令
(1)help / --help
语法: help 命令 或者 命令 --help
help cd
cd --help
需要注意的是,
help命令有时候会不生效,建议使用--help。
(2)man 命令
语法: man 命令
man 命令会进入文档,按 q 键退出。
man cd
十一、vim/vi 中行号的显示和关闭
vim/vi 编辑时,行号默认是不显示的,如要显示,可以按以下进行设置:
1. 非永久显示
显示行号:末行模式下输入 set number 或 set nu 回车
关闭行号:末行模式下输入 set nonumber 或 set nonu 回车
2. 永久显示
终端下输入 vim ~/.vimrc 或 vi ~/.vimrc,
在配置文件 .vimrc 中添加 set number 或 set nu,保存就可以了

浙公网安备 33010602011771号