Linux常用基础命令
- Linux命令总结
- 声明
- man 查看帮助手册
- --help 查看帮助信息
- shutdown 关机重启命令
- pwd 查看当前所在的路径
- cd 切换用户当前工作目录
- ls 显示目录内容列表
- touch 创建新的空文件
- cat 查看文件的内容
- mkdir 创建目录
- tree 树状图列出目录的内容
- cp 文件的复制操作
- mv 移动文件或对文件重命名
- rm 删除给定的文件和目录
- vi编辑器
- echo 输出指定的字符串或者变量
- tail 在屏幕上显示指定文件的末尾若干行
- head 显示文件的开头部分
- less 上下翻页浏览文件内容
- more 显示文件内容,每次显示一屏
- :star::star::star:四剑客:star::star::star:
- wc 统计文件的字节数、字数、行数
- sort 对文本文件中所有行进行排序
- uniq 显示或忽略重复的行。
- lrzsz 上传、下载文件的插件
- 压缩与解压缩
- hostnamectl 查看与修改主机名
- 查看版本信息
- uname 打印系统信息(内核版本)
Linux命令总结
声明
-
本文中,[参数]表示文件、目录或路径; [name]表示文件名;
[number]表示任意整数;[letter]表示任意字母;[word]表示任意内容;
man 查看帮助手册
语法形式
man [linux命令]
示例
[root@Dezyan ~]# man mkdir
–help 查看帮助信息
语法形式
[Linux命令] --help
示例
[root@Dezyan ~]# mkdir --help
shutdown 关机重启命令
语法形式
shutdown
shutdown [选项]
选项
-c # 取消关机
-h now/[number] # now:立刻关机;[number]:n分钟后关机
# <=>halt;init 0;
-r [number] # [number]:n分钟后重启系统;不加[number]:默认一分钟后重启
# <=>reboot;init 6;
pwd 查看当前所在的路径
语法形式
pwd
示例
[root@Dezyan ~]# pwd
/root
cd 切换用户当前工作目录
语法形式
cd [选项] [参数]
选项(可为空)
~ # 切换到家目录 <=> 直接输入cd
- # 返回上一次所在的目录
. # 进入当前目录
.. # 进入上一级目录
# ../../ 进入上两级目录
/ # 进入到根目录
示例
#进入到/opt目录下
[root@Dezyan ~]# cd /opt
[root@Dezyan opt]#
ls 显示目录内容列表
语法形式
ls [选项] [参数]
选项(可为空)
-l #显示文件的详细信息 <=> ll
-a #显示目录下所有文件信息(包括隐藏文件)
-i #显示文件inode号
-s #显示文件大小信息
-h #显示文件大小信息(以人类可读方式查看)
-t # 按时间信息排序。
示例
[root@Dezyan ~]# ls -l /opt/
总用量 0
dr-xr-xr-x 5 root root 79 3月 24 2023 kylin-sm-package
drwxr-xr-x 4 root root 58 10月 25 00:43 patch_workspace
touch 创建新的空文件
语法形式
touch [参数] [参数] ....
参数选项
{[number]/[letter]..[number]/[letter]} #批量创建文件
示例
#创建单个文件
[root@Dezyan ~]# touch 1.txt
#同一目录下创建多个文件
[root@Dezyan ~]# touch 1.txt 2.txt 3.txt
#不同目录下创建多个文件
[root@Dezyan ~]# touch 1.txt /opt/2.txt
#批量创建Dezyan01.txt....Dezyan10.txt文件
[root@Dezyan Dezyan01]# touch Dezyan{01..10}.txt
[root@Dezyan Dezyan01]# ls
Dezyan01.txt Dezyan03.txt Dezyan05.txt Dezyan07.txt Dezyan09.txt
Dezyan02.txt Dezyan04.txt Dezyan06.txt Dezyan08.txt Dezyan10.txt
注意
#如果创建的文件存在,只会修改文件时间,不会修改内容;
#使用绝对路径创建时,必须保证目录存在;
cat 查看文件的内容
语法形式
cat [选项] [参数]
选项
-n #显示文件行数
-E #每行行尾显示'$'符
示例
[root@Dezyan ~]# cat -n /etc/hosts
1 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
2 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
mkdir 创建目录
语法形式
mkdir [选项] [参数]
选项
-p #递归创建目录
参数选项
{[number]/[letter]..[number]/[letter]} #批量创建目录
示例
#同一目录下创建多个目录
[root@Dezyan dzt]# mkdir a b c
[root@Dezyan dzt]# ls
a b c
#在不同目录下创建多个目录
[root@Dezyan dzt]# mkdir f /opt/e
#递归创建多级目录
[root@Dezyan dzt]# mkdir -p /aa/bb/cc/dd
#批量创建Dezyan01....Dezyan10目录
[root@Dezyan bb]# mkdir Dezyan{01..10}
[root@Dezyan bb]# ls
cc Dezyan02 Dezyan04 Dezyan06 Dezyan08 Dezyan10
Dezyan01 Dezyan03 Dezyan05 Dezyan07 Dezyan09
tree 树状图列出目录的内容
语法形式
tree [选项] [参数]
选项
-L [number] #显示一级目录下所有文件
示例
#显示目录下所有文件
[root@Dezyan ~]# tree dzy
dzy
├── a
│ └── b
│ └── c
│ └── d
│ └── e
#显示目录下一级目录的所有文件
[root@Dezyan ~]# tree -L 1 dzt
dzt
├── a
cp 文件的复制操作
语法形式
cp [选项] [源文件地址参数] [目标地址参数]
选项
-r #递归处理,将指定目录下的所有文件与子目录一并处理;
-i #覆盖既有文件之前先询问用户;
-p #保留源文件或目录的属性;
-d #当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-a #此参数的效果和同时指定"-dpR"参数相同;
示例
#将某一文件复制到某一目录之中
[root@Dezyan ding]# cp 1.txt /zhi/
[root@Dezyan ding]# ll /zhi
-rw-r--r-- 1 root root 11 10月 25 23:09 1.txt
#将某一目录及目录中的所有文件复制到另一个目录之中
[root@Dezyan ding]# ll aa/bb/cc/dd/2.txt
-rw-r--r-- 1 root root 0 10月 25 23:11 aa/bb/cc/dd/2.txt
[root@Dezyan ding]# cp -r /ding /zhi
[root@Dezyan ding]# tree /zhi
/zhi
├── 1.txt
└── ding
├── 1.txt
└── aa
└── bb
└── cc
└── dd
└── 2.txt
mv 移动文件或对文件重命名
语法形式
mv [选项] [源文件地址参数] [目标地址参数]
选项
-i #移动既有文件之前先询问用户;
-t #可更改语法顺序为 mv [选项] [目标地址] [源文件地址]
示例
#对当前目录的文件进行重命名(移动同理)
[root@Dezyan ding]# ll
-rw-r--r-- 1 root root 11 10月 25 23:09 1.txt
drwxr-xr-x 3 root root 16 10月 25 23:20 aa
[root@Dezyan ding]# mv ./1.txt ./aa.txt
[root@Dezyan ding]# ls
aa aa.txt
rm 删除给定的文件和目录
语法形式
rm [选项] [参数] [参数] [参数] ...
选项
-i #删除文件之前先询问用户;
-r #递归处理,将指定目录下的所有文件与子目录一并处理;
-f #强制删除文件或目录;
示例
#强制删除一个(多个)文件
[root@Dezyan ding]# touch 1 2 3 4
[root@Dezyan ding]# ls
1 2 3 4 aa aa.txt
[root@Dezyan ding]# rm -f 1 2 3 4
[root@Dezyan ding]# ls
aa aa.txt
#强制删除一个目录及目录下的所有文件
[root@Dezyan ding]# tree aa
aa
└── bb
└── cc
└── dd
└── 2.txt
3 directories, 1 file
[root@Dezyan ding]# rm -rf aa
[root@Dezyan ding]# tree aa
aa [error opening dir]
0 directories, 0 files
vi编辑器
三种模式及相关命令
-
命令行模式(在其他两种模式下,按Esc即可进入) (使用vi编辑器是此模式为进入时的默认模式)
相关命令
<#>#移动:
G #移动光标到文件<最后一行>;
gg #移动光标到文件内容的的<第一行>;
Ngg #移动光标到文件内容的<第N行>;
^ #移动光标到当前行<行首>;
$ #移动光标到当前行<行尾>;
##删除:
x或X #删除一个字符,x删除光标<后>的,而X删除光标<前>的;
D #删除从当前光标到光标所在行尾的<全部字符>;
dd #删除光标行<整行>的内容;
ndd #删除当前行及其后<n-1行>;
##复制粘贴:
nyy #将当前行及其下n行的内容复制;
p #粘贴文本操作,将复制的内容粘贴到当前光标所在位置的<下方>;
P(大写) #粘贴文本操作,将复制的内容粘贴到当前光标所在位置的<上方>;
##查找:
/[字符串] #从<当前光标所在位置>开始向文件<尾部>查找指定字符串的内容;
?[字符串] #从<当前光标所在位置>开始向文件<头部>查找指定字符串的内容;
# n 向下继续查找;
# N 向上继续查找;
##撤销:
u #撤销上一次的操作;
-
插入模式(在命令行模式下,按i即可进入)
相关命令
A #进入插入模式,并在<行末>添加文本;
a #进入插入模式,并在当前字符<后>添加文本;
i #进入插入模式,并在当前字符<前>插入文本;
I #进入插入模式,并在<行首>插入文本;
o #进入插入模式,并在当前行<后面>插入一空行;
O #进入插入模式,并在当前行<前面>插入一空行;
-
底行模式(在命令行模式下,按:即可进入)
相关命令
set nu #编辑时显示行号;
set nonu #编辑时不显示行号;
w #在执行存盘操作;w!表示强制保存;
q #执行退出vi操作;q!表示强制退出;
wq #执行存盘退出操作;
$ #光标跳转到最后一行的行首;
示例:批量添加注释
1. 使用vim打开文件;
2. ctrl+v选择需要添加注释的行;
3. 输入大写I,并输入#;
4. Esc退出,回车,完成批量注释;
echo 输出指定的字符串或者变量
语法形式
echo [word] [重定向符号] [参数]
重定向符号
> #覆盖输入;
>> #追加输入;
示例
#将手机号覆盖输入到phone.txt文件中
[root@Dezyan Dezyan01]# echo 110 > phone.txt
[root@Dezyan Dezyan01]# cat phone.txt
110
#将手机号追加输入到phone.txt文件中
[root@Dezyan Dezyan01]# echo 120 >> phone.txt
[root@Dezyan Dezyan01]# echo 119 >> phone.txt
[root@Dezyan Dezyan01]# cat phone.txt
110
120
119
tail 在屏幕上显示指定文件的末尾若干行
语法形式
tail [选项] [参数]
选项
-[number]/-n[number] #输出文件的尾部number行内容;
-f #显示文件最新追加的内容;
示例
#查看/var/log/secure日志文件中的后10行
[root@Dezyan ~]# tail -n10 /var/log/secure
head 显示文件的开头部分
语法形式
head [选项] [参数]
选项
#默认显示前10行内容;
-[number] #输出头部number行的内容;
示例
#查看/var/log/secure日志文件中前5行的内容
[root@Dezyan ~]# head -5 /var/log/secure
Oct 24 16:46:29 Dezyan polkitd[758]: Loading rules from directory /etc/polkit-1/rules.d
Oct 24 16:46:29 Dezyan polkitd[758]: Loading rules from directory /usr/share/polkit-1/rules.d
Oct 24 16:46:29 Dezyan polkitd[758]: Finished loading, compiling and executing 5 rules
Oct 24 16:46:29 Dezyan polkitd[758]: Acquired the name org.freedesktop.PolicyKit1 on the system bus
Oct 24 16:46:30 Dezyan sshd[948]: Server listening on 0.0.0.0 port 22.
less 上下翻页浏览文件内容
语法形式
less [参数]
快捷键
ctrl + f #下一页;
ctrl + b #上一页;
g #第一行;
G #最后一行;
[number] #第N行;
/ #搜索;
q #退出;
more 显示文件内容,每次显示一屏
语法形式
more [参数]
⭐️⭐️⭐️四剑客⭐️⭐️⭐️
find 在指定目录下查找文件
语法形式
find [参数1] [选项] [参数2]
find [参数1] [选项] [参数2] [or/and] [选项] [参数2]
参数1
#具体的文件或者目录;
参数2
可为文件名 #当为文件名时,必须要用“”引住文件名;
文件类型 #- 普通文件类型 ;d 目录文件类型;l 链接文件类型;
文件inum号
文件大小 #<等于>、<大于>、<小于>分别用<空格><+><->;
or/and
#使用find命令可以多条件查找;
and #需要同时满足两个、多个条件时(and可以省略);
or #只需满足其中之一条件时;
选项
-type #按照文件类型查找;
-name #按照文件名字查找;
-iname #按照文件名字查找(忽略大小写);
-inum #按照文件iNode号查找;
-maxdepth [number] #按照深度等级查找(向下遍历);
-mindepth [number] #按照深度等级查找(向上遍历);
-size #按照文件大小查找;
示例
#查找/目录下文件大小大于500M的文件
[root@Dezyan ~]# find / -size +500M
/proc/kcore
#查找/目录下文件大小大于500M且文件类型为目录
[root@Dezyan ~]# find / -size +50M -type d
xargs 给其他命令传递参数的一个过滤器
注意:在xargs后别名失效
语法形式
find ………… | xargs [文件操作,命令]
#可以理解为将|前执行的结果甩到末尾,再执行|后的命令
相关使用方法
ls -l/cat # 查看找到的文件;
rm [选项] #将查找的文件删除;
-i cp/mv {} [参数] #将查找到的文件复制/移动到[参数位置];
cp/mv -t [参数] #将查找到的文件复制/移动到[参数位置];
示例
#将/etc/下大于9M的文件复制到~目录下
[root@Dezyan ~]# find /etc/ -size +9M | xargs cp -t ~
[root@Dezyan ~]# ls ~ | grep 'hwd'
hwdb.bin
exec 调用并执行指定的命令
语法形式
find ………… -exec [命令] {} [参数] \;
注意:其中==;==为shell中命令的分隔符,可将多个命令同时执行:mkdir test;touch 1.txt。
相关使用方法
rm [选项] {} \; #将查找的文件删除;
cp/mv {} [参数] \; #将查找到的文件复制/移动到[参数位置];
示例
#将/etc/下大于9M的文件复制到~目录下
[root@Dezyan ~]# find /etc/ -size +9M -exec cp {} ~ \;
[root@Dezyan ~]# ls ~ | grep 'hwd'
hwdb.bin
``和$()
语法形式
[命令+选项] `find ……………`
[命令+选项] `find ……………` [参数]
$()效果与``相同
注意:如果一段命令被添加上了``,那么在整体命令中,需要先执行``中的命令,类似于运算法则中的加减乘除先算()。
相关使用方法
cp/mv `find ……` [参数]
ls/rm……
示例
#将/etc/下大于9M的文件复制到~目录下
[root@Dezyan ~]# cp -a `find /etc/ -size +9M` ~
grep 强大的文本搜索工具
语法形式
grep [选项] '[word]' [参数]
选项
--color #对筛选出的WORD加颜色显示;
-i #搜索时不区分大小写;
-n #搜索出的结果显示行号;
-v #反转查找;
-o #只输出文件中搜索到的部分;
-E #识别扩展正则进行过滤;
-r #当指定要查找的是<目录>而非文件时,必须使用这项参数;
示例
#在/etc/passwd文件中过滤出root的行
[root@Dezyan ~]# grep --color 'root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
#不区分大小写过滤出 /etc/ssh/sshd_config 文件中包含`port 22`的行并输出行号
[root@Dezyan ~]# grep --color -i -n 'port 22' /etc/ssh/sshd_config
17:#Port 22
#排除(取反)/etc/ssh/sshd_config文件中的#(井号)
[root@Dezyan ~]# grep -v '#' /etc/ssh/sshd_config
#过滤掉某文件中的空行,只显示有内容的行
[root@Dezyan ~]#grep -v '^$' file.txt
sed 功能强大的流式文本编辑器
awk 文本和数据进行处理的编程语言
取列
语法形式
awk '{print $[number]}' [参数]
选项
[number] #取出文件的第N行;
# NF代表最后一行;
# (NF-[number])代表倒数第n-1行;
示例
[root@Dezyan ~]# awk '{print $NF}' awk.txt
wc 统计文件的字节数、字数、行数
语法形式
wc [选项] [参数]
选项
# 查看文件的字节数、字数、行数;
-l # 统计行数;
示例
#查看文件的字节数、字数、行数
[root@Dezyan ~]#wc test.txt
## 输出结果
7 8 70 test.txt
##行数 单词数 字节数 文件名
#统计文件行数
[root@Dezyan ~]#wc -l /etc/services
11473 /etc/services
sort 对文本文件中所有行进行排序
语法形式
sort [选项] [参数]
选项
#<=> cat 文件 | sort 默认第一列内容进行排序(从小到大)
-r #第一列内容进行排序(从大到小);
-n #按照数字正序排序;
-rn #逆序排序;
-nk2 #按照第二列的大小正序排序;
示例
#将文件按照第二列的大小逆序排序
[root@Dezyan ~]# sort -rnk2 num.txt
uniq 显示或忽略重复的行。
语法形式
uniq [选项] [参数]
选项
#邻行去重;
-i #忽略大小写的差异;
-d #所有邻近的重复行只被打印一次。
示例
lrzsz 上传、下载文件的插件
安装
yum install -y lrzsz
命令说明
rz #上传 rz回车即可或拖拽
sz #下载 sz /etc/hostname 下载指定的文件。
压缩与解压缩
tar
语法形式
tar [选项1] [压缩文件]
tar [选项1] [压缩包存放路径] [待压缩文件]
tar [选项1] [压缩包存放路径] [待压缩文件] [选项2]
选项1
z #采用zip方式进行压缩数据;
c #创建一个压缩包文件;
v #显示压缩数据过程;
f #指定压缩路径信息 创建压缩包文件名称;
t #显示压缩包内容;
x #解压文件;
选项2
-C #解压到指定目录;
选项应用
zcvf 简写zcf #压缩文件;
ztvf 简写tf #显示压缩包内容;
zxvf 简写xf #解压文件
示例
#压缩1.txt文件到/tmp/目录中并命名为1.tar.gz
[root@Dezyan ~]# tar zcvf /tmp/a.tar.gz a.txt
#查看此压缩文件
[root@Dezyan ~]# tar ztvf /tmp/a.tar.gz
-rw-r--r-- root/root 379 2024-10-26 17:14 a.txt
#解压此文件到/目录
[root@Dezyan ~]# tar zxvf /tmp/a.tar.gz -C /
注意:当使用zcf压缩文件时,会有如下提示信息:
[root@Dezyan ~]# tar zcf ./awk.tar.gz /etc/
tar: 从成员名中删除开头的“/”
该提示是tar命令安全机制,把绝对路径转换为相对路径。解压的时候当前目录。避免解压也是绝对路径,覆盖对应的文件目录。
gzip(不常用)
语法形式
gzip [参数]
区别
#使用此命令压缩文件会将原文件删除,只留下压缩文件;
zipunzip
zip 解压缩文件
语法形式
zip -rq [压缩包存放路径] [待压缩文件]
unzip 用于解压缩由zip命令压缩的压缩包
语法结构
unzip [参数] #解压到当前目录
hostnamectl 查看与修改主机名
相关命令
hostnamectl #查看主机名版本等信息
hostname #查看主机名
cat /etc/hostname #查看主机名
hostnamectl set-hostname [NAME] #永久更改主机名
hostnamectl [NAME] #临时更改主机名
查看版本信息
[root@Dezyan ~]# cat /etc/os-release
uname 打印系统信息(内核版本)
语法形式
uname [选项]
选项
-a #按顺序打印全部信息
-r #打印内核release