运维打怪升级之第二关Linux系统命令详解之第二篇

📅 2026/6/16 4:45:25
运维打怪升级之第二关Linux系统命令详解之第二篇
1Linux目录及作用Linux根目录下的一级目录的作用bin #二进制系统命令所在的目录boot #系统内核的位置引导的程序的位置dev #硬件设备所在的位置etc #配置文件所在的目录默认的系统配置文件在etc目录home #家目录普通用户的家目录mnt #临时挂载点硬件的一个入口文件opt #第三方程序默认安装的位置proc #内存的映射文件可以通过目录下的文件查看硬件信息 cpu 内存root # 管理员的家目录sbin #超级管理员命令所在的位置tmp #临时存放文件的目录类似于windows的回收站 使用移动代替删除usr #用户程序文件所在的位置var #日志文件所在的位置2挂载设备的流程1虚拟机挂载需要在虚拟机设置DVD添加ISO镜像文件2给cdrom创建一个入口3使用系统存在的/data目录作为入口[rootlocalhost ~]# mount /dev/cdrom /root/datamount: /dev/sr0 is write-protected, mounting read-only注意sr0就是cdrom的名字注意如果提示mount: no medium found on /dev/sr0那么就证明你虚拟机没有 识别到镜像文件所以你需要把虚拟机关机重启系统即可4进入cdrom查看镜像文件的内容[rootlocalhost ~]# cd data[rootlocalhost data]# lltotal 696-rw-r--r--. 3 root root 14 Oct 30 2020 CentOS_BuildTagdrwxr-xr-x. 3 root root 2048 Oct 27 2020 EFI-rw-rw-r--. 21 root root 227 Aug 30 2017 EULA-rw-rw-r--. 21 root root 18009 Dec 10 2015 GPLdrwxr-xr-x. 3 root root 2048 Oct 27 2020 imagesdrwxr-xr-x. 2 root root 2048 Nov 3 2020 isolinuxdrwxr-xr-x. 2 root root 2048 Oct 27 2020 LiveOSdrwxr-xr-x. 2 root root 673792 Nov 4 2020 Packagesdrwxr-xr-x. 2 root root 4096 Nov 4 2020 repodata-rw-rw-r--. 21 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-7-rw-rw-r--. 21 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-7-r--r--r--. 1 root root 2883 Nov 4 2020 TRANS.TBL5查看磁盘信息[rootlocalhost data]# df -hFilesystem Size Used Avail Use% Mounted ondevtmpfs 980M 0 980M 0% /devtmpfs 991M 0 991M 0% /dev/shmtmpfs 991M 9.5M 981M 1% /runtmpfs 991M 0 991M 0% /sys/fs/cgroup/dev/sda3 18G 1.9G 16G 11% //dev/sda1 197M 110M 88M 56% /boottmpfs 199M 0 199M 0% /run/user/0/dev/sr0 4.4G 4.4G 0 100% /root/data6卸载挂载点/root/data[rootlocalhost ~]# umount /root/data3Linux系统命令cp #复制文件、目录可以改名备份 windows的ctrlc英文copy语法结构cp 源文件 目标位置cp 源文件 新文件的名称cp 文件1 文件2 目录/cp 目录 目标位置cp -r #复制目录递归复制目录及目录下的文件cp -p #保留源文件属性示例1复制test.txt到/tmp/目录下名称不变[rootlocalhost ~]# touch test.txt[rootlocalhost ~]# lltotal 0-rw-r--r--. 1 root root 0 Jun 13 00:12 test.txt[rootlocalhost ~]# cp test.txt /tmp/test.txt[rootlocalhost ~]# ll /tmptotal 0-rw-r--r--. 1 root root 0 Jun 13 00:13 test.txt再复制一次会提示是否覆盖[rootlocalhost ~]# cp test.txt /tmp/test.txtcp: overwrite ‘/tmp/test.txt’?输入y则覆盖输入n则不覆盖ctrlc终止复制操作示例2复制test.txt 到当前目录名字为test.txt.bak用于备份文件[rootlocalhost ~]# cp test.txt test.txt.bak[rootlocalhost ~]# lltotal 0-rw-r--r--. 1 root root 0 Jun 12 23:59 test.txt-rw-r--r--. 1 root root 0 Jun 13 00:05 test.txt.bak复制/tmp/下的test.txt到当前目录下名为test1.txt[rootlocalhost ~]# cp /tmp/test.txt test1.txt[rootlocalhost ~]# lltotal 0-rw-r--r--. 1 root root 0 Jun 13 00:15 test1.txt示例3复制当前目录下的test.txt和test1.txt 到/opt下[rootlocalhost ~]# cp test.txt test1.txt /opt[rootlocalhost ~]# ll /opttotal 0-rw-r--r--. 1 root root 0 Jun 13 00:18 test1.txt-rw-r--r--. 1 root root 0 Jun 13 00:18 test.txt示例4拷贝data目录到/tmp/目录下[rootlocalhost ~]# cp -r data /tmp[rootlocalhost ~]# ll /tmptotal 0drwxr-xr-x. 2 root root 6 Jun 13 00:21 data示例5强制复制目录及目录以下文件到/tmp不需要手动输入y强制覆盖不提醒创建文件[rootlocalhost ~]# touch data/{1..3}.txt[rootlocalhost ~]# ll data/total 0-rw-r--r--. 1 root root 0 Jun 14 21:25 1.txt-rw-r--r--. 1 root root 0 Jun 14 21:25 2.txt-rw-r--r--. 1 root root 0 Jun 14 21:25 3.txt重复复制文件时会提示是否覆盖只需在cp前家翘棍\ 取消提示 强制覆盖[rootlocalhost ~]# cp -r data /tmpcp: overwrite ‘/tmp/data/1.txt’? ycp: overwrite ‘/tmp/data/2.txt’? ycp: overwrite ‘/tmp/data/3.txt’? y使用\cp强制覆盖不提示[rootlocalhost ~]# \cp -r data /tmp有时我们复制多个文件时会提示是否覆盖导致很不方便可以加翘棍可以取消cp -i的别名其他有别名的命令也可以加\取消别名意思还原本意。示例6复制test文件到/opt下保持文件属性不变[rootlocalhost ~]# touch test.txt[rootlocalhost ~]# lltotal 0drwxr-xr-x. 2 root root 45 Jun 14 21:24 data-rw-r--r--. 1 root root 0 Jun 14 21:36 test.txt[rootlocalhost ~]# cp -p test.txt /opt[rootlocalhost ~]# ll /opttotal 0-rw-r--r--. 1 root root 0 Jun 14 21:36 test.txt2mv 移动文件 和目录 英文move语法结构mv 源文件 目录位置mv 文件1 文件2 目录位置mv 源文件名称 新文件名称示例1移动.bak文件到 /tmp目录下[rootlocalhost ~]# mv test.txt.bak /tmp/[rootlocalhost ~]# ll /tmptotal 0drwxr-xr-x. 2 root root 45 Jun 14 21:26 data-rw-r--r--. 1 root root 0 Jun 14 21:54 test.txt.bak示例2移动多个文件到/tmp目录 下[rootlocalhost ~]# mv 1.txt test.txt /tmp[rootlocalhost ~]# ll /tmptotal 0-rw-r--r--. 1 root root 0 Jun 14 21:56 1.txtdrwxr-xr-x. 2 root root 45 Jun 14 21:26 data-rw-r--r--. 1 root root 0 Jun 14 21:36 test.txt-rw-r--r--. 1 root root 0 Jun 14 21:54 test.txt.bak示例3移动文件不提示覆盖强制覆盖[rootlocalhost ~]# touch test.txt[rootlocalhost ~]# mv test.txt /tmpmv: overwrite ‘/tmp/test.txt’? y\mv强制覆盖不提示和cp一样取消别名[rootlocalhost ~]# \mv test.txt /tmp示例4移动目录mv可以直接移动目录不 加任何参数cp需要加-r[rootlocalhost ~]# mv data/ /tmp/[rootlocalhost ~]# ll /tmptotal 0drwxr-xr-x. 2 root root 45 Jun 14 21:24 data示例5在当前目录更改test.txt文件为test.txt.bak[rootlocalhost ~]# touch test.txt[rootlocalhost ~]# lltotal 0-rw-r--r--. 1 root root 0 Jun 14 22:06 test.txt[rootlocalhost ~]# mv test.txt test.txt.bak[rootlocalhost ~]# lltotal 0-rw-r--r--. 1 root root 0 Jun 14 22:06 test.txt.bak示例6把test.txt.bak移动到/tmp目录下并改名为test.txt[rootlocalhost ~]# touch test.txt.bak[rootlocalhost ~]# lltotal 0-rw-r--r--. 1 root root 0 Jun 15 00:39 test.txt.bak[rootlocalhost ~]# mv test.txt.bak /tmp/test.txt[rootlocalhost ~]# ll /tmptotal 0-rw-r--r--. 1 root root 0 Jun 15 00:39 test.txt在企业中用mv代替rm使用相当于先放到回收站但不清空3rm #删除文件或者目录危险危险危险英文remove语法结构rm 文件rm 文件1 文件2rm 目录-r #删除目录 和-f一起搭配-f #强制删除文件不提示-rf #强制删除目录不提示示例1删除.bak文件[rootlocalhost ~]# rm 1.bakrm: remove regular empty file ‘1.bak’? y不加-f默认会提示是否删除文件y是确认n是取消ctrlc取消操作示例2删除多个文件[rootlocalhost ~]# touch {1..3}.txt[rootlocalhost ~]# lltotal 0-rw-r--r--. 1 root root 0 Jun 15 00:47 1.txt-rw-r--r--. 1 root root 0 Jun 15 00:47 2.txt-rw-r--r--. 1 root root 0 Jun 15 00:47 3.txt[rootlocalhost ~]# rm -f 1.txt 2.txt 3.txt[rootlocalhost ~]# lltotal 0这里touch创建文件使用{}大括号是序列展开的语法1..3意思生成从1到3的序列后缀为.txt的普通文件示例3删除data目录注意这里使用相对路径而建议大家使用绝对路径如果不知道当前位置用pwd查看当前位置。[rootlocalhost ~]# mkdir data[rootlocalhost ~]# lltotal 0drwxr-xr-x. 2 root root 6 Jun 15 00:53 data[rootlocalhost ~]# rm -rf data[rootlocalhost ~]# lltotal 0示例4删除目录下的文件并不提示[rootlocalhost ~]# mkdir data[rootlocalhost ~]# touch data/{1..3}.txt[rootlocalhost ~]# ll datatotal 0-rw-r--r--. 1 root root 0 Jun 15 00:57 1.txt-rw-r--r--. 1 root root 0 Jun 15 00:57 2.txt-rw-r--r--. 1 root root 0 Jun 15 00:57 3.txt[rootlocalhost ~]# rm -rf data/*[rootlocalhost ~]# ll data这里的*号意思目录下的所有文件4vim 文件编辑器是vi的高级版本语法结构vim 文件名 文件不存在则创建文件vim /路径/文件名 目录必须存在ai 进入编辑模式可以输入内容Esc 退出编辑模式进去视图模式:w 保存:q 退出: 强制:q! 强制退出不保存示例1编辑1.txt文件输入内容“Linux基础”保存并退出这里提示找不到或没有这个命令那么就是未安装该命令那么安装一下就好啦。[rootlocalhost ~]# vim 1.txt-bash: vim: command not found[rootlocalhost ~]# yum -y install vim进入视图模式按‘i’或“a”进入编辑模式可以写入内容左下角会有INSERT提示输入“LInux基础”按Esc退出编辑模式进入视图模式按wq 保存并退出即可查看文件内容vim的快捷键提高工作效率视图模式下:set nu 显示行号移动光标G 快速移动光标到末尾10G 快速移动到第19行1G 快速移动到第1行gg 快速移动光标到首行$ 快速移动光标到行尾数字0 快速移动光标到行首/内容 搜索内容内容高亮标黄色n 向下搜索N 向上搜索:noh 取消高亮删除内容dd 删除/剪切光标所在的一行3dd 删除/剪切光标往下3行dEnd 快速删除/剪切光标到行尾d0 快速删除/剪切光标到行首dw 删除/剪切单词D 删除光标所在到行尾u 撤销操作p 粘贴剪切的内容3p 快速粘贴剪切3行进入编辑模式ai字母小o 在光标所在的下一行编辑内容字母大O 在光标所在的上一行编辑内容字母大C 删除光标所在到行尾进入编辑模式:底行模式:w 保存内容:q 退出不保存:q! 强制退出不保存:set nu 显示行号:set nonu 取消显示行号:noh 取消搜索高亮替换:s/// 只替换光标所在的第一行的单词替换前替换后:s///g 替换整行的单词替换前替换后:%s///g 替代文件中所有的:%s/root//g 留空就是替换为空可以理解为删除了文件中所有的root在视图模式下大写字母ZZ 是保存并退出在vim编辑文件时会发现多了一个.swp的隐藏文件是因为上一次编辑该文件时没有正常退出和修改后断电或者其他人同时正在编辑这个文件时或自己多个窗口同时编辑这文件解决方法vim -r 文件名----回车----:wq保存退出------删除隐藏文件.文件名.swp若不想保留修改后的操作直接删除隐藏文件 rm -f /路径/.文件名.swp5echo 输出字符串到屏幕上或者到文件里语法结构echo 字符串 输出到屏幕echo 字符串 文件 输出到文件-e 激活转义字符参数\n 换行\t tab键示例1输出Linux字符串到屏幕[rootlocalhost ~]# echo LinuxLinux示例2把Linux输入到1.txt文件中[rootlocalhost ~]# echo Linux 1.txt[rootlocalhost ~]# cat 1.txtLinux如果文件不存在则创建文件示例3把Linux换行输入testtab分割data然后输入1.txt文件[rootlocalhost ~]# echo -e Linux\ntest\tdataLinuxtest data[rootlocalhost ~]# echo -e Linux\ntest\tdata 1.txt[rootlocalhost ~]# cat 1.txtLinuxtest data示例4数字序列输出到屏幕[rootlocalhost ~]# echo {1..10}1 2 3 4 5 6 7 8 9 10还可以隔几个输出[rootlocalhost ~]# echo {1..10..2}1 3 5 7 9示例5字母序列输出[rootlocalhost ~]# echo {a..h}a b c d e f g h也可以隔几个输出[rootlocalhost ~]# echo {a..h..2}a c e g示例6拼接[rootlocalhost ~]# echo {1..3}.txt1.txt 2.txt 3.txt[rootlocalhost ~]# echo A{1..3}A1 A2 A3{}可以用在创建序列文件和目录示例创建 1-3.txt文件a-c的目录也可以创建不是序列的文件比如创建test.txt,data.txt,1.txt,文件或目录示例[rootlocalhost ~]# touch {test,data,1}.txt[rootlocalhost ~]# lltotal 0-rw-r--r--. 1 root root 0 Jun 15 01:35 1.txt-rw-r--r--. 1 root root 0 Jun 15 01:35 data.txt-rw-r--r--. 1 root root 0 Jun 15 01:35 test.txt[rootlocalhost ~]# mkdir {test,data,1}[rootlocalhost ~]# lltotal 0drwxr-xr-x. 2 root root 6 Jun 15 01:35 1-rw-r--r--. 1 root root 0 Jun 15 01:35 1.txtdrwxr-xr-x. 2 root root 6 Jun 15 01:35 data-rw-r--r--. 1 root root 0 Jun 15 01:35 data.txtdrwxr-xr-x. 2 root root 6 Jun 15 01:35 test-rw-r--r--. 1 root root 0 Jun 15 01:35 test.txt示例将结果输入文件中 标准输出重定向 会先清空文件再输入内容 标准追加重定向 会在文件内容末尾追加内容[rootlocalhost ~]# echo Linux 1.txt[rootlocalhost ~]# cat 1.txtLinux[rootlocalhost ~]# echo Linux基础 1.txt[rootlocalhost ~]# cat 1.txtLinuxLinux基础另外 只接受正确的结果示例报错的结果不输入文件中[rootlocalhost ~]# echoo Linux 1.txt-bash: echoo: command not found2 2 只接受错误的结果报错的结果输入了文件中不再输出屏幕上[rootlocalhost ~]# echoo Linux 2 1.txt[rootlocalhost ~]# cat 1.txt-bash: echoo: command not found