公主请看本文
1.快速6~7条指令文
Linux的基本操作,是通过指令来进行的
1.pwd–查看当前用户所处的路径位置–我在哪里
[root@hcss-ecs-28de ~]# pwd
/root
2.whoami–当前正在Linux中操作的用户是谁?—我是谁
[root@hcss-ecs-28de ~]# whoami
root
3.ls–显示当前目录下所对应的文件名称
[root@hcss-ecs-28de ~]# cd /home
[root@hcss-ecs-28de home]# ls
kaizi mamashengde mortal xcwgs
4.mkdir—在当前的目录下创建一个文件夹
[root@hcss-ecs-28de ~]# cd /home
[root@hcss-ecs-28de home]# ls
kaizi mamashengde mortal xcwgs
[root@hcss-ecs-28de home]# mkdir 114kaizi
[root@hcss-ecs-28de home]# ls
114kaizi kaizi mamashengde mortal xcwgs
5.cd—进入一个指定的目录
[root@hcss-ecs-28de home]# cd 114kaizi
[root@hcss-ecs-28de 114kaizi]# pwd
/home/114kaizi
6.touch 文件名----在当前目录创建一个空的文件
[root@hcss-ecs-28de home]# cd 114kaizi
[root@hcss-ecs-28de 114kaizi]# pwd
/home/114kaizi
[root@hcss-ecs-28de 114kaizi]# ls
[root@hcss-ecs-28de 114kaizi]# touch file.c
[root@hcss-ecs-28de 114kaizi]# ls
file.c
7.rm —删除指定的文件
[root@hcss-ecs-28de 114kaizi]# touch file.c
[root@hcss-ecs-28de 114kaizi]# ls
file.c
[root@hcss-ecs-28de 114kaizi]# rm file.c
rm: remove regular empty file 'file.c'? y
[root@hcss-ecs-28de 114kaizi]# ls
我们在这里回答y或者是n就能进行操作
2.ls
显示当前目录下的所有普通文件和子目录
蓝色的就是文件夹
白色的就是文件
2.1 ls -l 显示更加详细的信息
我们以后在给程序进行执行命令的时候我们可以单纯的进行命令的输入,也可以进行选项的输入操作
选项的话可以让同一个指令展现出不同的功能
文件≠文件名
当我们新建一个文件的时候,除了内容会被保存,那么这个计算机的其他属性是否会被保存呢?
这个是一定会保存的,即便这个文件里面是没有内容的
所以文件=文件内容+文件属性
文件内容和文件属性都是数据,那么在我们新建文件的时候都进行保存起来了
那么我们对文件的操作是分两类的,一种是对文件内容的操作,一种是对文件属性的操作
ls -l显示当前目录下,详细的文件属性信息
[root@hcss-ecs-28de /]# ls
bin dev lib media proc sbin tmp
boot etc lib64 mnt root srv usr
CloudrResetPwdAgent home lost+found opt run sys var
[root@hcss-ecs-28de /]# ls -l
total 64
lrwxrwxrwx 1 root root 7 Jun 22 2021 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Oct 1 14:24 boot
drwxr-xr-x 7 root root 4096 Jul 17 2023 CloudrResetPwdAgent
drwxr-xr-x 19 root root 2940 Oct 1 14:32 dev
drwxr-xr-x. 89 root root 4096 Oct 1 21:27 etc
drwxr-xr-x. 7 root root 4096 Oct 11 19:58 home
lrwxrwxrwx 1 root root 7 Jun 22 2021 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Jun 22 2021 lib64 -> usr/lib64
drwx------. 2 root root 16384 Jul 17 2023 lost+found
drwxr-xr-x. 2 root root 4096 Jun 22 2021 media
drwxr-xr-x. 2 root root 4096 Jun 22 2021 mnt
drwxr-xr-x. 2 root root 4096 Jun 22 2021 opt
dr-xr-xr-x 119 root root 0 Oct 1 14:32 proc
dr-xr-x---. 4 root root 4096 Oct 1 14:23 root
drwxr-xr-x 25 root root 700 Oct 1 14:32 run
lrwxrwxrwx 1 root root 8 Jun 22 2021 sbin -> usr/sbin
drwxr-xr-x. 2 root root 4096 Jun 22 2021 srv
dr-xr-xr-x 13 root root 0 Oct 1 14:32 sys
drwxrwxrwt. 3 root root 4096 Oct 11 20:53 tmp
drwxr-xr-x. 13 root root 4096 Jul 17 2023 usr
drwxr-xr-x. 20 root root 4096 Oct 1 14:23 var
2.2 ls -a
[root@hcss-ecs-28de /]# ls -a
. bin dev lib media proc sbin tmp
.. boot etc lib64 mnt root srv usr
.autorelabel CloudrResetPwdAgent home lost+found opt run sys var
如果想显示更加详细的信息
ls -l -a
[root@hcss-ecs-28de /]# ls -l -a
total 72
dr-xr-xr-x. 19 root root 4096 Oct 1 14:32 .
dr-xr-xr-x. 19 root root 4096 Oct 1 14:32 ..
-rw-r--r-- 1 root root 0 Jul 17 2023 .autorelabel
lrwxrwxrwx 1 root root 7 Jun 22 2021 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Oct 1 14:24 boot
drwxr-xr-x 7 root root 4096 Jul 17 2023 CloudrResetPwdAgent
drwxr-xr-x 19 root root 2940 Oct 1 14:32 dev
drwxr-xr-x. 89 root root 4096 Oct 1 21:27 etc
drwxr-xr-x. 7 root root 4096 Oct 11 19:58 home
lrwxrwxrwx 1 root root 7 Jun 22 2021 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Jun 22 2021 lib64 -> usr/lib64
drwx------. 2 root root 16384 Jul 17 2023 lost+found
drwxr-xr-x. 2 root root 4096 Jun 22 2021 media
drwxr-xr-x. 2 root root 4096 Jun 22 2021 mnt
drwxr-xr-x. 2 root root 4096 Jun 22 2021 opt
dr-xr-xr-x 119 root root 0 Oct 1 14:32 proc
dr-xr-x---. 4 root root 4096 Oct 1 14:23 root
drwxr-xr-x 25 root root 700 Oct 1 14:32 run
lrwxrwxrwx 1 root root 8 Jun 22 2021 sbin -> usr/sbin
drwxr-xr-x. 2 root root 4096 Jun 22 2021 srv
dr-xr-xr-x 13 root root 0 Oct 1 14:32 sys
drwxrwxrwt. 3 root root 4096 Oct 11 20:53 tmp
drwxr-xr-x. 13 root root 4096 Jul 17 2023 usr
drwxr-xr-x. 20 root root 4096 Oct 1 14:23 var
我们这里的ls -l -a就说明选项是可以组合传入的,也是可以分开传入的
为什么我们的ls操作和ls -l操作显示不出来这一个点和两个点呢?
这种就叫做隐藏文件
Linux中以点开头的文件或者是目录,这个就是隐藏的文件
一旦我们命令中的选项带有 -a的话,那么就会将隐藏文件显示出来
我们现在在114kaizi这个文件里面创建这个以点开头的隐藏文件
然后我们利用ls-l发现我们的文件中并没有这个文件,然后我们使用ls-a就可以发现我们创建的隐藏文件了
[root@hcss-ecs-28de /]# cd /home
[root@hcss-ecs-28de home]# ls
114kaizi kaizi mamashengde mortal xcwgs
[root@hcss-ecs-28de home]# cd 114kaizi
[root@hcss-ecs-28de 114kaizi]# pwd
/home/114kaizi
[root@hcss-ecs-28de 114kaizi]# touch .readme.txt
[root@hcss-ecs-28de 114kaizi]# ls
[root@hcss-ecs-28de 114kaizi]# ls -a
. .. .readme.txt
[root@hcss-ecs-28de 114kaizi]#
不管是创建文件还是创建目录的话,前面带一个.就成了隐藏文件了
但是我们是可以通过-a将隐藏文件显示出来的
2.3其他的ls选项命令
- -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
- -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
- -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
- -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
- -l 列出文件的详细信息。
- -n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
- -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
- -r 对目录反向排序。
- -t 以时间排序。
- -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
- -R 列出所有子目录下的文件。(递归)
- -1 一行只输出一个文件。
3.pwd
pwd这个命令就能看到我们当前所处的路径在哪里
“D:…代码提交\C语言\ccc4–报废”
路径分隔符号
a.两个路径分隔符之间的,一定是一个目录(文件夹)
b.末端文件可能也是一个目录或者是普通文件
4.cd
我们这里的以d开头的文件我们称之为目录
而以-开头的我们称之为普通文件
蓝色的文件都是以d开头的,那么这个就是一个目录,一个文件夹
那么我们是可以发现两个点和一个点的前面都是d,说明两个点和一个点是目录
.表示的是当前路径,…表示的是上级路径
[root@hcss-ecs-28de ~]# cd /home
[root@hcss-ecs-28de home]# ls
114kaizi kaizi mamashengde mortal xcwgs
[root@hcss-ecs-28de home]# cd kaizi
[root@hcss-ecs-28de kaizi]# ls
kaizi
[root@hcss-ecs-28de kaizi]# cd ..
[root@hcss-ecs-28de home]# pwd
/home
[root@hcss-ecs-28de home]#
我们先处于家目录,然后查看当前家目录的文件有哪些
然后我们进到kaizi这个文件夹里面
然后我们使用cd …这个命令我们就回到了家目录
我们的cd也能直接在后面输入完整的路径快速进入到指定的路径里面
[root@hcss-ecs-28de ~]# cd /home/kaizi
[root@hcss-ecs-28de kaizi]# pwd
/home/kaizi
[root@hcss-ecs-28de kaizi]#
4.1绝对路径
/表示的是根目录
Linux的所有文件的系统结构是一个—多叉树结构
目录里面套目录以及文件
一个叶子结点只有一个父亲节点
所以多叉树的话向上逆向推回去的路径是具有唯一性的
因为任何孩纸只有一个父亲
具有唯一性的,定位文件的方式,叫做绝对路径
我们是可以通过ls和绝对路径将制定的的路径下的所有文件显示出来的
所以ls不仅仅是显示当前路径下的文件,还能显示制定路径下的文件信息
4.2相对路径
现在我们是在这个114文件中的,然后上级目录是root
我们可以直接输入命令 ls /root/113
进到root用户里面的113这个文件夹
但是因为root是我们当前的上一级的文件,那么我们是不是能通过…返回到上级呢?
我们直接输入 ls …/113
那么我们就能查看到上一级路径(root)下的113文件了
这种定位方式我们称之为相对路径
一般的话我们在操作路径下回使用相对路径比较多,相对路径写的少
后续我们在系统级的配置文件可以采用绝对路径
4.3## .的作用
在Linux中任何一个目录都存在.和…
对于根目录的话.和…都是指向自己的,不能回退了
…是返回上级路径,但是.就是自己,那么有什么用呢?
假如我们当前路径存在一个可执行程序
但是我们直接调用的话是不行的
我们需要在前面加上当前路径才能进行调用
这里的话就是在前面加上./我们就能调用这个程序了
这里的./是为了找到a.out这个二进制的可执行文件加载并运行
ls -ls /root
这个就能查看到root这个目录,将这个目录当成一个文件进行查看的操作
4.4cd 的其他命令
cd - 直接回到上次的位置,直接切换至最近的一次路径
cd … : 返回上级目录
cd /home/litao/linux/ : 绝对路径
cd …/day02/ : 相对路径
cd ~:进入用户家目
cd -:返回最近访问目录
5.家目录的介绍
[root@hcss-ecs-28de ~]# whoami
root
[root@hcss-ecs-28de ~]# pwd
/root
[root@hcss-ecs-28de ~]#
这个是我们在root用户下的登录情况
下面的是我们的普通用户kaizi的登录页面
[kaizi@hcss-ecs-28de ~]$ whoami
kaizi
[kaizi@hcss-ecs-28de ~]$ pwd
/home/kaizi
[kaizi@hcss-ecs-28de ~]$
通过对比我们是可以发现不同的
我们在两个用户登录上来的页面叫做特定用户的家目录,就是一开始的界面
如果是root的话,它的家是别墅,一个人住的 ,路径直接是/root
但是普通用户的话是在home目录下的,下面可以发现home目录不仅仅只存在kaizi这一个用户的
还存在其他的用户的
/home是所有普通用户的家,都存在这个家
如果我们当前是在别的路径之下,我们现在想回到家目录的话,我们直接输入cd ~ 就能回到我们指定用户的家目录了
Windows也是有家目录的
什么是家目录呢?
家目录就是保存用户私有信息的目录
默认登录时就在家目录
6.touch命令
6.1 touch的功能介绍
[root@hcss-ecs-28de ~]# cd /home/114kaizi
[root@hcss-ecs-28de 114kaizi]# pwd
/home/114kaizi
[root@hcss-ecs-28de 114kaizi]# ls
[root@hcss-ecs-28de 114kaizi]# touch code.txt
[root@hcss-ecs-28de 114kaizi]# ls
code.txt
进行文件的创建
这里我们创建的文件是以-开头的,说明刚刚创建的是一个普通文件
普通文件:文本文件,二进制可执行程序,动静态库,视频,音频,图片
以d开头的就是目录(文件夹)
Linux系统中,文件类型和文件后缀无关
下面我们就可以看的出来的,通过mv将文本的名字进行改变,我们仍然是能对这个二进制文本进行编译的操作的
所以说Linux中,区分文件并不是仅仅看后缀的
我们然后又将文件code.c改成code.txt文件
然后我们使用cat对这个文件的内容进行查看,我们发现内容没变
然后我们利用gcc进行编译的操作,然后系统报错说识别不出来了
然后我们改成code.c又能继续进行编译操作了
那么这里就总结了
在Linux系统中,文件类型和文件后缀是无关的
不代表Linux中的软件对文件的后缀不做要求
因为系统≠gcc(软件)
我们在以后的文件创建的过程中尽量是将文件的后缀带上
我们是可以通过file来查看文件的类型了
我们通过touch是可以对文件的时间进行一个更新的操作的
6.2 touch的所有功能展示
- -a 或–time=atime或–time=access或–time=use只更改存取时间
- -c 或–no-create 不建立任何文档
- -d 使用指定的日期时间,而非现在的时间
- -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题
- -m 或–time=mtime或–time=modify 只更改变动时间
- -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同
- -t 使用指定的日期时间,而非现在的时间
7.mkdir示
7.1mkdir的使用方法
[root@hcss-ecs-28de home]# cd /home/114kaizi
[root@hcss-ecs-28de 114kaizi]# pwd
/home/114kaizi
[root@hcss-ecs-28de 114kaizi]# mkdir xuanxuan
[root@hcss-ecs-28de 114kaizi]# ls
code.txt xuanxuan
[root@hcss-ecs-28de 114kaizi]# ls -al
total 12
drwxr-xr-x 3 root root 4096 Oct 13 17:02 .
drwxr-xr-x. 7 root root 4096 Oct 11 19:58 ..
-rw-r--r-- 1 root root 0 Oct 13 16:37 code.txt
-rw-r--r-- 1 root root 0 Oct 11 21:27 .readme.txt
drwxr-xr-x 2 root root 4096 Oct 13 17:02 xuanxuan
[root@hcss-ecs-28de 114kaizi]#
我们直接通过mkdir进行目录的创建操作
[root@hcss-ecs-28de 114kaizi]# mkdir a/b/c/d
mkdir: cannot create directory ‘a/b/c/d’: No such file or directory
[root@hcss-ecs-28de 114kaizi]#
mkdir是不支持我们进行一串路径的创建操作的
7.2mkdir -p的作用
[root@hcss-ecs-28de 114kaizi]# mkdir -p a/b/c/d
[root@hcss-ecs-28de 114kaizi]# pwd
/home/114kaizi
[root@hcss-ecs-28de 114kaizi]# ls -a
. .. a code.txt .readme.txt xuanxuan
[root@hcss-ecs-28de 114kaizi]# ls -l
total 8
drwxr-xr-x 3 root root 4096 Oct 13 17:08 a
-rw-r--r-- 1 root root 0 Oct 13 16:37 code.txt
drwxr-xr-x 2 root root 4096 Oct 13 17:02 xuanxuan
[root@hcss-ecs-28de 114kaizi]# cd a
[root@hcss-ecs-28de a]# ls -l
total 4
drwxr-xr-x 3 root root 4096 Oct 13 17:08 b
[root@hcss-ecs-28de a]# cd b
[root@hcss-ecs-28de b]# ls -l
total 4
drwxr-xr-x 3 root root 4096 Oct 13 17:08 c
[root@hcss-ecs-28de b]# cd c
[root@hcss-ecs-28de c]# ls -l
total 4
drwxr-xr-x 2 root root 4096 Oct 13 17:08 d
[root@hcss-ecs-28de c]#
我们通过mkdir -p a/b/c/d可以实现一列目录的创建的操作了
[root@hcss-ecs-28de d]# pwd
/home/114kaizi/a/b/c/d
[root@hcss-ecs-28de d]# cd ../../../../
[root@hcss-ecs-28de 114kaizi]# pwd
/home/114kaizi
[root@hcss-ecs-28de 114kaizi]#
我们最后的时候是在d这个目录里面,然后我们怎么回去呢
我们直接利用之前学的…进行返回上级目录进行操作
cd …/…/…/…/
那么我们直接返回到了114kaizi这个目录里面了
7.3tree的使用
那么我们怎么知道我们的mkdir -p创建了一串目录呢?
我们可以通过tree将目录以树的形式展现出来
[root@hcss-ecs-28de ~]# cd /home/114kaizi
[root@hcss-ecs-28de 114kaizi]# tree a
a
└── b
└── c
└── d
3 directories, 0 files
[root@hcss-ecs-28de 114kaizi]#
可以很鲜明的将这个目录展现出来,但是这个是一个软件,是需要我们先进行下载操作的
sudo yum install tree
通过下面的代码进行安装的操作
sudo yum install tree
我们还能通过tree .的方法将目录的路线表示出来
[root@hcss-ecs-28de 114kaizi]# tree .
.
├── a
│ └── b
│ └── c
│ └── d
├── code.txt
└── xuanxuan
5 directories, 1 file
[root@hcss-ecs-28de 114kaizi]#
以当前目录将所有的目录里面的目录显示出来
tree+指定目录,以树形结构,展示文件和目录结构
命令行中,非法或者刷屏操作,CTRL+C进行终止的操作就行了
8.rmdir指令 && rm 指令
8.1rmdir的使用方法
[root@hcss-ecs-28de 114kaizi]# cd /home/114kaizi/a/b/c/d
[root@hcss-ecs-28de d]# cd ..
[root@hcss-ecs-28de c]# rmdir d
[root@hcss-ecs-28de c]# ls
[root@hcss-ecs-28de c]# cd d
-bash: cd: d: No such file or directory
[root@hcss-ecs-28de c]#
我们在这里通过rmdir将空目录d直接进行删除的操作
[root@hcss-ecs-28de 114kaizi]# rmdir a
rmdir: failed to remove 'a': Directory not empty
[root@hcss-ecs-28de 114kaizi]#
我们在这个114kaizi这个目录对a进行删除的操作,但是系统报错,说a这个目录不是空的额,我们删除不了
8.2rm的使用方法
现在我们非要将这个a非空目录进行删除操作
[root@hcss-ecs-28de 114kaizi]# rm a
rm: cannot remove 'a': Is a directory
[root@hcss-ecs-28de 114kaizi]#
但是我们发现还是无法删除
所以我们是需要进行选项的添加
因为Linux是递归式目录的,所以我们rm进行删除的时候是需要带上一个-的
[root@hcss-ecs-28de 114kaizi]# rm -r a
rm: descend into directory 'a'?
我们进行删除操作,然后系统会问我们是否需要进入这个a
我们直接回复y就行了
[root@hcss-ecs-28de 114kaizi]# rm -r a
rm: descend into directory 'a'? y
rm: descend into directory 'a/b'? y
rm: remove directory 'a/b/c'? y
rm: remove directory 'a/b'? y
rm: remove directory 'a'? y
[root@hcss-ecs-28de 114kaizi]# ls -l
total 4
-rw-r--r-- 1 root root 0 Oct 13 16:37 code.txt
drwxr-xr-x 2 root root 4096 Oct 13 17:02 xuanxuan
[root@hcss-ecs-28de 114kaizi]#
那么到这里我们的114kaizi这个文件里面就没有a/b/c这个目录串了
然后我们ls -l发现我们的这个目录串已经被删除了
8.3rm -rf 强制进行目录的删除操作
因为我们现在用的是root账户,系统不停地在问我们是不是要进行删除操作
现在呢,我们不想这个一直问我们,我们直接使用rm -rf 要删除的目录
我们直接强制进行删除操作
那么以后我们删除非空目录的话,我们直接使用rm -rf进行强制删除操作就行了
8.4删除普通文件的操作
这里我们直接利用rm就能将普通文件进行删除操作
但是这个时候系统就会问你是不是要删除了
那么我们为了避免这个系统的盘问,我们直接在中间添加 -f就行了
rm -f 直接将普通文件进行删除操作
所以删除普通文件比删除目录比较容易得
我们不能通过rm /rf/将根目录将根目录删除
我们就相当于将Linux中里面的文件都删除了
9总结
9.1 ls命令
ls
是Linux中最基本且最常用的文件列表命令。它用于显示当前目录下的文件和目录。常用的参数包括:
ls -l
:该选项提供了更详细的信息,包括文件的权限、硬链接数、文件所有者、文件大小及最后修改时间。对于管理文件系统的权限和查看文件大小等信息,这个选项非常有用。例如,运维人员经常需要通过ls -l
来检查文件的权限,确保文件不会被未经授权的用户访问或修改。ls -a
:该选项显示所有文件,包括以.
开头的隐藏文件。这个功能在排查问题时特别重要,因为有时文件系统中隐藏的配置文件(如.bashrc
或.gitignore
)可能是问题的根源。
其他的选项如
ls -R
(递归显示子目录)、
ls -h
(以人类可读的方式显示文件大小)等,都在特定的场景中提供了更丰富的文件展示信息。
9.2 pwd命令
pwd
(print working directory)命令用于显示当前所在的工作目录。这个命令在目录结构复杂时尤其重要,尤其是在执行文件操作时,运维人员常常需要确保自己处于正确的目录中。例如,部署代码时,进入正确的工作目录对于避免文件误删或错误修改至关重要。
9.3 cd命令
cd
命令用于在目录之间进行切换:
- 绝对路径与相对路径:通过
cd /home/user/docs
可以切换到绝对路径指定的目录;而通过cd ../
可以切换到上一级目录,这就是相对路径的应用。在大型项目中,目录结构往往错综复杂,理解并灵活运用绝对路径与相对路径,能够极大提高工作效率。 - 快捷操作:如通过
cd ..
返回上一级目录,或使用cd ~
直接进入用户主目录。这些快捷命令能帮助用户快速导航不同目录,而不需要逐步输入完整路径。 - 历史路径跳转:
cd -
能让用户快速返回上一次所在的目录,这在需要频繁切换不同目录时非常有用。
9.4 touch命令
touch
命令的主要功能是创建一个空文件或更新现有文件的时间戳。它的典型使用场景有两个:
- 创建新文件:当我们需要创建多个配置文件或日志文件时,
touch
命令便能派上用场。它的创建速度比文本编辑器打开文件后另存为的方式快得多,适合在脚本中批量创建文件。 - 更新时间戳:
touch
还能修改文件的最后访问时间和修改时间。比如在备份和同步文件时,时间戳可能会影响文件是否被识别为已更新,运维人员通过touch
命令可以手动更新时间戳来控制这些过程。
9.5 mkdir命令
mkdir
命令用于创建目录,使用简单,但在自动化操作中扮演着重要角色。其两个常见用法为:
- 创建单级目录:如
mkdir myfolder
,这在一般情况下已经够用。 - 创建多级目录:通过
mkdir -p parent/child/grandchild
,可以一次性创建多级嵌套目录。这个功能在自动化脚本中非常重要,避免了手动创建每一级目录的麻烦。
此外,结合
tree
命令,用户可以直观地查看目录的结构层次。
tree
能够将目录和文件以树状结构显示,非常有助于理解复杂的项目结构,尤其是在开发大型应用时。
9.6 rmdir与rm命令
rmdir
和
rm
是用于删除目录和文件的命令。两者在删除空目录和非空目录时有明显的区别:
- rmdir:只允许删除空目录。这是一个安全选项,因为它不会误删包含文件的目录。
- rm命令:这是Linux中最危险的命令之一,尤其是
rm -rf
。rm
命令默认用于删除文件,但通过-r
(递归)选项,它可以删除包含子目录的整个目录树。-f
选项则强制删除,不提示用户确认。这一命令强大但危险,尤其在误操作时可能造成无法挽回的数据损失。建议在使用rm -rf
时谨慎,常在脚本中配合条件判断使用,避免误删重要文件。
9.7操作系统管理与自动化
在Linux中,这些命令不仅适用于日常文件操作,还是系统管理和自动化操作的基础。例如,运维人员可以结合这些命令编写Shell脚本,实现自动化任务的执行,如定时清理日志文件、备份重要数据等。
此外,这些命令的组合使用能显著提升操作效率。比如,
ls | grep filename
可以快速查找文件,
cd && ls
能切换目录并查看文件内容。这些常见的组合命令加快了系统操作速度,并减少了不必要的复杂操作。
9.8小结
Linux的命令行工具为用户提供了极大的灵活性和控制能力。
ls
、
cd
、
pwd
等命令用于文件和目录的基本操作,
touch
、
mkdir
则帮助用户快速创建文件和目录,而
rm
、
rmdir
则是删除操作的主要工具。在使用这些命令时,理解它们的功能及其参数能够帮助用户更加高效地管理系统。尤其是在自动化运维和脚本编写中,善于利用这些命令及其组合,将极大提升系统管理的效率与安全性。
版权归原作者 Undoom 所有, 如有侵权,请联系我们删除。