0%

Linux 基本命令

基础操作命令



ls

-l 以列表的形式列出当前文件夹下的文件目录

-a 列出有关文件的详细信息,包括文件的大小和权限

-R 列出某一文件夹下所有文件以及递归文件夹

-F 额外使用颜色区分文件夹和文件

ll 相当于使用 ls -la


mv

重命名文件

1
mv [file1] [file2]     # 修改文件file1的名字为file2

cp

复制并移动文件

-i 提醒是否覆盖原文件

1
2
3
cp [file] [path]  			# 将文件file复制到目录path

cp [path1] [path2] # 将文件夹1复制到文件夹2

touch

touch file.conf 创建一个叫做file.conf的文件


mkdir

mkdir -p [folder1/folder2] 创建多级目录

mkdir [foler1] [folder2] [folder3] 创建多个目录


file

1
file [file]

用于查看文件类型


rm

rm [foler(file)] 删除文件夹或文件

-r 递归删除文件夹

-f 强制删除,无提示

-rf 强制删除多级目录



解压缩命令


gzip 压缩文件,压缩后会把原始文件删除

gzip [file1] 压缩某一个文件为。gz格式的压缩包

gzip [file1] [file2] ... 将多个文件分别压缩为单个.gz的压缩包

gzip -d [file.gz] 使用-d参数解压缩已经被压缩的gz格式文件

gzip -d [file2.gz] [file3.gz] 使用-d参数解压多个压缩包


gunzip

guzip [file.gz] 解压gz格式的压缩包,作用通zip -d 用法

gunzip [file1.gz] [file2.gz] [file3.gz] 解压多个gz格式的压缩包


bzip2 可加参数通gzip


tar 压缩多个文件或多个目录为一个文件

-c 创建打包文件

-x 解包文件,解压缩

-v 可视化压缩和解压缩过程(跑码过程)

-f 必写参数 后面跟的是file ,压缩包的名字,f要放到参数的最后一位

-r 向已经压缩后的文件追加新的文件

用法: tar -rf mytart.tar readme.txt

-C 解压时指定文件解压的目标路径

用法: tar -xvf [mytar.tar] -C [/root/file/path]

-cvf

创建一个压缩包并指定压缩包名字

-rf [mytar.tar] [newfile.txt]

向压缩包mytar.tar 添加新文件 newfile.txt

打包并压缩

用法: tar -cvzf mytar.tar file1 file2 file3 将文件打包并压缩为gz文件

-z 压缩为gz格式

-j 压缩为bz2格式

-J 压缩为xy格式

解压文件

tar -xvzf <tar.gz> -C File_path 解压文件到指定地址



进程相关命令


ps

ps aux 显示全部的系统进程信息

-e 显示所有进程

-f 全格式,包括PPID

-ef 显示所有进程并显示PPID

-u

1
ps -u root  			# 指定某用户,只显示该用户相关的进程

-p

1
ps -p <PID>				# 显示某个PID对用的进程

-C

1
ps -C sshd				# 显示指定名的进程

--deselect

1
ps -C <sshd> --deselect			# 排除sshd进程相关内容

-o

1
ps -o pid,user,cmd			# 只列出pid、user、cmd相关的信息

--sort

1
ps --sort=-%cpu			# 按CPU消耗排序(降序)

--forest

1
ps -ef --foreset		# 以树状结构排序

kill

kill命令只会杀死指定的单个进程 , 不会杀死守护进程(守护进程独立于主进程)

kill <PID> 杀死指定PID 参数对应的程序 (PID在ps命令中对应的为第一列的数字)

kill -9 强制杀死进程


killall

killall <name> 杀死叫此名称的进程

IP地址查看命令


ifconfig

查看网络接口相关的信息,包括IP地址和网卡信息

eth0 对应的是网卡信息

lo对应的是本地回环地址


ip addr

查看当前系统的IP地址

eth0 对应的是网卡信息

lo对应的是本地回环地址



重定向符号


输出重定向

符号>>>

> 将内容输出到某个文件中

>> 将内容追加到某个文件中

1
2
3
ls -la > list.txt         # 将ls -la的输出添加至文件list.txt

ls -la >> list.txt # 将ls -la的输出追加至文件list.txt

打印命令


echo

打印命令,后跟需要打印的文字内容。

1
echo hello world > list.txt       # 打印内容  hello world 将其输出至list.txt
选项 作用 示例
-n 不输出末尾换行符 echo -n "Loading..."
-e 启用转义字符解释(如 \n, \t echo -e "Line1\nLine2"
-E 禁用转义(默认行为,通常省略) echo -E "Price: \$10"
转义符 含义 示例
\n 换行 echo -e "A\nB" → A 换行 B
\t 制表符(Tab) echo -e "Name:\tAlice"
\r 回车(常用于进度条覆盖) echo -ne "Progress: 50%\r"
\\ 反斜杠字面量 echo "\\"\
\" 双引号 echo "\"quoted\"" → “quoted”
\$ 美元符号(避免变量展开) echo '\$HOME'$HOME

cat

将文件内容打印至屏幕输出(从前往后)

cat file.txt 打印file.txt内容至屏幕

额外用法:

-n 显示行号

-b 只显示有内容的行号

-T 去除制表符

将多个文件重写或追加进某新的文件

1
2
3
cat file1.txt file2.txt > file3.txt         # 将file1.txt file2.txt文件内容输出至file3.txt

cat file1.txt file2.txt >> file3.txt # 将file1.txt file2.txt文件内容追加至file3.txt

tac

将文件内容输出至屏幕(从后往前)

用法通cat


–help

添加在某个命令后,用于查看该命令的用法

磁盘内存相关命令


df

查看设备各分区所占用的空间

df -h 以更加清晰的表格形式查看磁盘占用情况,磁盘的空间单位以Mb表示


free

查看系统内存占用情况

free -h 以更加人性化的形式查看内存的占用情况

free -m 将原始的Kb单位转换为Mb单位查看内存占用


wc

统计文件的行数、单词数和字节数

参数 作用
-l 仅统计文件行数
-w 仅统计文件单词数
-c 仅统计文件字节数

wcwc -lwc 一起统计文件的行数、单词数、字节数


du

查看某目录下的目录所占磁盘大小

-s 查看该目录所占磁盘大小

-h 以更加可读的形式展示目录所占磁盘大小

du -sh 以更加刻度得形式查看某文件夹所占磁盘大小


mount

挂载磁盘到某一文件夹

1
mout -t ntfs [磁盘标识] [分区(挂载点)]			# 将某磁盘挂载至某分区

umount

取消挂载某分区

1
umount /var  					# 取消挂载var分区


文件查看命令


head

查看文件的前N行,默认查看文件的前10行

head -n 查看文件的前n行


tail

查看文件的末尾n行,默认显示后10行

tail -n 查看文件的后n行

tail -f <path> 查看某位置的动态文件,一般用于查看日志


less

查看大文件,需要使用方向键翻页以查看更多内容,不会将所有内容都打印至屏幕


more

查看大文件,功能与less类似,往上翻页Ctrl +b, 往下翻页Ctrl + f (空格键也可以)


find

查找文档,可以使用* 通配符扩大查找范围

-name 以文档名的形式查找文档

**-type **

-type f 以文档类型查找文档

-type d 查找文件夹

1
find <path> -name <file>  -type f   	使用名称查找的方式在目录<path>下查找文件 <file>

日期和时间命令


date

获取系统时间

date

Fri Jan 23 02:45:25 PM UTC 20

date +%F

2026-01-23

date +%F%T

2026-01-2314:47:20

参数 作用
%F 打印完整的年月日
%T 打印完整的时分秒
%Y 打印四位的年份
%m 打印两位的月份
%d 打印日
%H 打印小时
%M 打印分钟
%S 打印秒
1
date -s "2026-01-23 12:34:45"             #设置系统时间为具体的时间日期,注意格式


timedatectl

列出系统时间和硬件时间,可设置时区

list-timezones 列出时区列表
set-timezone 设定为指定时区
set-time 设定具体的时间

1
timedatectl set-time "2026-01-10 12:21"        #将时间设置为:2026-01-10 12:21   注意时间格式


ntpdate

手动网络校时,修正时间为网络时间(需要添加ntp服务器地址)

1
ntpdate ntp.ntsc.ac.cn	使用ntp.ntsc.ac.cn的授时信息修正时间


cal

查看系统日历

cal -n 输出当前前一个月后一个月以及本月的日历

grep用法

grep是用于文档数据筛选的指令,用于查询与获取排除指定数据。常与管道符|联合使用,此处的管道符指的是传参,将符号前处理狗的数据交由后面的进行二次筛选。

-E 启用扩展正则表达式(支持 +, ?, `)

-i 忽略大小写

-v 反向匹配:显示不包含模式的行

-r 递归搜索目录-R 会跟踪符号链接)

-n 显示匹配行的行号

-l 只输出包含匹配项的文件名(不显示内容)

-o 只输出匹配的部分(非整行)

-w 整词匹配(避免部分匹配)

-q 只输出匹配行数(不显示内容)


sort用法

sort常用在管道符后买你用以继续处理数据(排序),单独的sort 默认启用以字典排序。

1
sort -n  				# 按数值大小排序   小的在上大的在下
1
sort -nr			   # 按数值排序,从大到小
1
-u 					# 去重后排序
1
-V  				# 按自然版本号排序   比如ip地址、软件版本、带编号的文件

tee 读取内容并存入某文件

-a

1
2
3
4
5
6
7
echo "$var" | tee -a /var/log/newlog.log

# 将变量var包含的内容追加到/var/log/路径下的newlog.log文件

echo "$var" | tee /var/log/newlog.log

# 将变量var包含的内容写入到/var/log/路径下的newlog.log文件

hystory

列出本轮启动中所执行的所有命令

用户管理

useradd

选项 作用 示例
-m 创建用户家目录(默认不创建!) useradd -m alice
-s 指定登录 shell useradd -s /bin/bash bob
-G 指定附加组(可多个) useradd -G sudo,developers charlie
-g 指定主组(默认新建同名组) useradd -g staff dave
-c 添加注释/描述(如全名) useradd -c "Alice Smith" alice
-d 指定自定义家目录路径 useradd -d /opt/alice alice
-e 设置账户过期日期(YYYY-MM-DD) useradd -e 2026-12-31 guest
-p 设置加密后的密码(不推荐明文) 见下文安全说明

usermod

选项 作用 示例
-l 修改用户名 usermod -l newname oldname
-g 修改主组 usermod -g newgroup username
-G 覆盖附加组(用 -aG 追加!) usermod -aG docker username
-s 修改 shell usermod -s /bin/zsh alice
-d 修改家目录(需手动迁移文件) usermod -d /new/home/dir username
-L 锁定账户(禁止登录) usermod -L username
-U 解锁账户 usermod -U username
-e 修改账户过期时间 usermod -e 2027-01-01 username

passwd

命令 作用
passwd username root 为用户设密码
passwd 普通用户修改自己密码
passwd -l username 锁定密码(等价于 usermod -L
passwd -u username 解锁密码
passwd -e username 强制用户下次登录改密码
passwd -d username 删除密码(危险!允许空密码登录)
命令 作用
id username 查看 UID/GID/所属组
groups username 查看用户所属组
getent passwd username 查询用户详细信息(支持 LDAP/NIS)
cat /etc/passwd 查看所有用户(不含密码)
sudo cat /etc/shadow 查看密码哈希(仅 root)
操作 命令
创建用户 useradd -m -s /bin/bash username
修改用户组 usermod -aG groupname username
删除用户 userdel -r username
创建组 groupadd groupname
设密码 passwd username
查看用户信息 id username

数学运算

expr

进行简单数学运算

1
2
3
4
5
6
expr 2 + 12				# 简单的加减运算   运算符号两侧要有空格
root@ubuntu:~# 14
expr 12 \* 24 # linux中的✳需要使用反斜杠特殊处理以转义
root@ubuntu:~# 288
expr 12 / 3 # 除法运算使用左斜杠
root@ubuntu:~# 4

$[]

进行数学运算且无须对字符进行转义,但是不能独立输出,必须作为变量并添加接收方(赋值或echo输出)

1
2
3
4
var1=$[25 * 3]
echo $var1

echo $[25 * 3]

$(())

是$[]语法的现代版,更加推荐使用该语法,支持字符串的比较(| & << >>

浮点运算

bc

使用该语法结合其他特殊用法进行浮点运算

1
2
3
echo "12.4 + 3.533" | bc				# 基础的运算,不设保留几位小数

echo "scale=3; 12 / 5" | bc # 使用scale提前告知保留几位小数

test[] 表达式评估

test 与[]用法一致,是[]的单词写法。主要作用为传输执行结果True,False,常在if判断和while以及管道符的信息传递中使用

  • 表达式成立——True
  • 表达式不成立——False

参数

-e 文件存在

-s 文件非空(大小 > 0)

-z 字符串长度为 0(为空)

-n 字符串长度非 0(非空)

-f 是普通文件

-d 是目录

-r 可读
-w 可写
-x 可执行

整数比较

-eq 相等(equal)

-ne 不等(not equal)

-lt 小于(less than)

-le 小于等于

-gt 大于(greater than)

-ge 大于等于