Linux的基础命令
1.系统命令
1.登陆和退出
login 用户登陆,如果已登陆状态,则退出重新回到登陆页面 exit 退出登陆,返回用户登陆页面 logout 退出登陆,返回用户登陆页面 shutdown 关闭计算机或重启计算机 shutdown -h now 立即关闭计算机 shutdown -h +5 五分钟后关闭系统 shutdown -h 22:10 晚上10点10分自动关机
shutdown -r +5 五分钟后重启计算机
shutdown -r now 立即重启计算机
shutdown -c 取消关机或重启计算机
reboot 重启系统
halt 关闭系统,杀死应用进程
init 0 关闭系统,(0-停机,1-单用户,2-多用户,3-完全多用户,4-图形化,5-安全模式,6-重启)
poweroff 关闭系统
last 查看近期用户或终端的登陆情况
2.安装和加载
-
- install 安装或升级软件,-y 跳过确认直接安装
- mount 加载文件系统
- umount 卸载文件系统
- chsh 更改使用者shell设定,-l查看系统中的shell类型,常用的有bash、sh、csh
3. 网络通信命令
1. ping 测试网络连通性 ping www.baidu.com 或 ping 192.168.1.1
2. ifconfig 查看网络设置信息 -a 显示所有网卡信息
3. ip addr 查看系统ip地址,简写为ip a
4. netstat 检查整个Linux网络状态
5. route 表示手工产生、修改和查看路由表
4. 文件执行目录
1. source file 执行文件,不需要权限
2. . file 执行文件,不需要权限
3. bash file 执行文件,不需要权限
4. ./file 执行文件,需要权限
5. 系统管理命令
1. df 检查文件系统中磁盘空间占用情况-a 递归地显示指定目录中各文件及子目录中各文件占用的数据块数。
-k 以1024字节为单位列出磁盘空间的使用情况,默认输出。
-h 以KB、MB、GB的形式打印文件系统的大小。
-T 显示文件系统的类型。
2. du 查看目录内存占用情况
du -sh 查看当前目录存在占用情况
du -sh * 查看当前目录下得所有目录或文件内存占用情况
3. top 实时显示系统中执行的程序进程
1. 进程中的交互命令q:退出top命令
P:根据CPU使用大小进行排序
T:根据时间进行排序
M:根据内存占用大小进行排序
2. top头部显示图说明
第二行依次表示所有进程,当前运行的进程,挂起的进程,终止的进程和无用的进程
第三行表示当前CPU使用情况,包括系统占用的比例、用户使用比例、闲置(Idle)比例
第四行显示物理内存使用情况,包括总的可用内存,空闲内存,已用内存和缓冲区占用的内存
第五行显示交换分区使用情况,包括总的交换分区,空闲的,已使用的和用于高速缓存的大小
3. top进程详细数据说明

PID 进程号
USER 进程所有者的用户名
PR 进程的优先级别
NI 进程的优先级别数值
VIRT 进程占用虚拟内存值
RES 进程占用物理内存值
SHR 进程使用的共享内存值
S 进程的状态,S表示休眠,R表示正则运行,Z表示僵死状态,N表示进程优先值为负值
%CPU 进程占用CPU使用率
%MEM 进程占用物理内存和总内存百分比
TIME+ 进程启动后占用总的CPU时间
COMMAND 进程启动的命令名称
4. free 显示内存的使用情况
-b -k -m: 分别以字节,KB、MB为单位显示
-s delay: 每隔delay秒显示一次内存使用情况
-t: 显示内存总和列
5. kill 杀死进程
kill -9 234 强制终止进程号为234的进程
6. 系统服务命令
1. systemctl status 服务名 查看服务状态
2. systemctl start 服务名 启动服务
3. systemctl restart 服务名 重启服务
4. systemctl stop 服务名 终止服务
5. systemctl disable 服务名 禁用服务
6. systemctl enable 服务名 永久启动服务
7. 硬链接和软链接
硬链接:假设A→B,B是A的硬链接,则他们两个同时指向了同一个文件,允许一个文件有多个路径,却不同复制粘贴,有点类似于深拷贝软链接:类似于window的快捷方式,删除源文件,快捷方式失效。
创建硬链接:ln A B
创建软链接:ln -s A B
[root@MiWiFi-R4A-srv home]# touch f1 # 创建f1文件
[root@MiWiFi-R4A-srv home]# ln f1 f2 # 创建硬链接f2
[root@MiWiFi-R4A-srv home]# ln -s f1 f3 # 创建一个软链接f3
[root@MiWiFi-R4A-srv home]# ls -la
总用量 0
-rw-r--r--. 2 root root 0 11月 9 11:49 f1
-rw-r--r--. 2 root root 0 11月 9 11:49 f2
lrwxrwxrwx. 1 root root 2 11月 9 11:50 f3 -> f1
[root@MiWiFi-R4A-srv home]# echo "hello world" >>f1 # 往f1中输入内容
[root@MiWiFi-R4A-srv home]# cat f1
hello world # 查看f1中的内容
root@MiWiFi-R4A-srv home]# cat f2
hello world # 查看f2中的内容
[root@MiWiFi-R4A-srv home]# cat f3
hello world # 查看f3中的内容
[root@MiWiFi-R4A-srv home]# rm -rf f1 # 删除源文件f1
[root@MiWiFi-R4A-srv home]# ls
centos f2 f3
[root@MiWiFi-R4A-srv home]# cat f2 # 查看f2的内容
hello world
[root@MiWiFi-R4A-srv home]# cat f3
cat: f3: 没有那个文件或目录 # 不存在f3文件
8. 其他系统命令
1. pwd 查看当前所在路径
2. clear 清屏
3. date 查看系统时间
4. hostname 查看主机名 hostnamectl set-hostname 主机名
5. tree 以树状查看,需下载
6. man 命令说明书
7. su 切换用户,切换超级用户需要密码
8. which 查看命令的相对路径
9. whereis 显示和指定文件相关的内容
10. sudo 以系统管理员身份执行指令
11. uname -a 显示系统信息,如内核名称、主机名、内核版本号、处理器类型之类的信息
12. yum 下载安装软件
13. rpm 安装插件 rpm -ivh 安装 rpm -uvh 更新 rpm -ev 卸载
14. wget 从网上下载文件
15. ps 查看进程 ps -ef 查看所有正在运行的进程
16. history 查看历史输入的命令
17. stat 显示目录或文件的详细信息
18. echo 输出
19. cal 显示当前月日历,带年份则显示当前年日历
2.文件命令
1.文件处理命令
1.ls 查看当前文件和目录
ls的参数以及作用,参数之间可以一起使用
ls -a 查看所有文件,包括隐藏文件
ls -l 查看文件的信息
ls -d 查看目录属性
ls /dir 查看指定目录下得所有目录和文件
2. ll 查看所有的目录和文件,并显示详细信息
1. - 开头表示文件 -rw-r--r--. 1 root root 670293 8月 2 01:25 services
2. d 开头表示目录 drwxr-xr-x. 2 root root 6 8月 2 02:34 test
3. l 开头表示链接
4. rw- 用户权限 r-- 组权限 r-- 访客权限
5. r: read 只读权限 4 w: write 写入权限 2 x: exec 执行权限 1
3. cd 进入指定目录
1. cd .. 返回上一级目录
2. cd / 回到根目录,根目录时/,而不是root
3. cd ~ 回到用户的家目录
4. cd - 回到上一次所在的目录
5. cd enter 回到用户的家目录
4. mkdir 新建目录(增)
1. mkdir file 在当前目录下创建文件夹
2. mkdir ./my/file 在当前目录的my目录下创建文件夹
3. mkdir /root/my/file 在指定的目录下创建文件夹
5. touch 新建文件(增)
1. touch file 在当前目录下创建文件
2. touch ./my/file 在当前目录下的my目录下创建新的文件夹
3. touch /root/my/file 在指定的目录下创建文件夹
6. rm 删除目录或文件(删)
1. rm 文件名 删除文件,会有提示
2. rm -rf 文件名 强制删除指定文件夹中的所有数据,r为递归查找,针对目录
3. rm -rf * 强制删除当前目录下的所有内容
7. cp 复制粘贴(改)
1. cp my.txt /root/dir 复制文件
2. cp file.txt ./aa/newFile.txt 复制文件并重命名
3. cp -r file1 ./file2 复制文件夹,-r递归文件夹下得内容
8. mv 剪贴粘贴或重命名(改)
1. mv demo ./file 剪贴文件或者文件夹,文件夹需要-r递归
2. mv my.html you.html 重命名文件
9. file filename 查看文件类型
10. sort filenale 对文件进行排序
12. sort -r filename 逆序
13. sdiff file1 file2 合并文件
14. wc 参数 file 对文件内容进行统计,(c-字符数,w-单词数,l-行数)
2. 内容查看命令
1. cat 从第一行开始显示文本内容,适用于内容较少的,通过man cat 查看参数
2. tac 从最后一行开始显示文本,是cat的逆查询
3. more 一页一页的显示文本内容,适用于内容较多的,可以实时显示百分比
4. less 与more类似,但是可以向前翻页,PgUp向前翻页,PgDn向后翻页
5. head 只看文本的前面几行,如head -n 20 f1,显示文件前20行并显示行数
6. tail 只看文本后面几行,与head相反,tail -f f1,-f 实时查看文件内容
7. nl 显示文本内容与行号,与cat -n 相似
3. 文件比较命令
1. comm 比较两文件的不同,返回以行的结果
第一列为只出现在f1中出现的行内容,第二列为只出现在f2中出现的行内容,第三列为f1和f2中都存在的内容
# f1 # f2
aa aa
bb cc
cc ee
[root@MiWiFi-R4A-srv test]# comm f1 f2
aa
bb
cc
ee
# -1不显示只在f1中出现的列,-2不显示只在f2中出现的列
# -3不显示只在第1和第2个文件里出现过的列
[root@MiWiFi-R4A-srv test]# comm -12 f1 f2
aa
cc
2. diff 比较两文件的内容
diff 命令在最简单的情况下,比较两个文件的不同。diff3为三个文件比较
[root@MiWiFi-R4A-srv test]# diff f1 f2 2d1 # 表示 f1的第二行需要删除 < bb # 删除的内容为dd 3a3 # 表示 f1的第三行需要添加f2的第三行的内容 > ee # 添加的内容为ee
4. 文件查找命令
1. which 显示系统命令所在位置
2. locate 关键字查找文件或目录
3. find 查找目录或者文件名
1. find /root -name myfile 根据名字查询指定目录下的文件
2. find /root -type d 根据文件类型查询root目录下的所有文件夹,d为目录,f为普通文件
3. find /root -type d -ls 查询root目录下所有的文件夹,并显示他们的详情
4. find /root/test -name 'index.*' 查询所有以index.开头的文件
5. find /etc -name file -exec ls -l {} \; 在etc目录下查找file文件并执行后续操作
6. -name 区分大小写 -iname 不区分大小写
-exec 执行后续操作
ls -l 查看文件详情
{} 表示之前查询到该文件
\ 转义;的作用
; 不能省略;否则会报遗漏参数的错误
4. grep 查找文件内容
语法: grep [参数] [匹配内容] file
常见的参数:
1. -i 忽略大小写 2. -o 仅显示匹配到的字符串本身
3. -v 显示不被匹配到的行,取反 4. -E 支持使用扩展的正则表达元字符
5. -q 静默模式,即不输出内容 6. -n 显示匹配行与行号
7. -c 只显示统计匹配的行数 8. -w 只匹配过滤的单词
常见的正则语义符:
1. . 代表任意字符 2. * 代表出现0次或1次以上
3. ^ 代表匹配开头 4. $ 代表匹配结尾
5. [] 代表匹配里面的任意内容 6. + 代表匹配1次或多次
7. ? 代表匹配0次或1次 8. | 代表或的意思
9. \ 代表转义,和-E冲突
难点:
递归搜索当前目录下的abc目录及其子目录下文件内容中包含有字符串“linux”或字符串“test”的文件,并分屏显示匹配条件的文件名及各文件中匹配条件的行
grep -rE 'linux|test' ./abc/* | more
grep -rE 'linux|test' ./abc/* | less -e
统计当前目录下的abc目录及其下所有子目录中包含有字符串“linux”的行数,列出文件名及各文件中匹配条件的行数
grep -rc linux ./abc/* | grep -v ':0'
5. 文件编辑命令 vi
1. vi的三种模式
1. command 命令模式,用于输入命令
2. insert 插入模式,用于插入文本
3. save 保存模式,用于保存文件
2. command文件的命令模式
1. 光标移动
← 光标向左移动 → 光标向右移动 ↑ 光标向上移动 ↓ 光标向下移动
$ 光标移至行尾 gg 光标移至文档开始 GG 光标移至文档末尾
2. 文本翻页
Ctrl + f 向前翻页 Ctrl + b 向后翻页
3. 文本删除
x 删除所在行选中的字符 #x 删除所在行多个字符,#为数字
dw 删除一个单词 #dw 删除多个单词,#为数字
dd 删除一行 #dd 删除多行,#为数字
d$ 删除光标到行尾的内容 J 清除光标所处的行与上一行之间的空格,把光标行和上一行接在一起
4. 撤销
u 撤销删除或修改操作
5. 复制粘贴
yy 复制当前行 #yy 复制多行,#表示数字
p 在光标之后粘贴 shift+p 在光标之前粘贴
6. 查找替换
/字符 正向查找,n键向下移动,shift+n向上移动
?字符 反向查找,shift+n向下查找,n键向上查找
:s /oldStr/newStr/g 把当前光标所处的行中的oldStr单词,替换成newStr
:%s /oldStr/newStr 把文档中所有SEARCH替换成REPLACE
:#,# s /oldStr/newStr/g #号表示数字,表示从多少行到多少行,把oldStr替换成newStr
3. insert文本插入模式
1. i 在光标之前插入 a 在光标之后插入 o 在光标所在的行的下面插入一行 s 删除光标后的一个字符,然后进入插入模式
2. I 在光标所在行的行首插入 A 在光标所在行的行尾插入 O 在光标所在的行的上面插入一行 S 删除光标所在的行,然后进入插入模式
4. save文件的保存和退出
Esc退出文本插入模式,进入编辑模式
- :w 保存
- :w filename 另存为filename
- :q! 不保存强制退出
- :wq 保存退出
- :wq! filename 以filename为文件名后强制保存退出
6. 文件权限命令
1. chmod 修改文件权限 chmod [可选项] <mode> <file...>
[可选项]
-c, --changes like verbose but report only when a change is made (若该档案权限确实已经更改,才显示其更改动作)
-f, --silent, --quiet suppress most error messages (若该档案权限无法被更改也不要显示错误讯息)
-v, --verbose output a diagnostic for every file processed(显示权限变更的详细资料)
--no-preserve-root do not treat '/' specially (the default )
--preserve-root fail to operate recursively on '/'
--reference=RFILE use RFILE's mode instead of MODE values
-R, --recursive change files and directories recursively (以递归的方式对目前目录下的所有档案与子目录进行相同的权限变更)
--help 显示此帮助信息
--version 显示版本信息
[mode]
权限设定字串,详细格式如下 :
[ugoa...][[+-=][rwxX]...][,...]
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示所有(包含上面三者)。
[+-=]
+ 表示增加权限,- 表示取消权限,= 表示唯一设定权限。
[rwxX]
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
[file...]
文件列表(单个或者多个文件、文件夹)
示例:
1. 设置所有用户可读权限
chmod ugo+r a.conf 或 chmod a+r a.conf
2. 设置当前目录下的所有档案与子目录皆设为任何人可读写
chmod -R a+rw *
数字权限使用格式
在这种使用方式中,首先我们需要了解数字如何表示权限。 首先,我们规定 数字 4 、2 和 1表示读、写、执行权限,即 r=4,w=2,x=1 。
如:
rwx = 4 + 2 + 1 = 7
rw = 4 + 2 = 6
rx = 4 +1 = 5
以此类推4,3,2,1
即
若要同时设置 rwx (可读写运行) 权限则将该权限位 设置 为 4 + 2 + 1 = 7
若要同时设置 rw- (可读写不可运行)权限则将该权限位 设置 为 4 + 2 = 6
若要同时设置 r-x (可读可运行不可写)权限则将该权限位 设置 为 4 +1 = 5
示例:
1. 设置所有人可以读写及执行
chmod 777 file (等价于 chmod u=rwx,g=rwx,o=rwx file 或 chmod a=rwx file)
2. 设置拥有者可读写,其他人不可读写执行
chmod 600 file (等价于 chmod u=rw,g=---,o=--- file 或 chmod u=rw,go-rwx file )
7. 文件压缩解压缩命令
1. gzip 压缩解压文件,面向文件,压缩后的文件格式为 .gz压缩语法:gzip [option] filename -l 查看压缩率
解压语法:gzip -d filename.gz -d 解压文件
解压文件:gunzip filename.gz .gz格式的另一种解压方式
压缩速度最快,将当前目录下的f1文件压缩为f1.gz文件的方法
1. gzip -1 f1 2. gzip --fast f1
压缩率最高,将当前目录下的f2文件压缩为f2.gz文件的方法
1. gzip -9 f2 2. gzip --best f2
2. tar 压缩和解压文件,压缩后文件格式为 .tar.gz
1. 压缩语法:tar -zcvf file.tar.gz ./filename 压缩文件,必须有文件名,保留源文件2. 解压语法:tar -zxvf file.tar.gz 解压文件压缩包,保留源文件
-
-
- -c 产生 .tar打包文件
- -v 显示详细信息
- -f 指定压缩后的文件名
- -z 打包的同时压缩
- -x 解压.tar.gz文件
-
3. zip 压缩文件或目录。压缩后的文件格式为 .zip
1. 压缩语法:zip -r (文件夹)压缩后文件名称 (必填) 目标文件或目录
2. 解压语法:unzip file.zip
3. 查看.zip文件的内容:zcat ./file.zip
4. bzip2 压缩解压文件或目录,可保留源文件,压缩后文件格式 .bz2
1. 压缩语法:bzip2 -k file -k 保留源文件
2. 解压语法:bzip2 -d file.bz2 -d 解压文件
3. 解压语法:bunzip2 -k file.bz2 解压后保留源文件
5. 四种压缩解压缩方式的区别
1. gzip和gunzip:gzip只能压缩文件不能压缩目录,且压缩后源文件被删除
2. tar:将目录和文件打包成一个文件,显示压文件的路径,必须指定压缩文件名
3. zip和unzip:压缩文件和目录,源文件会被保留,必须指定压缩后文件名
4. bzip2和bunzip2:gzip和gunzip的升级版,可以选择是否保留源文件
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)