1.知识点回顾
pwd #查看当前路径
cd #切换目录
cd
cd .
cd ..
cd -
cd ~
cd /root
ls #查看文件 目录
ls -l
ls -a
touch #创建普通文件
mkdir #创建目录
mkdir -p #递归创建
tree #树形结构显示目录
tree -L 1n
cat #查看文件内容
cat -n #显示行号
clear #清屏 shell编程使用
##快捷键
ctrl+c
ctrl+l
ctrl+a
ctrl+e
ctrl+u
ctrl+y
2.Linux目录的作用
linux 根目录下的一级目录的作用:
bin #二进制系统命令所在
boot #系统内核所在位置 引导程序所在位置
dev #硬件设备所在位置
etc #配置文件所在目录 默认的系统配置文件在/etc目录
home #普通用户的家目录 贫民窟
mnt #临时挂载点 硬件的入口文件。不用随时umount
opt #第三方程序默认安装的位置
proc #内存的映射文件
root #root用户家目录
sbin #超级管理员命令所在目录
tmp #临时目录,类似Windows的回收站
usr #用户程序文件所在目录
var #日志文件所在目录
挂载流程
挂载点可以是任意空目录
1.虚拟机中必须插入ISO镜像文件,设置如下图示
2.给cdrom创建一个入口,或者系统中已经存在的任意空的目录都可以
3.使用系统中的/mnt作为入口
[root@oldboyedu ~]# mount /dev/cdrom /mnt/ #给/dev/cdrom 创建一个入口为/mnt
mount: /dev/sr0 is write-protected, mounting read-only ##提示挂载只读
##挂载:/dev/sr0 写保护
注意:sr0就是cdrom的名字
4.进入cdrom 查看镜像中的内容
[root@oldboyedu ~]# cd /mnt/
[root@oldboyedu mnt]# ll /mnt/
total 696
-rw-r--r--. 3 root root 14 Oct 30 2020 CentOS_BuildTag
drwxr-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 GPL
drwxr-xr-x. 3 root root 2048 Oct 27 2020 images
drwxr-xr-x. 2 root root 2048 Nov 3 2020 isolinux
drwxr-xr-x. 2 root root 2048 Oct 27 2020 LiveOS
drwxr-xr-x. 2 root root 673792 Nov 4 2020 Packages
drwxr-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.TBL
[root@oldboyedu mnt]#
5.查看磁盘的信息
[root@oldboyedu mnt]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.6M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda3 18G 2.0G 16G 11% /
/dev/sda1 197M 110M 88M 56% /boot
tmpfs 199M 0 199M 0% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /mnt
[root@oldboyedu mnt]#
6.卸载挂载点
[root@oldboyedu /]# umount /mnt/
[root@oldboyedu /]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.6M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda3 18G 2.0G 16G 11% /
/dev/sda1 197M 110M 88M 56% /boot
tmpfs 199M 0 199M 0% /run/user/0
[root@oldboyedu /]#
3.Linux系统命令
cp #复制文件
语法结构:
cp 源文件 目标文件 #复制
cp 源文件 新文件的名称 #改名
cp file1 file2 /目录 #复制
cp 目录 目标目录
cp -r 复制目录,递归拷贝目录及其子目录中的所有文件
\cp -r 目录 目标目录 和cp -rf #强制进行复制目录不提示
案例1:复制oldboy.txt 到/opt目录下名称不变
[root@oldboyedu ~]# cp oldboy.txt /opt/
[root@oldboyedu ~]# ll /opt/
total 0
-rw-r--r--. 1 root root 0 Mar 5 17:50 oldboy.txt
[root@oldboyedu ~]#
案例2:复制当前的oldboy.txt 到当前的位置名字为oldboy.txt.bak
[root@oldboyedu ~]# cp oldboy.txt oldboy.txt.bak
[root@oldboyedu ~]# ll
total 8
-rw-------. 1 root root 1522 Feb 29 19:41 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 Mar 5 17:50 oldboy.txt
-rw-r--r--. 1 root root 0 Mar 5 17:51 oldboy.txt.bak
-rw-r--r--. 1 root root 938 Mar 5 15:39 passwd
drwxr-xr-x. 5 root root 40 Mar 5 14:59 test
[root@oldboyedu ~]#
案例3:复制当前的oldboy.txt 和test.txt 到/tmp目录下
[root@oldboyedu ~]# cp oldboy.txt test.txt /tmp
[root@oldboyedu ~]# ll /tmp/
total 4
-rwx------. 1 root root 836 Feb 29 19:41 ks-script-yJLtsF
-rw-r--r--. 1 root root 0 Mar 5 17:52 oldboy.txt
-rw-r--r--. 1 root root 0 Mar 5 17:52 test.txt
drwx------. 2 root root 6 Mar 1 10:34 vmware-root_819-4290101131
drwx------. 2 root root 6 Feb 29 19:47 vmware-root_832-2730693535
-rw-------. 1 root root 0 Feb 29 19:37 yum.log
[root@oldboyedu ~]#
案例4:拷贝oldboy目录到/tmp目录下
[root@oldboyedu ~]# cp -r oldboy /tmp/
[root@oldboyedu ~]# ll /tmp/
total 4
-rwx------. 1 root root 836 Feb 29 19:41 ks-script-yJLtsF
drwxr-xr-x. 2 root root 6 Mar 5 17:53 oldboy
-rw-r--r--. 1 root root 0 Mar 5 17:52 oldboy.txt
-rw-r--r--. 1 root root 0 Mar 5 17:52 test.txt
drwx------. 2 root root 6 Mar 1 10:34 vmware-root_819-4290101131
drwx------. 2 root root 6 Feb 29 19:47 vmware-root_832-2730693535
-rw-------. 1 root root 0 Feb 29 19:37 yum.log
[root@oldboyedu ~]#
案例5:强制覆盖目录及目录下的文件,不需要手动输入y (强制覆盖不提示)
[root@oldboyedu ~]# cp -rf oldboy /tmp/
[root@oldboyedu ~]#
[root@oldboyedu ~]# ll /tmp/
total 4
-rwx------. 1 root root 836 Feb 29 19:41 ks-script-yJLtsF
drwxr-xr-x. 2 root root 6 Mar 5 17:53 oldboy
-rw-r--r--. 1 root root 0 Mar 5 17:52 oldboy.txt
-rw-r--r--. 1 root root 0 Mar 5 17:52 test.txt
drwx------. 2 root root 6 Mar 1 10:34 vmware-root_819-4290101131
drwx------. 2 root root 6 Feb 29 19:47 vmware-root_832-2730693535
-rw-------. 1 root root 0 Feb 29 19:37 yum.log
[root@oldboyedu ~]#
另外一种实现方式:
[root@oldboyedu ~]# tree oldboy
oldboy
├── 1.txt
├── 2.txt
└── 3.txt
0 directories, 3 files
[root@oldboyedu ~]#
[root@oldboyedu ~]#
[root@oldboyedu ~]# cp -r oldboy /tmp/
[root@oldboyedu ~]# cp -r oldboy /tmp/
cp: overwrite ‘/tmp/oldboy/1.txt’? y
cp: overwrite ‘/tmp/oldboy/2.txt’? y
cp: overwrite ‘/tmp/oldboy/3.txt’? y
[root@oldboyedu ~]#
[root@oldboyedu ~]#
[root@oldboyedu ~]# \cp -r oldboy /tmp/
[root@oldboyedu ~]# ll /tmp/
total 4
-rwx------. 1 root root 836 Feb 29 19:41 ks-script-yJLtsF
drwxr-xr-x. 2 root root 45 Mar 5 17:56 oldboy
-rw-r--r--. 1 root root 0 Mar 5 17:52 oldboy.txt
-rw-r--r--. 1 root root 0 Mar 5 17:52 test.txt
drwx------. 2 root root 6 Mar 1 10:34 vmware-root_819-4290101131
drwx------. 2 root root 6 Feb 29 19:47 vmware-root_832-2730693535
-rw-------. 1 root root 0 Feb 29 19:37 yum.log
[root@oldboyedu ~]#
##使用\cp 强制覆盖不提示
[root@oldboyedu ~]# \cp -r oldboy /tmp/
### \ 取消别名 还原本意
mv命令
mv 移动 move
语法结构:
mv 源文件 目标位置 #移动
mv file1 file2 目标目录 #移动
mv 源文件名称 新文件名称 #改名
案例1.移动.bak文件到/tmp
[root@oldboyedu ~]# mv oldboy.txt.bak /tmp
[root@oldboyedu ~]# ll /tmp/
total 4
-rwx------. 1 root root 836 Feb 29 19:41 ks-script-yJLtsF
drwxr-xr-x. 2 root root 45 Mar 5 17:56 oldboy
-rw-r--r--. 1 root root 0 Mar 5 17:52 oldboy.txt
-rw-r--r--. 1 root root 0 Mar 5 17:51 oldboy.txt.bak
-rw-r--r--. 1 root root 0 Mar 5 17:52 test.txt
drwx------. 2 root root 6 Mar 1 10:34 vmware-root_819-4290101131
drwx------. 2 root root 6 Feb 29 19:47 vmware-root_832-2730693535
-rw-------. 1 root root 0 Feb 29 19:37 yum.log
[root@oldboyedu ~]#
案例2.移动多个文件到/tmp
[root@oldboyedu ~]# mv oldboy.txt test.txt /tmp/
[root@oldboyedu ~]# ll /tmp/
total 0
-rw-r--r--. 1 root root 0 Mar 5 17:50 oldboy.txt
-rw-r--r--. 1 root root 0 Mar 5 19:09 test.txt
[root@oldboyedu ~]#
案例3.强制覆盖不提示 #\mv oldboy.txt /tmp/
[root@oldboyedu ~]# mv oldboy.txt /tmp/
mv: overwrite ‘/tmp/oldboy.txt’? y
[root@oldboyedu ~]# touch oldboy.txt
[root@oldboyedu ~]# \mv oldboy.txt /tmp/
[root@oldboyedu ~]#
案例4.移动目录
[root@oldboyedu ~]# mv oldboy/ test/ /tmp/
[root@oldboyedu ~]#
案例5.移动/tmp/所有的文件到当前目录,使用. 和..
[root@oldboyedu ~]# mv /tmp/* .
[root@oldboyedu ~]# ll
total 4
-rw-------. 1 root root 1522 Feb 29 19:41 anaconda-ks.cfg
drwxr-xr-x. 2 root root 45 Mar 5 17:56 oldboy
-rw-r--r--. 1 root root 0 Mar 5 19:11 oldboy.txt
drwxr-xr-x. 5 root root 40 Mar 5 14:59 test
-rw-r--r--. 1 root root 0 Mar 5 19:09 test.txt
[root@oldboyedu ~]#
案例6.复制hosts文件到当前目录
[root@oldboyedu ~]# cp /etc/hosts .
[root@oldboyedu ~]# ll
total 8
-rw-------. 1 root root 1522 Feb 29 19:41 anaconda-ks.cfg
-rw-r--r--. 1 root root 158 Mar 5 19:13 hosts
drwxr-xr-x. 2 root root 45 Mar 5 17:56 oldboy
-rw-r--r--. 1 root root 0 Mar 5 19:11 oldboy.txt
drwxr-xr-x. 5 root root 40 Mar 5 14:59 test
-rw-r--r--. 1 root root 0 Mar 5 19:09 test.txt
[root@oldboyedu ~]#
案例7.拷贝/etc/passwd 到上一层目录
[root@oldboyedu ~]# cp /etc/passwd ../
rm命令
在企业中使用mv代替rm ,相当于先放回收站但是不清空
rm #文件或者目录 remove
语法结构:
rm 文件
rm file1 file2
rm 目录
rm -f 强制删除文件不提示
rm -rf 强制删除目录不提示
案例1.删除当前的bak文件
[root@oldboyedu ~]# rm -f hosts.bak
[root@oldboyedu ~]# ll
案例2.删除多个文件
[root@oldboyedu ~]# rm -f oldboy.txt test.txt
[root@oldboyedu ~]#
案例3.删除目录oldboy
[root@oldboyedu ~]# rm -rf oldboy/
案例4.强制删除不提示
[root@oldboyedu ~]# ll /opt/
total 0
-rw-r--r--. 1 root root 0 Mar 5 17:50 oldboy.txt
[root@oldboyedu ~]# rm -rf /opt/*
[root@oldboyedu ~]#
vim命令
vim #文件编辑器vi的高级版本
语法结构:
vim 文件名 #文件不存在则创建
vim 目录/文件名 #路径必须存在
vim编辑文件的流程:
第一步: vim 文件名称 进入到视图模式 只能看
第二步: 按a或者i 进入到编辑模式 可以输入内容
第三步: esc 返回到视图模式
第四步: 输入:wq
vim快捷键
G: 快速到行尾
10G 快速到第10行
gg: 快速到行首
1g 快速到第1行
:set nu 显示行号
$: 快速到行尾,相当于End
数字0 快速到行首
/搜索内容 : 搜索文本内容,#按n查找下一个 按N查找上一个
:q! 强制退出不保存
剪切/删除:
dd 快速剪切光标所在行
3dd 快速剪切光标往下3行
d+End 快速删除光标所在到行尾
d+0 快速删除光标所在到行首
u 撤销操作
d+G 快速删除光标所在到文件末尾
dw 删除光标所在后边的字母,删除整个单词的话需要光标在单词首字母
D 删除光标所在行
x 光标往后字符删除
X 光标往前字符删除
粘贴:
p 粘贴所剪切内容。p粘贴到光标的下一行
3p 快速粘贴3次
P 粘贴到光标的上一行
复制:
yy 复制光标所在行
3yy 复制光标所在的下3行.按 p将内容粘贴站光标所在的下一行。
进入编辑模式:i o a
o #在光标所在的下一行
O(大写字母) #在光标所在的上一行
C(大写) #删除光标所在行并进入编辑模式
A #到行尾开始编辑
: 低行模式
:wq 保持并退出
:q! 强制退出不保存
:x 保存退出
:set nu 显示行号
:set nonu 去掉显示行号
vim中的替换
:s/把谁/替换成谁/ #只替换光标所在行的第一个单词
:s/把谁/替换成谁/g #只替换光标所在行的整行的单词
:%s/把谁/替换成谁/g #替换文中所有
:%s/root//g #删除所有的root单词
视图模式下:
ZZ 快速保存并退出
vim ctrl+v 按方向键 按x删除 #批量选择删除
vim shift+v 按方向键 #批量选行
echo命令
echo #输出字符串到屏幕上或者文件中 测试时候使用
语法格式:
echo 字符串 #输出到屏幕
echo 字符串 > 文件名 #输出到文件
案例1:echo 输出姓名到屏幕上
[root@oldboyedu ~]# echo 姓名
姓名
[root@oldboyedu ~]# echo -e "aaa\nbbb"
aaa
bbb
[root@oldboyedu ~]#
[root@oldboyedu ~]# echo -e "aaa\t\tccc"
aaa ccc
[root@oldboyedu ~]#
案例2:序列的使用方法
[root@oldboyedu ~]# echo {1..5}
1 2 3 4 5
[root@oldboyedu ~]# echo {1..10..2}
1 3 5 7 9
[root@oldboyedu ~]#
案例3:字母序列
[root@oldboyedu ~]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@oldboyedu ~]# echo {a..z..2}
a c e g i k m o q s u w y
[root@oldboyedu ~]#
案例4:拼接
[root@oldboyedu ~]# echo Q{1..4}
Q1 Q2 Q3 Q4
[root@oldboyedu ~]#
案例5:批量创建文件
[root@oldboyedu ~]# touch {1..4}.txt
[root@oldboyedu ~]# ll
total 8
-rw-r--r--. 1 root root 0 Mar 5 19:47 1.txt
-rw-r--r--. 1 root root 0 Mar 5 19:47 2.txt
-rw-r--r--. 1 root root 0 Mar 5 19:47 3.txt
-rw-r--r--. 1 root root 0 Mar 5 19:47 4.txt
-rw-------. 1 root root 1522 Feb 29 19:41 anaconda-ks.cfg
-rw-r--r--. 1 root root 158 Mar 5 19:13 hosts
[root@oldboyedu ~]# mkdir A{1..3}
[root@oldboyedu ~]# ll
total 8
-rw-r--r--. 1 root root 0 Mar 5 19:47 1.txt
-rw-r--r--. 1 root root 0 Mar 5 19:47 2.txt
-rw-r--r--. 1 root root 0 Mar 5 19:47 3.txt
-rw-r--r--. 1 root root 0 Mar 5 19:47 4.txt
drwxr-xr-x. 2 root root 6 Mar 5 19:49 A1
drwxr-xr-x. 2 root root 6 Mar 5 19:49 A2
drwxr-xr-x. 2 root root 6 Mar 5 19:49 A3
-rw-------. 1 root root 1522 Feb 29 19:41 anaconda-ks.cfg
-rw-r--r--. 1 root root 158 Mar 5 19:13 hosts
drwxr-xr-x. 5 root root 40 Mar 5 14:59 test
案例6:序列和目录的拼接
[root@oldboyedu ~]# touch test/{1..3}.txt
[root@oldboyedu ~]# ll test/
total 0
-rw-r--r--. 1 root root 0 Mar 5 19:50 1.txt
-rw-r--r--. 1 root root 0 Mar 5 19:50 2.txt
-rw-r--r--. 1 root root 0 Mar 5 19:50 3.txt
drwxr-xr-x. 2 root root 6 Mar 5 14:59 bbs
drwxr-xr-x. 2 root root 6 Mar 5 14:59 blog
drwxr-xr-x. 2 root root 6 Mar 5 14:59 www
案例7:在test目录下同时创建oldboy1 oldboy2 oldboy3目录
[root@oldboyedu ~]# mkdir test/oldboy{1..3}
[root@oldboyedu ~]# ll test/
total 0
-rw-r--r--. 1 root root 0 Mar 5 19:50 1.txt
-rw-r--r--. 1 root root 0 Mar 5 19:50 2.txt
-rw-r--r--. 1 root root 0 Mar 5 19:50 3.txt
drwxr-xr-x. 2 root root 6 Mar 5 14:59 bbs
drwxr-xr-x. 2 root root 6 Mar 5 14:59 blog
drwxr-xr-x. 2 root root 6 Mar 5 19:52 oldboy1
drwxr-xr-x. 2 root root 6 Mar 5 19:52 oldboy2
drwxr-xr-x. 2 root root 6 Mar 5 19:52 oldboy3
案例8:在test目录下创建bbs blog www目录
[root@oldboyedu ~]# echo {bbs,blog,www }
{bbs,blog,www }
[root@oldboyedu ~]# echo test/{bbs,blog,www}
test/bbs test/blog test/www
[root@oldboyedu ~]#
[root@oldboyedu ~]# mkdir test/{bbs,blog,www}
[root@oldboyedu ~]# ll test/
total 0
-rw-r--r--. 1 root root 0 Mar 5 19:50 1.txt
-rw-r--r--. 1 root root 0 Mar 5 19:50 2.txt
-rw-r--r--. 1 root root 0 Mar 5 19:50 3.txt
drwxr-xr-x. 2 root root 6 Mar 5 19:54 bbs
drwxr-xr-x. 2 root root 6 Mar 5 19:54 blog
drwxr-xr-x. 2 root root 6 Mar 5 19:52 oldboy1
drwxr-xr-x. 2 root root 6 Mar 5 19:52 oldboy2
drwxr-xr-x. 2 root root 6 Mar 5 19:52 oldboy3
drwxr-xr-x. 2 root root 6 Mar 5 19:54 www
案例9:echo 将结果重定向到文件中
[root@oldboyedu ~]# echo hahahah > 1.txt
[root@oldboyedu ~]# cat 1.txt
hahahah
[root@oldboyedu ~]# echo 呵呵呵 >> 1.txt
[root@oldboyedu ~]# cat 1.txt
hahahah
呵呵呵
[root@oldboyedu ~]#
(# > 先清空后写入 # >> 追加内容到文件末尾)
```sh
注:
**1> 和 1>> 直接收正确的结果(默认1不写 )**
**2> 和 2>> 只接收错误的结果**
log
drwxr-xr-x. 2 root root 6 Mar 5 19:52 oldboy1
drwxr-xr-x. 2 root root 6 Mar 5 19:52 oldboy2
drwxr-xr-x. 2 root root 6 Mar 5 19:52 oldboy3
drwxr-xr-x. 2 root root 6 Mar 5 19:54 www
案例9:echo 将结果重定向到文件中
[root@oldboyedu ~]# echo hahahah > 1.txt
[root@oldboyedu ~]# cat 1.txt
hahahah
[root@oldboyedu ~]# echo 呵呵呵 >> 1.txt
[root@oldboyedu ~]# cat 1.txt
hahahah
呵呵呵
[root@oldboyedu ~]#
(# > 先清空后写入 # >> 追加内容到文件末尾)