了解Linux的分区和目录的关系
了解Linux中常见命令的使用
了解重定向的使用
了解管道的使用
在Windows中,每个分区都要有盘符才能够正常使用,如果一个分区的盘符被删除了,
则无法使用这个分区
但是用于表示盘符的字母是有限的,如果最后一个字母Z也被占用完,那么多于的分区就
没有盘符可用了。
假设将D盘、E盘、F盘这几个分区的盘符全部去掉,那么如何使用这些分区呢?可以在C
盘下面创建一些文件夹,然后把这些分区装在这些文件夹中
例如,在C盘中创建一个文件夹“disk”,把第二个分区(原D盘)装在c:\disk文件夹
中,那么以后访问c:\disk其实访问的就是第二个分区了。以此类推,我们创建c:\edisk、
c:\fdisk,然后把第三个分区装在c:\edisk文件夹中,把第四个分区装在c:\fdisk文件夹中。
把某个分区装在某个文件夹中,我们把这个过程叫做挂载,这个装了其它分区的文件夹,
叫做挂载点。
当打开“我的电脑”之后,我们只能看到C盘,看不到其他的分区。但是访问C盘下面对
应的目录,就能访问到对应的分区
创建目录(文件夹)是命令mkdir,语法如下
[root@localhost ~]# mkdir dir
或
[root@localhost ~]# mkdir -p dir1/dir2
这里的意思是在dir1下创建dir2,-p的意思是,如果dir1不存在,则会把dir1也创建出
来。
使用blab用户登录,在当前目录下创建目录xx
[root@localhost ~]# mkdir xx
在当前目录下的目录11创建目录22
[root@localhost ~]# mkdir 11/22
删除目录的命令是rmdir
如果目录11中还有目录22,执行命令删除目录11.
rmdir 11
因为目录11中还有目录22,所以rmdir无法直接删除目录11,需要把目录11中的内容全部
清除才能删除目录11。这里可以利用后面讲的rm -rf命令来删除。
cd 的主要作用是切换到其他目录,用法如下
cd 路径
这里的路径可以是相对路径也可以是绝对路径,如果没有明确地指定路径,则是当前路
径,如
cd test
test就表示当前路径下的一个目录,这种写法等同于
查看这个目录的结构
[root@localhost ~]# tree aa
进入目录11,命令如下
cd aa/bb/cc/dd/ee/ff/11
pwd
这里cd后面直接跟aa,表示当前目录下的aa。
如果想切换到目录22,使用绝对路径的写法如下
cd /home/blab/aa/bb/cc/dd/ee/ff/22/
pwd
想需要拷贝文件或目录,可以使用cp命令,cp的语法如下
如果/path2/yy是一个目录,意思把/path1/xx拷贝到/path2/yy中。如果/path2/yy不存
在或是一个文件,意思是把/path1/xx拷贝到/path2中,命名为yy。
下面的操作都是使用root用户做的,把/ect/hosts拷贝到/opt目录中。
这里/opt是一个目录,那么这句话的意思是把/etc/hosts拷贝到/opt目录中。查看一
下/opt中的内容
ls /opt/
把/etc/hosts拷贝到/opt中,命名为xx。
cp /etc/hosts /opt/xx
ls /opt/
原来并不存在/opt/xx,上面的操作是把/etc/hosts拷贝到/opt中,命名为xx
mkdir /opt/11
cp /etc/hosts /opt/11
先创建目录/opt/11,因为/opt/11是一个目录,所以这里把/etc/hosts拷贝到/opt/11
中,而不是把/etc/hosts拷贝到/opt之后命名为11
因为/opt/xx不是一个目录,所以这句话的意思是把/etc/hosts拷贝到/opt目录并命名为
xx。因为/opt/xx已经存在了,所以会问是否覆盖,如果此时直接按【Enter】键,则是n的
意思,即不覆盖。如果要覆盖必须输入“y”,按【Enter】键。
拷贝一个文件,相当于新创建了一个文件。除文件内容相同外,文件的时间显示的也是创
建这个文件的时间。
ls -l /etc/hosts /opt/xx
拷贝一个文件时,如果想把文件的属性一起拷贝过去,就需要加上-p选项。
cp -p /etc/hosts /opt/xx
ls -l /etc/hosts /opt/xx
这样看起来,时间也都一致了。
下面用cp命令拷贝目录,把/etc拷贝到当前目录中。
此处没有成功,因为/etc是一个目录,cp需要加上 -r 选项才行,-r 表示递归的意思。
rm -rf etc/
在Windows中,可以通过某文件的图标或文件后缀,来判断这是一个什么类型的文件,
如果是可执行文件,还是一个文本文件。但在Linux中,很多文件类型往往和后缀没有关
系,所以我们要判断一个文件是什么类型的文件可以用file来判断。file的用法如下
判断/boot/initramfs-4.18.0-348.el8.x86_64.img的文件类型,命令如下。
wc用于统计文件的行数,单词数、字符数,先查看/etc/hosts中的内容
然后用wc统计/etc/hosts的信息
第一个数字2表示/etc/hosts有2行。第二个数字10表示/etc/hosts有10个单词,这里单词
指的是以空格、【TAB】、逗号隔开的字符。第三个数字158表示/etc/hosts一共有158个字
符,这里统计字符数包括了空格及行末我们看不到的换行符。
以上几个信息也可以单独查看,wc -l可以查看文件的行数
wc -c 可以查看文件的字符数。
wc -c /etc/hosts
执行一条命令时,命令的结果总是输出到屏幕上的。如果希望把这个命令的结果保存在某
个文件中而不是输出到屏幕上,就要用到重定向了。重定向就是重新定位输出的方向,能用
到的符号包括 “>” “>>” “2>” "2>>” “&>” “&>>”,这里不要把“”当作大
于号,当作“箭头”就很容易理解了。
这里没有重定向,uname的结果直接输出到屏幕上,而是写入当前目录中aa.txt也是不存
在的。
可以看到,aa.txt中的内容就是uname命令的结果。下面在输入一个命令重定向到aa.txt
中,
cal 的结果并没有任何输出,因为重定向写入aa.txt中了。
如果/path/file不存在,则会自动创建出来;如果存在,命令的结果会在 /path/file原有内
容的后面接着写,并不清空此文件的内容,这种写法叫作追加写。
下面我们执行两次uname,通过“>>”写进aa.txt 中
管道可以把多个命令连接起来,管道前面命令的结果作为管道后面命令的参数。
例如,要查看/etc/passwd的第6行到第10行的内容,命令如下
先用head获取l/etc/passwd的前10行,然后通过管道传递给tail,获取/etc/passwd前10
行的后5行,也就是从第6行到第10行的内容。
又如,要获取网卡ens160含有IP的那行内容
今天的教学到此就结束了,我们明天在见!