pwd指令

语法:pwd

功能:显示当前所在位置(路径)。

代码语言:javascript

AI代码解释

root@hcss-ecs-4ce7:~# pwd
/root

root@hcss-ecs-4ce7:~/path1# pwd
/root/path1

ls指令

语法:ls  选项  文件或目录

功能:对于目录,显示这个目录中所有子目录和文件。对于文件,显示文件名和其他信息。若没有给出指定的文件或目录,则显示当前所在位置的文件或目录。若没有选项则只显示文件名,不显示其他信息。

常用选项

-l 列出详细信息。

代码语言:javascript

AI代码解释

root@hcss-ecs-4ce7:~# ls
my.txt  my.zip  new  new.txt  path1  path.tgz  snap  temp.txt

root@hcss-ecs-4ce7:~# ls -l
total 52
-rw-r--r-- 1 root root    21 May 18 14:29 my.txt
-rw-r--r-- 1 root root   183 May 18 14:38 my.zip
drwxr-xr-x 2 root root  4096 May 18 22:12 new
-rw-r--r-- 1 root root    14 May 18 11:35 new.txt
drwxr-xr-x 3 root root  4096 May 18 14:43 path1
-rw-r--r-- 1 root root   274 May 18 22:00 path.tgz
drwx------ 3 root root  4096 Aug  9  2024 snap
-rw-r--r-- 1 root root 22902 May 18 11:51 temp.txt

root@hcss-ecs-4ce7:~# ls -l path1
total 8
-rw-r--r-- 1 root root    0 May 14 20:35 myfile.txt
-rw-r--r-- 1 root root   21 May 18 14:29 my.txt
drwxr-xr-x 3 root root 4096 May 14 23:37 path2

补充:

Linux中目录即为windows中的文件夹 。

建立空文件也会占用磁盘空间,因为文件=文件属性+文件内容,即使内容为空,属性也不会为空。

Linux不同于windows不依靠后缀名来区别文件和目录,而是靠文件属性中第一个字母区别

Linux中的路径分割符为:/,而windows中的为:\

cd指令

cd指令是关于Linux目录路径的指令。

不论是那个操作系统中,目录都是以一个多叉树的形式实现的。Linux中的根目录用 " / "表示。文件或空目录一定是叶子节点。

绝对路径:从 / 开始不依靠其他路径定位位置。

相对路径:通过当前所处路径,定位出位置。

绝对路径不会因为用户位置的改变而导致定位位置改变,通常用于特定服务中配置文件的操作,而相对路径由于其使用简洁方便,常用于命令行。

Linux中存在以 " . "开头的文件,我们称作隐藏文件,不论什么目录里面都会有 " . " 和 " .. "这两个隐藏文件

语法:cd  目录名

功能:改变当前目录到指定的目录下。

常用目录名

相对路径 绝对路径 " .. " " ~ " " - "

代码语言:javascript

AI代码解释

root@hcss-ecs-4ce7:~# pwd #查看当前所处目录
/root
root@hcss-ecs-4ce7:~# cd /root/path1 #绝对路径,进入到指定的目录下
root@hcss-ecs-4ce7:~/path1# pwd
/root/path1

root@hcss-ecs-4ce7:~# pwd
/root
root@hcss-ecs-4ce7:~# cd ./path1 #相对路径,‘.’表示当前目录
root@hcss-ecs-4ce7:~/path1# pwd
/root/path1

root@hcss-ecs-4ce7:~/path1# pwd
/root/path1
root@hcss-ecs-4ce7:~/path1# cd .. #".."表示上层目录,这里表达返回上一层目录
root@hcss-ecs-4ce7:~# pwd
/root

root@hcss-ecs-4ce7:~# pwd
/root
root@hcss-ecs-4ce7:~# cd - #表示进入最近的一次访问的目录
/root/path1
root@hcss-ecs-4ce7:~/path1# pwd
/root/path1

root@hcss-ecs-4ce7:~/path1# pwd
/root/path1
root@hcss-ecs-4ce7:~/path1# cd ~ #表示返回家目录,不写~也可以
root@hcss-ecs-4ce7:~# pwd
/root

补充:

cd ~ 返回家目录。对于root账号而言是返回 /root ,对于普通账号而言是返回 /home/xxx(自己的账号名)

touch指令

语法:touch 选项  文件名

功能:对于一个存在的文件,改变其日期时间。对于不存在的文件,新建这个文件。

常用选项:

-a: change only the a ccess time  -m: change only the modification time

代码语言:javascript

AI代码解释

root@hcss-ecs-4ce7:~# ls -l
total 52
-rw-r--r-- 1 root root    21 May 18 14:29 my.txt
-rw-r--r-- 1 root root   183 May 18 14:38 my.zip
drwxr-xr-x 2 root root  4096 May 18 22:12 new
-rw-r--r-- 1 root root    14 May 18 11:35 new.txt
drwxr-xr-x 3 root root  4096 May 18 14:43 path1
-rw-r--r-- 1 root root   274 May 18 22:00 path.tgz
drwx------ 3 root root  4096 Aug  9  2024 snap
-rw-r--r-- 1 root root 22902 May 18 11:51 temp.txt
root@hcss-ecs-4ce7:~# touch aaaaa.txt #创建文件
root@hcss-ecs-4ce7:~# ls -l
total 52
-rw-r--r-- 1 root root     0 May 19 16:59 aaaaa.txt
-rw-r--r-- 1 root root    21 May 18 14:29 my.txt
-rw-r--r-- 1 root root   183 May 18 14:38 my.zip
drwxr-xr-x 2 root root  4096 May 18 22:12 new
-rw-r--r-- 1 root root    14 May 18 11:35 new.txt
drwxr-xr-x 3 root root  4096 May 18 14:43 path1
-rw-r--r-- 1 root root   274 May 18 22:00 path.tgz
drwx------ 3 root root  4096 Aug  9  2024 snap
-rw-r--r-- 1 root root 22902 May 18 11:51 temp.txt

补充:stat命令,功能:查看文件的详细信息。用过stat我们就可以观察到touch修改时间的操作

代码语言:javascript

AI代码解释

root@hcss-ecs-4ce7:~# stat new.txt
  File: new.txt
  Size: 14        	Blocks: 8          IO Block: 4096   regular file
Device: fc01h/64513d	Inode: 151998      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2025-05-18 11:35:22.012539536 +0800
Modify: 2025-05-18 11:35:19.900507212 +0800
Change: 2025-05-18 11:35:19.900507212 +0800
 Birth: 2025-05-15 10:42:29.595967837 +0800

 修改时间:

代码语言:javascript

AI代码解释

root@hcss-ecs-4ce7:~# stat new.txt
  File: new.txt
  Size: 14        	Blocks: 8          IO Block: 4096   regular file
Device: fc01h/64513d	Inode: 151998      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2025-05-18 11:35:22.012539536 +0800
Modify: 2025-05-18 11:35:19.900507212 +0800
Change: 2025-05-18 11:35:19.900507212 +0800
 Birth: 2025-05-15 10:42:29.595967837 +0800

//修改access时间
root@hcss-ecs-4ce7:~# touch touch -a new.txt
root@hcss-ecs-4ce7:~# stat new.txt
  File: new.txt
  Size: 14        	Blocks: 8          IO Block: 4096   regular file
Device: fc01h/64513d	Inode: 151998      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2025-05-19 17:07:15.106092725 +0800
Modify: 2025-05-18 11:35:19.900507212 +0800
Change: 2025-05-19 17:07:15.106092725 +0800   //我们发现这个也发生了修改,这里牵扯其他知识,后面再详细介绍
 Birth: 2025-05-15 10:42:29.595967837 +0800

//修改modify时间
root@hcss-ecs-4ce7:~# touch -m new.txt
root@hcss-ecs-4ce7:~# stat new.txt
  File: new.txt
  Size: 14        	Blocks: 8          IO Block: 4096   regular file
Device: fc01h/64513d	Inode: 151998      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2025-05-19 17:07:15.106092725 +0800
Modify: 2025-05-19 17:08:59.171702276 +0800
Change: 2025-05-19 17:08:59.171702276 +0800
 Birth: 2025-05-15 10:42:29.595967837 +0800

mkdir指令

语法:mkdir 选项  目录名或路径

功能:在当前位置下创建目录

常用选项:

-p (指定路径创建目录,当目录中有不存在的目录时,直接创建)

代码语言:javascript

AI代码解释

root@hcss-ecs-4ce7:~# mkdir new  #在当前位置下创建一个目录
root@hcss-ecs-4ce7:~# ls -l
total 40
-rw-r--r-- 1 root root    21 May 19 17:00 my.txt
drwxr-xr-x 2 root root  4096 May 19 17:22 new
drwxr-xr-x 3 root root  4096 May 18 14:43 path1
drwx------ 3 root root  4096 Aug  9  2024 snap
-rw-r--r-- 1 root root 22902 May 18 11:51 temp.txt


//指定路径,创建多个目录
root@hcss-ecs-4ce7:~# mkdir -p path/path1/path2/path3
root@hcss-ecs-4ce7:~# ls -l
total 40
-rw-r--r-- 1 root root    21 May 19 17:00 my.txt
drwxr-xr-x 3 root root  4096 May 19 17:24 path
drwxr-xr-x 3 root root  4096 May 18 14:43 path1
drwx------ 3 root root  4096 Aug  9  2024 snap
-rw-r--r-- 1 root root 22902 May 18 11:51 temp.txt
root@hcss-ecs-4ce7:~# tree path  //通过tree指令我们可以看到形象的路径
path
└── path1
    └── path2
        └── path3

3 directories, 0 files

补充:tree指令,可以形象的将一个目录里的内容展示出来。若没有安装可更加系统提示安装。

 rmdir&rm指令

语法:rmdir 选项  目录名或路径

功能:删除空目录

选项:

-p (当删除子目录时,如果父目录也变成了空目录,则一并删除)

代码语言:javascript

AI代码解释

root@hcss-ecs-4ce7:~# ls -l
total 40
-rw-r--r-- 1 root root    21 May 19 17:00 my.txt
drwxr-xr-x 3 root root  4096 May 19 17:24 path
drwxr-xr-x 3 root root  4096 May 18 14:43 path1
drwx------ 3 root root  4096 Aug  9  2024 snap
-rw-r--r-- 1 root root 22902 May 18 11:51 temp.txt

//当删除子目录时,如果父目录也变成了空目录,则一并删除
root@hcss-ecs-4ce7:~# rmdir -p path/path1/path2/path3
root@hcss-ecs-4ce7:~# ls -l
total 36
-rw-r--r-- 1 root root    21 May 19 17:00 my.txt
drwxr-xr-x 3 root root  4096 May 18 14:43 path1
drwx------ 3 root root  4096 Aug  9  2024 snap
-rw-r--r-- 1 root root 22902 May 18 11:51 temp.txt

rmdir的弊端在于只能删除空目录,当目录中有内容则无法删除,但rm指令可以

语法:rm 选项  目录名或路径

功能:删除目录或文件

选项:-f  即使是只读文件,也直接删除            -r  删除目录及其包含的所有文件            -i  删除前逐一询问确认

限制:只针对root账号、或普通账号自己创建的目录或文件

代码语言:javascript

AI代码解释

root@hcss-ecs-4ce7:~# ls -l
total 36
-rw-r--r-- 1 root root    21 May 19 17:00 my.txt
-rw-r--r-- 1 root root     0 May 19 17:41 new.txt
drwxr-xr-x 3 root root  4096 May 18 14:43 path1
drwx------ 3 root root  4096 Aug  9  2024 snap
-rw-r--r-- 1 root root 22902 May 18 11:51 temp.txt

//删除普通文件
root@hcss-ecs-4ce7:~# rm new.txt
root@hcss-ecs-4ce7:~# ls -l
total 36
-rw-r--r-- 1 root root    21 May 19 17:00 my.txt
drwxr-xr-x 3 root root  4096 May 18 14:43 path1
drwx------ 3 root root  4096 Aug  9  2024 snap
-rw-r--r-- 1 root root 22902 May 18 11:51 temp.txt


root@hcss-ecs-4ce7:~# touch new1.txt
root@hcss-ecs-4ce7:~# ls -l
total 36
-rw-r--r-- 1 root root    21 May 19 17:00 my.txt
-rw-r--r-- 1 root root     0 May 19 17:42 new1.txt
drwxr-xr-x 3 root root  4096 May 18 14:43 path1
drwx------ 3 root root  4096 Aug  9  2024 snap
-rw-r--r-- 1 root root 22902 May 18 11:51 temp.txt

//删除前询问
root@hcss-ecs-4ce7:~# rm -i new1.txt
rm: remove regular empty file 'new1.txt'? y
root@hcss-ecs-4ce7:~# ls -l
total 36
-rw-r--r-- 1 root root    21 May 19 17:00 my.txt
drwxr-xr-x 3 root root  4096 May 18 14:43 path1
drwx------ 3 root root  4096 Aug  9  2024 snap
-rw-r--r-- 1 root root 22902 May 18 11:51 temp.txt


root@hcss-ecs-4ce7:~# mkdir -p path/path1/path2/path3
root@hcss-ecs-4ce7:~# ls -l
total 40
-rw-r--r-- 1 root root    21 May 19 17:00 my.txt
drwxr-xr-x 3 root root  4096 May 19 17:44 path
drwxr-xr-x 3 root root  4096 May 18 14:43 path1
drwx------ 3 root root  4096 Aug  9  2024 snap
-rw-r--r-- 1 root root 22902 May 18 11:51 temp.txt

//删除目录及其所包含的所有文件
root@hcss-ecs-4ce7:~# rm -r path
root@hcss-ecs-4ce7:~# ls -l
total 36
-rw-r--r-- 1 root root    21 May 19 17:00 my.txt
drwxr-xr-x 3 root root  4096 May 18 14:43 path1
drwx------ 3 root root  4096 Aug  9  2024 snap
-rw-r--r-- 1 root root 22902 May 18 11:51 temp.txt


root@hcss-ecs-4ce7:~# mkdir -p path/path1/path2/path3
root@hcss-ecs-4ce7:~# ls -l
total 40
-rw-r--r-- 1 root root    21 May 19 17:00 my.txt
drwxr-xr-x 3 root root  4096 May 19 17:47 path
drwxr-xr-x 3 root root  4096 May 18 14:43 path1
drwx------ 3 root root  4096 Aug  9  2024 snap
-rw-r--r-- 1 root root 22902 May 18 11:51 temp.txt

//删除前询问确认
root@hcss-ecs-4ce7:~# rm -ir path
rm: descend into directory 'path'? y
rm: descend into directory 'path/path1'? y
rm: descend into directory 'path/path1/path2'? y
rm: remove directory 'path/path1/path2/path3'? y
rm: remove directory 'path/path1/path2'? y
rm: remove directory 'path/path1'? y
rm: remove directory 'path'? y
root@hcss-ecs-4ce7:~# ls -l
total 36
-rw-r--r-- 1 root root    21 May 19 17:00 my.txt
drwxr-xr-x 3 root root  4096 May 18 14:43 path1
drwx------ 3 root root  4096 Aug  9  2024 snap
-rw-r--r-- 1 root root 22902 May 18 11:51 temp.txt

man指令

语法:man 选项  指令

功能:当我们忘记一个指令怎么使用时,可以使用man来查询。

选项

通常为1-9

补充:man手册分为9章

        1是普通的命令         2是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调⽤这个函数,需要加什么 头文件)         3是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备⽂件         4略         5是指⽂件的格式,比如passwd,就会说明这个文件中各个字段的含义         6是给游戏留的,由各个游戏自己定义         7是附件还有⼀些变量,比如像environ这种全局变量在这里就有说明         8是系统管理用的命令,这些命令只能由root使用,如ifconfig         9略

选项中不给出具体数字,man就会从第一章开始找直到找到。反之如果给出具体数字,man就只会去对应的第几章去找。

代码语言:javascript

AI代码解释

root@hcss-ecs-4ce7:~# man printf # 查看printf指令(没错,printf也是⼀个指令)
root@hcss-ecs-4ce7:~# man fork # 查看系统调⽤,默认没有这个指令,man就⾃动去2号⼿册查找 
root@hcss-ecs-4ce7:~# man 2 frok # 查看系统调⽤ 
root@hcss-ecs-4ce7:~# man 3 printf # 查看C库函数 
root@hcss-ecs-4ce7:~# man 7 signal # 查看变量 
root@hcss-ecs-4ce7:~# man 7 environ
root@hcss-ecs-4ce7:~# man man # 查看man⼿册⾃⼰

echo指令

语法:echo  选项  内容

功能:打印内容或将内容放入文件中

代码语言:javascript

AI代码解释

#将echo后面的内容作为字符串,打印出来
root@hcss-ecs-4ce7:~# echo "你好世界"
你好世界
root@hcss-ecs-4ce7:~# echo test.cpp
test.cpp

#利用 > 进行重定向操作
root@hcss-ecs-4ce7:~# ls
my.txt  path1  snap  temp.txt
root@hcss-ecs-4ce7:~# echo "你好世界">new.txt
root@hcss-ecs-4ce7:~# ls
my.txt  new.txt  path1  snap  temp.txt
root@hcss-ecs-4ce7:~# cat new.txt
你好世界

# >>进行追加重定向
root@hcss-ecs-4ce7:~# echo "明天你好">>new.txt
root@hcss-ecs-4ce7:~# cat new.txt
你好世界
明天你好

# < 输入重定向,与cat new.txt效果上无异
root@hcss-ecs-4ce7:~# cat <new.txt
你好世界
明天你好

补充:重定向有两个特点:1.如果重定向的文件不存在,则创建文件再写入内容。2.如果文件存在则清空文件再写入内容(既覆盖)。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐