查看文本文件内容-cat命令
- 格式:cat [选项] 目标文件
查看/etc/shells文件
[root@localhost ~]# cat /etc/shells
查看/etc/rocky-release文件(这个文件专门用于记录操作系统版本信息)
[root@localhost ~]# cat /etc/rocky-release
查看/etc/passwd文件
[root@localhost ~]# cat /etc/passwd
查看/proc/meminfo文件(这个文件用于记录当前系统内存信息)
[root@localhost ~]# cat /proc/meminfo
MemTotal: 1828200 kB #总内存
MemFree: 87112 kB #剩余内存
...
分页查看文本文件-less命令
格式: less 目标文件
-
less查看文件内容为交互式查看,在交互式模式中:
-
按/表示搜索关键词,按n查找下一个、按N查找上一个
-
按空格以页为单位翻页浏览,按回车以行为单位翻页浏览
-
按q退出交互式界面
-
分页查看/etc/passwd文件
[root@localhost ~]# less /etc/passwd
查看CPU信息-lscpu命令
- 格式:lscpu
-
[root@localhost ~]# lscpu
查看系统内核版本-uname命令
- 格式:uname [选项]
- -r 输出内核发行号
[root@localhost ~]# uname -r
查看IP地址-ifconfig命令
- 格式:ifconfig [网卡]
[root@localhost ~]# ifconfig #查看IP地址 [root@localhost ~]# ifconfig ens160 #指定网卡查看IP地址(网卡名以自己的为准)
创建目录-mkdir命令
- 格式:mkdir [选项] [/路径/]目录名 ...
- -p:连同父目录一并创建
创建/opt/java01目录
[root@localhost ~]# mkdir /opt/java01
创建/opt/aa/bb/cc/dd
[root@localhost ~]# ls /opt/ #查看/opt/没有aa目录
a.txt java01
[root@localhost ~]# mkdir /opt/aa/bb/cc/dd #此时直接创建报错
mkdir: 无法创建目录 “/opt/aa/bb/cc/dd”: 没有那个文件或目录
[root@localhost ~]# mkdir -p /opt/aa/bb/cc/dd #加上-p选项,成功创建
[root@localhost ~]# ls -R /opt/aa/ #递归查看/opt/aa
创建空文件-touch命令
- 格式:touch [选项] 目标文件 ...
创建空文件/opt/1.txt、/opt/2.txt
[root@localhost ~]# touch /opt/1.txt
[root@localhost ~]# touch /opt/2.txt
查看文件前几行-head命令
格式:head [-n] 行数 目标文件
- -n 选项也可以省略,直接写-行数
- 当没有指定看前几行时间,默认看前10行
查看/etc/passwd文件的前2行
[root@localhost ~]# head -n 2 /etc/passwd
[root@localhost ~]# head -2 /etc/passwd
查看/etc/passwd文件的前10行
[root@localhost ~]# head -n 10 /etc/passwd
[root@localhost ~]# head -10 /etc/passwd
[root@localhost ~]# head /etc/passwd
查看文件后几行-tail命令
- 格式:tail [-n] 行数 目标文件
- -n 选项也可以省略,直接写-行数
- 当没有指定看前几行时间,默认看后10行
查看/etc/group文件后2行
[root@localhost ~]# tail -n 2 /etc/group
[root@localhost ~]# tail -2 /etc/group
查看/etc/group文件后10行
[root@localhost ~]# tail -n 10 /etc/group
[root@localhost ~]# tail -10 /etc/group
[root@localhost ~]# tail /etc/group
快速编辑技巧
- Tab键补齐:命令、选项、参数、文件路径、软件名、服务名...
- 快捷键
- Ctrl l:清空整个屏幕
- Ctrl c:废弃当前编辑的命令行操作
- Esc . 或者ALT .:粘贴上一个命令的参数
关机及重启
重启:reboot
关机:poweroff
[root@localhost ~]# reboot #重新启动
[root@localhost ~]# poweroff #关闭机器
别名管理-alias/unalias
-
作用:别名相当于生活中的外号,用于将复杂的命令简单化
-
格式:alias [别名='真实命令']
- 查看当前系统已有别名直接alias
- alias定义别名是临时生效的
- 一般不要把其他命令关键字作为别名(例如将ls作为其他命令的别名),因为别名优先级更高
- 取消别名: unalias 别名
查看当前已有别名
[root@localhost ]# alias
将hn定义为hostname的别名
[root@localhost ~]# alias hn='hostname' #定义hn为hostname的别名
[root@localhost ~]# alias #查看已有别名
[root@localhost ~]# hn #验证别名是否生效
取消别名hn
[root@localhost ~]# unalias hn #取消别名hn
[root@localhost ~]# alias #查看是否取消别名hn
[root@localhost ~]# hn #查看hn是否生效
删除操作-rm命令
格式:rm [选项] 参数 ...]
-i 提示是否删除
-r 递归删除
-f 强制删除
- rm 默认是rm -i的别名
- -f优先级大于-i,所以当-f和-i同时出现时,优先使用-f选项的功能
使用rm命令删除文件
[root@localhost ~]# touch /opt/test.txt #创建文件
[root@localhost ~]# rm /opt/test.txt #直接删除文件
rm:是否删除普通空文件 '/opt/test.txt'?y #会有提示(回答y表示删除,回答n表示不删除)
[root@localhost ~]# ls /opt/ #查看/opt/是否还有test.txt
[root@localhost ~]# touch /opt/test2.txt #创建/opt/test2.txt
[root@localhost ~]# rm -f /opt/test2.txt #强制删除/opt/test2.txt
[root@localhost ~]# ls /opt/ #查看/opt/是否还有test2.txt
使用rm命令删除目录
[root@localhost ~]# mkidr -p /opt/aa/bb/cc/dd #创建目录
[root@localhost ~]# rm /opt/aa/ #直接删除报错,想要删除目录必须加上-r
rm: 无法删除'/opt/aa/': 是一个目录
[root@localhost ~]# ls /opt/ #查看/opt/aa目录还在
[root@localhost ~]# rm -r /opt/aa/ #使用-r选项递归删除(因为是rm -i的别名所以有提示)
rm:是否进入目录'/opt/aa/'? y
rm:是否进入目录'/opt/aa/bb'? y
rm:是否进入目录'/opt/aa/bb/cc'? y
rm:是否删除目录 '/opt/aa/bb/cc/dd'?y
rm:是否删除目录 '/opt/aa/bb/cc'?y
rm:是否删除目录 '/opt/aa/bb'?y
rm:是否删除目录 '/opt/aa/'?y
[root@localhost ~]# mkdir -p /opt/aa/bb/cc/dd #再次创建目录
[root@localhost ~]# rm -rf /opt/aa/ #加上-f选项不在有提示
删除空目录rmdir
- rmdir命令是Linux系统下一个用于删除空目录的命令
[root@localhost ~]# mkdir /java1 #创建目录/java1
[root@localhost ~]# mkdir /java2 #创建目录/java2
[root@localhost ~]# touch /java1/test.txt #创建文件/java1/test.txt
[root@localhost ~]# rmdir /java1/ #删除非空目录/java1,失败
rmdir: 删除 '/java1/' 失败: 目录非空
[root@localhost ~]# rmdir /java2 #删除空目录/java2,成功
移动操作-mv
-
格式:mv <源数据> ... <目标位置>
-
mv移动数据会使源文件消失
-
mv可以同时移动多个参数,只有最后一个是目标位置
-
mv可以再移动的过程中改名
-
目标地址不变的移动等于重命名
移动文件操作
[root@localhost ~]# mkdir /opt/java10 #创建目录/opt/java10
[root@localhost ~]# touch /opt/1.txt #创建/opt/1.txt
~]# mv /opt/1.txt /opt/java10 #将/opt/1.txt移动至/opt/java10目录
[root@localhost ~]# ls /opt/java10/ /opt/ #同时查看/opt/java10和/opt目录验证
移动过程中改名操作
[root@localhost ~]# touch /root/linux.txt #创建/root/linux.txt
~]# mv /root/linux.txt /opt/j.txt #将linux.txt移动至/opt下并改名为j.txt
[root@localhost ~]# ls /opt/ /root/ #同时查看/opt/和/root/目录验证
使用mv进行"重命名"操作
[root@localhost ~]# ls /opt/
[root@localhost ~]# mv /opt/java10 /opt/game #将/opt/java10重命名为/opt/game
[root@localhost ~]# ls /opt/
查找命令程序文件-which命令
- 作用:which命令用于查找并显示指定命令的绝对路径
- Linux中每个命令都有其对应的程序文件,当执行命令的时候其实执行的是这个程序文件
[root@localhost ~]# which hostname #查找hostname命令的程序文件
/usr/bin/hostname
[root@localhost ~]# /usr/bin/hostname #通过绝对路径运行这个文件查看主机名
复制操作-cp
-
格式:cp [选项] <源数据> ... <目标路径>
- -f 强制覆盖
- -r 递归拷贝
- -p 保留数据原属性复制
-
cp支持多参数,最后一个为目标路径
-
cp不会使源文件消失
-
cp操作可以在复制过程中对目标文件改名
-
cp默认是cp -i的别名,其-i选项优先级高于-f,所以当-i和-f同时出现时,使用-i的属性
拷贝文件及目录
[root@localhost ~]# cp /etc/passwd /opt/ #将/etc/passwd文件复制到/opt/目录
[root@localhost ~]# cp /etc/shells /opt/ #将/etc/shells文件复制到/opt/目录
~]# cp /etc/passwd /opt/ps.txt #将/etc/passwd文件复制到/opt/目录下并改名为ps.txt
[root@localhost ~]# cp /boot/ /opt/ #将/boot目录复制到/opt/目录下,报错
[root@localhost ~]# cp -r /boot/ /opt/ #将/boot目录复制到/opt/目录下,成功
[root@localhost ~]# ls /opt #验证是否成功拷贝
cp多参数拷贝(最后一个为目标路径)
#将/boot/,/home/,/etc/passwd,/etc/shells复制到/mnt目录下
[root@localhost ~]# cp -r /boot/ /home/ /etc/passwd /etc/shells /mnt/
[root@localhost ~]# ls /mnt/ #验证
cp与.连用(.表示当前路径)
[root@localhost ~]# cd /mnt #切换至/mnt
[root@localhost mnt]# cp /etc/fstab . #将/etc/fstab复制到当前路径下
[root@localhost mnt]# ls #验证
cp复制保持属性不变
[root@localhost ~]# ls -ld /home/lisi/
drwx------. 4 lisi lisi 113 2月 24 10:22 /home/lisi/
[root@localhost ~]# cp -r /home/lisi/ /opt/ #将/home/lisi目录复制到/opt下
[root@localhost ~]# ls -ld /opt/lisi/ #所有者与所属组发生了改变
drwx------. 4 root root 113 2月 28 12:33 /opt/lisi/
[root@localhost ~]# rm -rf /opt/lisi/ #删除/opt/lisi目录
~]# cp -rp /home/lisi/ /opt/ #保留属性将/home/lisi目录复制到/opt下
[root@localhost ~]# ls -ld /opt/lisi/ #查看目标属性不变
drwx------. 4 lisi lisi 113 2月 24 10:22 /opt/lisi/
软连接
- 软连接 --> 原始文档 --> 文档数据
- 格式:ln -s 原始文件或目录 软连接文件
- 若原始文件或目录被删除,连接文件将失效
- 软连接可存放在不同分区/文件系统
#将/opt/ps.txt设置为/etc/passwd的软连接
[root@localhost ~]# ln -s /etc/passwd /opt/ps.txt
硬链接
- 硬链接 --> 文档数据
- 格式:ln 原始文件 硬链接文件
- 若原始文件被删除,链接文件仍可用
- 硬链接与原始文件必须在同一分区/文件系统
#将/opt/shells设置为/etc/shells的硬链接
[root@localhost ~]# ln /etc/shells /opt/shells
软连接硬链接区别实验
创建素材文件
[root@localhost ~]# cp /etc/rocky-release /opt/a.txt #产生素材文件
#将/opt/b.txt设置为/opt/a.txt的软连接
[root@localhost ~]# ln -s /opt/a.txt /opt/b.txt
#将/opt/c.txt设置为/opt/a.txt的硬链接
[root@localhost ~]# ln /opt/a.txt /opt/c.txt
[root@localhost ~]# rm -rf /opt/a.txt #删除源文件/opt/a.txt
[root@localhost ~]# cat /opt/b.txt #无法查看软连接文件/opt/b.txt
[root@localhost ~]# cat /opt/c.txt #可以正常查看硬链接文件/opt/c.txt
通配符
-
概念:使用固定的字符对数据进行模糊匹配
-
类似生活中:张三、张三丰、张三花,张xx(此时xx可能代表三丰、三花),张x(x可以表示三)
-
*:匹配任意字符,包含0个字符
-
?:匹配任意单个字符
-
[0-9]:匹配0-9任意单个数字
-
[a-z]:匹配任意单个字符
-
{xx,yy,zz}:严格匹配大括号内的元素
-
[root@localhost ~]# ls /dev/tty* #匹配/dev/tty后边任意字符内容
[root@localhost ~]# ls /dev/tty? #匹配/dev/tty后边1个字符内容
[root@localhost ~]# ls /dev/tty?? #匹配/dev/tty后边2个字符内容
[root@localhost ~]# ls /dev/tty[0-9] #匹配/dev/tty后边1个数字内容
[root@localhost ~]# ls /dev/tty[0-9][0-9] #匹配/dev/tty后边2个数字内容
#创建文件/opt/a.txt,/opt/b.txt,/opt/c.txt
[root@localhost ~]# touch /opt/{a,b,c}.txt
[root@localhost ~]# ls /opt/[a-z].txt #查看/opt/下一个字符.txt的文件
[root@localhost ~]# ls -d /m{edia,nt} #严格匹配/media和/mnt
重定向操作
作用:将前方命令输出内容保存到文件
>:覆盖重定向
>>:追加重定向
- 当目标文件存在时,则使用目标文件存储数据
- 当目标文件不存在时,重定向会创建该目标文件并存储数据
补充:echo指令,echo会将指定内容输出到屏幕上
例如
[root@localhost ~]# echo hahaxixi #在屏幕输出hahaxixi
hahaxixi
[root@localhost ~]# echo "I LOVE YOU" #在屏幕输出I LOVE YOU
I LOVE YOU
覆盖重定向
[root@localhost ~]# cat /opt/hn.txt #查看/opt/hn.txt,没有此文件
#将hostname输出结果写入/opt/hn.txt文件
[root@localhost ~]# hostname > /opt/hn.txt
[root@localhost ~]# cat /opt/hn.txt #查看/opt/hn.txt,有文件,有内容
#将ifconfig输出结果写入/opt/hn.txt文件
[root@localhost ~]# ifconfig > /opt/hn.txt
追加重定向
[root@localhost ~]# echo 123 > /opt/a.txt #将123重定向至/opt/a.txt文件
[root@localhost ~]# cat /opt/a.txt #查看/opt/a.txt文件内容
[root@localhost ~]# echo 456 >> /opt/a.txt #将456追加重定向至/opt/a.txt文件
[root@localhost ~]# cat /opt/a.txt #查看/opt/a.txt文件内容(123没有被覆盖)
管道操作
作用:将前方命令输出结果作为后方命令参数
- 管道可以多重使用
[root@localhost ~]# ls --help | less #将ls --help输出信息交给less命令作为参数
[root@localhost ~]# ifconfig | head -2 #将ifconfig输出信息交给head -2作为参数
find精确查找
find基本使用
格式:find 查找目录 条件
- find可用于在Linux操作系统中精确查找某些资料
- find查找为"地毯式搜索"不会放过任何一个子目录、隐藏目录
- 查找过程中如果遇到/proc目录下的报错,属于正常现象,因为/proc不占用磁盘空间,占用的是内存空间
- 常用查找条件
- -type 按类型查找(f、d、l)
- -name 按名字查找(可与通配符连用)
- -iname 按名字查找(可忽略名字大小写查找、可与通配符连用)
- -size 按数据大小查找(k、M、G)
- -mtime 按数据最近修改时间查找
- -user 按数据所有者查找
按类型查找
[root@localhost ~]# find /boot/ -type f #在/boot/下递归查找文件
[root@localhost ~]# find /boot/ -type d #在/boot/下递归查找目录
[root@localhost ~]# find /boot/ -type l #在/boot/下递归查找连接文件(快捷方式)
按名字查找
#在/etc/下递归查找名为passwd的数据
[root@localhost ~]# find /etc/ -name "passwd"
#在/etc/下递归查找tab结尾的数据
[root@localhost ~]# find /etc/ -name "*tab"
#在/etc/下递归查找名字包含passwd的数据
[root@localhost ~]# find /etc/ -name "*passwd*"
忽略名字大小写查找
#在/etc/查找名为passwd的数据(忽略大小写)
[root@localhost ~]# find /etc/ -iname "PaSSwd"
按大小查找
- k:kb作为单位
- M:MB作为单位
- G:GB作为单位
- 注意:在使用大小进行查找时,对于某些目录可能存在一定的BUG,例如1M需要写成1024k,当然这里需要多测试才会发现
[root@localhost ~]# find /boot/ -size +2M #在/boot/查找文件大小大于2M的数据
[root@localhost ~]# ls -lh /boot/grub2/fonts/unicode.pf2 #验证大小
-rw-r--r--. 1 root root 2.5M 12月 19 12:10 /boot/grub2/fonts/unicode.pf
#在/boot/查找文件大小小于1M的数据(出现BUG)
[root@localhost ~]# find /boot/ -size -1M
#在/boot/查找文件大小小于1024k的数据(小于1M)
[root@localhost ~]# find /boot/ -size -1024k
按修改时间
[root@localhost ~]# find /etc/ -mtime +10 #查找10天前修改的数据
[root@localhost ~]# find /etc/ -mtime -10 #查找近10天修改的数据
查找按所有者查找
[root@localhost ~]# ls -ld /home/lisi/ #查看“文档”属性,查看所有者
drwx------. 4 lisi lisi 113 2月 24 10:22 /home/lisi/
[root@localhost ~]# find /home/ -user lisi #从/home中查找所有者为lisi的数据
[root@localhost ~]# find /etc/ -user root #从/etc中查找所有者为root的数据
grep命令使用
- 功能:输出包含指定字符/匹配规则的行
- 格式: grep '查找条件' 目标文件
- -i:查找是忽略关键字大小写
- -v:对查找结果去反(匹配不包含指定字符/不满足条件的行)
- ^关键字:匹配关键字开头的行
- 关键字$:匹配关键字结尾的行
- ^$:匹配空行
[root@localhost ~]# grep root /etc/passwd #在/etc/passwd文件中匹配包含root的行
[root@localhost ~]# grep bash /etc/passwd #在/etc/passwd文件中匹配包含bash的行
#忽略大小写匹配/etc/passwd文件中包含ROOT的行
[root@localhost ~]# grep -i ROOT /etc/passwd
#在/etc/passwd文件中匹配不包含root的行
[root@localhost ~]# grep -v root /etc/passwd
#匹配/etc/passwd文件中以root开头的行
[root@localhost ~]# grep ^root /etc/passwd
#匹配/etc/passwd文件中以bash结尾的行
[root@localhost ~]# grep bash$ /etc/passwd
#匹配/etc/default/useradd中的空行
[root@localhost ~]# grep ^$ /etc/default/useradd
过滤/etc/default/useradd中的有效代码
- 有效代码不含注释行(#开头的行)
- 有效代码不含空行
[root@localhost ~]# grep -v ^# /etc/default/useradd | grep -v ^$
vim文本编辑器
功能:使用vim文本编辑器可以修改/创建文件
- 若目标文件不存在,则新建空文件并编辑
- 若目标文件已存在,则打开此文件并编辑
三大模式:命令模式、插入模式、末行模式
[root@localhost ~]# vim /opt/haha.txt
AAAAAAAAAAAAAAA
BBBBBBBBBBBBBBB
CCCCCCCCCCCCCCC
按Esc键回到命令模式,按:(英文冒号)进入末行模式,输入wq,保存并退出
命令模式基本操作
光标跳转
复制、粘贴、删除
末行模式基本操作
存盘、退出、文件操作
开关设置
归档及压缩
归档的含义:
- 将许多零散的文件整理为一个文件
- 文件总的大小基本不变
压缩的含义:
- 按某种算法减小文件所占用空间的大小
- 恢复时按对应的逆向算法解压
压缩格式 | 扩展名 | 特点 |
---|---|---|
gzip | .gz | 速度快,压缩比例低 |
bzip2 | .bz2 | 速度中等,压缩比例中等 |
xz | .xz | 速度慢,压缩比例高 |
tar命令工具
- -c:创建归档
- -x:释放归档
- -f:指定归档文件名称
- -z、-j、-J:调用 .gz、.bz2、.xz 格式的工具进行处理
- -t:显示归档中的文件清单
- -C(大写):指定释放的位置
- 注:f选项必须放在所有选项的最后
制作压缩包
- 制作压缩包又被称之为打包
- 格式:tar 选项 /路径/压缩包名字 被压缩归档的源数据1 被压缩归档的源数据2 ...
将/boot/目录和/home/目录打包至/opt/
[root@localhost ~]# rm -rf /opt/* #删除/opt/里边的所有数据(除了patch_workspace)
[root@localhost ~]# tar -zcf /opt/two.tar.gz /boot/ /home/ #使用gzip格式
[root@localhost ~]# tar -jcf /opt/two.tar.bz2 /boot/ /home/ #使用bzip2格式
[root@localhost ~]# tar -Jcf /opt/two.tar.xz /boot/ /home/ #使用xz格式
[root@localhost ~]# ls -l /opt/two.tar.* #查看各个压缩包大小
释放压缩包
- 释放压缩包有被称之为解包
- 格式:tar 选项 /路径/压缩包名字 [-C] 释放路径
将/opt/two.tar.gz释放到/opt下
[root@localhost ~]# tar -zxf /opt/two.tar.gz -C /opt/ #将压缩包释放至/opt
[root@localhost ~]# cd /opt #切换至/opt目录
[root@localhost ~]# tar -zxf /opt/two.tar.gz -C . #.表示当前路径
[root@localhost ~]# tar -zxf /opt/two.tar.gz #不指定释放目录默认为当前所在位置
补充
zip压缩包
- zip是一种跨平台的压缩格式,即在Linux操作系统的zip格式压缩包传递至Windows操作系统仍然可用。
制作zip格式压缩包(打包)
- zip [-r] 备份文件.zip 被归档的文档1 被归档的文档2 ...
将/etc/selinux打包至/root/selinux.zip
[root@localhost ~]# zip -r /root/selinux.zip /etc/selinux/
[root@localhost ~]# du -sh /root/selinux.zip /etc/selinux/ #查看压缩包和源数据的大小
4.0M /root/selinux.zip
9.6M /etc/selinux/
释放zip格式压缩包(解包)
- 格式:unzip 备份文件.zip [-d 目标文件夹]
[root@localhost ~]# unzip /root/selinux.zip -d /opt/ #将/root/selinux.zip解压至/opt/
总结
- 掌握Linux常用命令
- ifconfig、mkdir、touch、head、tail、alias
- rm、rmdir、mv、cp、grep
- 掌握管道、重定向
- 掌握find命令使用
- 掌握find命令高级使用
- 掌握vim文本编辑器使用
- 掌握Linux中压缩包的常用格式及压缩包的管理方式
- gzip
- bzip2
- xz
- zip
ChatGPT扩展
- Linux系统中find命令如何将查找到的数据复制到指定目录
- Linux系统中find命令的常用匹配类型