Linux常用命令学习笔记

Linux 常用命令学习笔记(超全面 · 超详细)

内容覆盖 Linux 常见命令及实际操作示例:文件目录操作、时间日期管理、用户与组管理、文件权限管理、网络管理、进程管理、压缩和解压缩、搜索查找、软件包管理、关机重启与帮助命令等。


目录


一、文件目录命令

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]...

tailhead 原理类似,但从文件尾部开始查看。-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=4w=2x=1rwx=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] pidkillall 进程名称

作用: 停止进程。

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,保存就可以了
posted @ 2026-09-18 14:33  H杰  阅读(0)  评论(0)    收藏  举报