Linux的基本指令(一)

1.ls指令

**功能:**对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及信息。

常用选项:

-a列出目录下的所有文件,包括以 . 开头的隐含文件。

-l列出文件的详细信息

举例:

root@iZbp1be068ksa92vuf0kbdZ:/# ls -l//       指令1
total 64
lrwxrwxrwx   1 root root     7 Apr 21  2022 bin -> usr/bin
drwxr-xr-x   4 root root  4096 Sep 26 16:56 boot
drwxr-xr-x  19 root root  3960 Nov  3 10:10 dev
drwxr-xr-x 107 root root  4096 Nov  4 06:34 etc
drwxr-xr-x   2 root root  4096 Nov  3 11:13 home
lrwxrwxrwx   1 root root     7 Apr 21  2022 lib -> usr/lib
lrwxrwxrwx   1 root root     9 Apr 21  2022 lib32 -> usr/lib32
lrwxrwxrwx   1 root root     9 Apr 21  2022 lib64 -> usr/lib64
lrwxrwxrwx   1 root root    10 Apr 21  2022 libx32 -> usr/libx32
drwx------   2 root root 16384 Sep 26 16:22 lost+found
drwxr-xr-x   2 root root  4096 Apr 21  2022 media
drwxr-xr-x   2 root root  4096 Apr 21  2022 mnt
drwxr-xr-x   2 root root  4096 Apr 21  2022 opt
dr-xr-xr-x 175 root root     0 Nov  3 10:10 proc
drwx------  13 root root  4096 Nov  8 15:55 root
drwxr-xr-x  34 root root  1060 Nov  8 15:50 run
lrwxrwxrwx   1 root root     8 Apr 21  2022 sbin -> usr/sbin
drwxr-xr-x   6 root root  4096 Apr 21  2022 snap
drwxr-xr-x   2 root root  4096 Apr 21  2022 srv
dr-xr-xr-x  13 root root     0 Nov  3 10:10 sys
drwxrwxrwt  12 root root  4096 Nov  8 13:33 tmp
drwxr-xr-x  14 root root  4096 Apr 21  2022 usr
drwxr-xr-x  13 root root  4096 Apr 21  2022 var
root@iZbp1be068ksa92vuf0kbdZ:/# ls//            指令2
bin  boot  dev  etc  home  lib  lib32  lib64  libx32  lost+found  media  mnt  opt  proc  root  run  sbin  snap  srv  sys  tmp  usr  var
root@iZbp1be068ksa92vuf0kbdZ:/# ls -a//         指令3
.  ..  bin  boot  dev  etc  home  lib  lib32  lib64  libx32  lost+found  media  mnt  opt  proc  root  run  sbin  snap  srv  sys  tmp  usr  var

2.pwd命令

**功能:**显示用户当前所在的目录

root@iZbp1be068ksa92vuf0kbdZ:~# pwd
/root
root@iZbp1be068ksa92vuf0kbdZ:~# 

3.cd指令

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

举例:

(cd~可以快速回到家目录,cd - 直接返回最近一次所处的目录)

root@iZbp1be068ksa92vuf0kbdZ:~# ls
a  aaa  b  c  h.txt  mystudy  snap  test.c  y  yy
root@iZbp1be068ksa92vuf0kbdZ:~# pwd
/root
root@iZbp1be068ksa92vuf0kbdZ:~# cd a
root@iZbp1be068ksa92vuf0kbdZ:~/a# pwd
/root/a
root@iZbp1be068ksa92vuf0kbdZ:~/a# cd b
root@iZbp1be068ksa92vuf0kbdZ:~/a/b# pwd
/root/a/b
root@iZbp1be068ksa92vuf0kbdZ:~/a/b# 

4.touch指令

功能:touch命令参数可以更改文档或者目录的日期时间,包括存取的时间和更改时间

,或者新建一个不存在的文件。

举例:

root@iZbp1be068ksa92vuf0kbdZ:~/a/b# touch file1.txt
root@iZbp1be068ksa92vuf0kbdZ:~/a/b# pwd
/root/a/b
root@iZbp1be068ksa92vuf0kbdZ:~/a/b# ls
c  file1.txt
root@iZbp1be068ksa92vuf0kbdZ:~/a/b# stat file1.txt
  File: file1.txt
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fc03h/64515d	Inode: 792179      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2024-11-08 16:29:21.644112340 +0800
Modify: 2024-11-08 16:29:21.644112340 +0800
Change: 2024-11-08 16:29:21.644112340 +0800
 Birth: 2024-11-08 16:29:21.644112340 +0800
root@iZbp1be068ksa92vuf0kbdZ:~/a/b# 

5.mkdir指令

**功能:**在当前目录下创建一个名为"dirname"的目录

举例:

tree命令是一个递归以树状结构显示指定目录的命令,如果没有安装需要输入 apt install -y tree

root@iZbp1be068ksa92vuf0kbdZ:~/a/b# mkdir ccc
root@iZbp1be068ksa92vuf0kbdZ:~/a/b# pwd
/root/a/b
root@iZbp1be068ksa92vuf0kbdZ:~/a/b# ls
c  ccc  file1.txt
root@iZbp1be068ksa92vuf0kbdZ:~/a/b# mkdir cc
root@iZbp1be068ksa92vuf0kbdZ:~/a/b# ls
c  cc  ccc  file1.txt
root@iZbp1be068ksa92vuf0kbdZ:~/a/b# mkdir -p path1/path2/path/3 //创建多个目录,创建指定路径
root@iZbp1be068ksa92vuf0kbdZ:~/a/b# cd path1
root@iZbp1be068ksa92vuf0kbdZ:~/a/b/path1# pwd
/root/a/b/path1
root@iZbp1be068ksa92vuf0kbdZ:~/a/b/path1# tree ./
./
└── path2
    └── path
        └── 3

3 directories, 0 files
root@iZbp1be068ksa92vuf0kbdZ:~/a/b/path1# 

6.rmdir指令&&rm指令

rmdir是一个与mkdir相对应的指令,mkdir是建立目录,rmdir是删除命令

**功能:**删除目录

如果路径中有不为空是删除不了的

root@iZbp1be068ksa92vuf0kbdZ:~# mkdir wo
root@iZbp1be068ksa92vuf0kbdZ:~# pwd
/root
root@iZbp1be068ksa92vuf0kbdZ:~# ll
total 84
drwx------ 14 root root 4096 Nov  8 16:46 ./
drwxr-xr-x 19 root root 4096 Nov  3 10:10 ../
drwxr-xr-x  3 root root 4096 Nov  8 11:55 a/
drwxr-xr-x  4 root root 4096 Nov  8 15:52 aaa/
drwxr-xr-x  2 root root 4096 Nov  8 15:51 b/
-rw-------  1 root root 1158 Nov  8 14:11 .bash_history
-rw-r--r--  1 root root 3106 Oct 15  2021 .bashrc
drwxr-xr-x  2 root root 4096 Nov  8 15:51 c/
drwx------  2 root root 4096 Sep 26 16:43 .cache/
-rw-r--r--  1 root root    0 Nov  8 11:43 h.txt
drwxr-xr-x  3 root root 4096 Nov  8 15:53 .local/
drwxr-xr-x  3 root root 4096 Nov  8 11:06 mystudy/
drwxr-xr-x  2 root root 4096 Sep 26 16:56 .pip/
-rw-r--r--  1 root root  161 Jul  9  2019 .profile
-rw-r--r--  1 root root   72 Sep 26 16:56 .pydistutils.cfg
drwxr-xr-x  2 root root 4096 Sep 26 16:56 .rpmdb/
drwx------  3 root root 4096 Sep 26 16:43 snap/
drwx------  2 root root 4096 Sep 26 16:42 .ssh/
-rw-r--r--  1 root root    0 Nov  8 09:17 test.c
drwxr-xr-x  2 root root 4096 Nov  8 16:46 wo/
-rw-------  1 root root  207 Nov  8 15:50 .Xauthority
-rw-r--r--  1 root root    8 Nov  8 15:55 y
-rw-r--r--  1 root root    8 Nov  8 15:55 yy
root@iZbp1be068ksa92vuf0kbdZ:~# rmdir wo
root@iZbp1be068ksa92vuf0kbdZ:~# ll
total 80
drwx------ 13 root root 4096 Nov  8 16:46 ./
drwxr-xr-x 19 root root 4096 Nov  3 10:10 ../
drwxr-xr-x  3 root root 4096 Nov  8 11:55 a/
drwxr-xr-x  4 root root 4096 Nov  8 15:52 aaa/
drwxr-xr-x  2 root root 4096 Nov  8 15:51 b/
-rw-------  1 root root 1158 Nov  8 14:11 .bash_history
-rw-r--r--  1 root root 3106 Oct 15  2021 .bashrc
drwxr-xr-x  2 root root 4096 Nov  8 15:51 c/
drwx------  2 root root 4096 Sep 26 16:43 .cache/
-rw-r--r--  1 root root    0 Nov  8 11:43 h.txt
drwxr-xr-x  3 root root 4096 Nov  8 15:53 .local/
drwxr-xr-x  3 root root 4096 Nov  8 11:06 mystudy/
drwxr-xr-x  2 root root 4096 Sep 26 16:56 .pip/
-rw-r--r--  1 root root  161 Jul  9  2019 .profile
-rw-r--r--  1 root root   72 Sep 26 16:56 .pydistutils.cfg
drwxr-xr-x  2 root root 4096 Sep 26 16:56 .rpmdb/
drwx------  3 root root 4096 Sep 26 16:43 snap/
drwx------  2 root root 4096 Sep 26 16:42 .ssh/
-rw-r--r--  1 root root    0 Nov  8 09:17 test.c
-rw-------  1 root root  207 Nov  8 15:50 .Xauthority
-rw-r--r--  1 root root    8 Nov  8 15:55 y
-rw-r--r--  1 root root    8 Nov  8 15:55 yy
root@iZbp1be068ksa92vuf0kbdZ:~# 


//删除多个路径
root@iZbp1be068ksa92vuf0kbdZ:~# mkdir -p q1/q2/q3/q4
root@iZbp1be068ksa92vuf0kbdZ:~# tree q1
q1
└── q2
    └── q3
        └── q4

3 directories, 0 files
root@iZbp1be068ksa92vuf0kbdZ:~# rmdir -p q1/q2/q3/q4
root@iZbp1be068ksa92vuf0kbdZ:~# ll
total 80
drwx------ 13 root root 4096 Nov  8 16:47 ./
drwxr-xr-x 19 root root 4096 Nov  3 10:10 ../
drwxr-xr-x  3 root root 4096 Nov  8 11:55 a/
drwxr-xr-x  4 root root 4096 Nov  8 15:52 aaa/
drwxr-xr-x  2 root root 4096 Nov  8 15:51 b/
-rw-------  1 root root 1158 Nov  8 14:11 .bash_history
-rw-r--r--  1 root root 3106 Oct 15  2021 .bashrc
drwxr-xr-x  2 root root 4096 Nov  8 15:51 c/
drwx------  2 root root 4096 Sep 26 16:43 .cache/
-rw-r--r--  1 root root    0 Nov  8 11:43 h.txt
drwxr-xr-x  3 root root 4096 Nov  8 15:53 .local/
drwxr-xr-x  3 root root 4096 Nov  8 11:06 mystudy/
drwxr-xr-x  2 root root 4096 Sep 26 16:56 .pip/
-rw-r--r--  1 root root  161 Jul  9  2019 .profile
-rw-r--r--  1 root root   72 Sep 26 16:56 .pydistutils.cfg
drwxr-xr-x  2 root root 4096 Sep 26 16:56 .rpmdb/
drwx------  3 root root 4096 Sep 26 16:43 snap/
drwx------  2 root root 4096 Sep 26 16:42 .ssh/
-rw-r--r--  1 root root    0 Nov  8 09:17 test.c
-rw-------  1 root root  207 Nov  8 15:50 .Xauthority
-rw-r--r--  1 root root    8 Nov  8 15:55 y
-rw-r--r--  1 root root    8 Nov  8 15:55 yy
root@iZbp1be068ksa92vuf0kbdZ:~# 

rm命令可以同时删除文件或者目录

**功能:**删除文件或目录

举例:

root@iZbp1be068ksa92vuf0kbdZ:~# touch file.txt
root@iZbp1be068ksa92vuf0kbdZ:~# ll
total 80
drwx------ 13 root root 4096 Nov  8 16:51 ./
drwxr-xr-x 19 root root 4096 Nov  3 10:10 ../
drwxr-xr-x  3 root root 4096 Nov  8 11:55 a/
drwxr-xr-x  4 root root 4096 Nov  8 15:52 aaa/
drwxr-xr-x  2 root root 4096 Nov  8 15:51 b/
-rw-------  1 root root 1158 Nov  8 14:11 .bash_history
-rw-r--r--  1 root root 3106 Oct 15  2021 .bashrc
drwxr-xr-x  2 root root 4096 Nov  8 15:51 c/
drwx------  2 root root 4096 Sep 26 16:43 .cache/
-rw-r--r--  1 root root    0 Nov  8 16:51 file.txt
-rw-r--r--  1 root root    0 Nov  8 11:43 h.txt
drwxr-xr-x  3 root root 4096 Nov  8 15:53 .local/
drwxr-xr-x  3 root root 4096 Nov  8 11:06 mystudy/
drwxr-xr-x  2 root root 4096 Sep 26 16:56 .pip/
-rw-r--r--  1 root root  161 Jul  9  2019 .profile
-rw-r--r--  1 root root   72 Sep 26 16:56 .pydistutils.cfg
drwxr-xr-x  2 root root 4096 Sep 26 16:56 .rpmdb/
drwx------  3 root root 4096 Sep 26 16:43 snap/
drwx------  2 root root 4096 Sep 26 16:42 .ssh/
-rw-r--r--  1 root root    0 Nov  8 09:17 test.c
-rw-------  1 root root  207 Nov  8 15:50 .Xauthority
-rw-r--r--  1 root root    8 Nov  8 15:55 y
-rw-r--r--  1 root root    8 Nov  8 15:55 yy
root@iZbp1be068ksa92vuf0kbdZ:~# rm file
rm: cannot remove 'file': No such file or directory
root@iZbp1be068ksa92vuf0kbdZ:~# rm file.txt
root@iZbp1be068ksa92vuf0kbdZ:~# ll
total 80
drwx------ 13 root root 4096 Nov  8 16:52 ./
drwxr-xr-x 19 root root 4096 Nov  3 10:10 ../
drwxr-xr-x  3 root root 4096 Nov  8 11:55 a/
drwxr-xr-x  4 root root 4096 Nov  8 15:52 aaa/
drwxr-xr-x  2 root root 4096 Nov  8 15:51 b/
-rw-------  1 root root 1158 Nov  8 14:11 .bash_history
-rw-r--r--  1 root root 3106 Oct 15  2021 .bashrc
drwxr-xr-x  2 root root 4096 Nov  8 15:51 c/
drwx------  2 root root 4096 Sep 26 16:43 .cache/
-rw-r--r--  1 root root    0 Nov  8 11:43 h.txt
drwxr-xr-x  3 root root 4096 Nov  8 15:53 .local/
drwxr-xr-x  3 root root 4096 Nov  8 11:06 mystudy/
drwxr-xr-x  2 root root 4096 Sep 26 16:56 .pip/
-rw-r--r--  1 root root  161 Jul  9  2019 .profile
-rw-r--r--  1 root root   72 Sep 26 16:56 .pydistutils.cfg
drwxr-xr-x  2 root root 4096 Sep 26 16:56 .rpmdb/
drwx------  3 root root 4096 Sep 26 16:43 snap/
drwx------  2 root root 4096 Sep 26 16:42 .ssh/
-rw-r--r--  1 root root    0 Nov  8 09:17 test.c
-rw-------  1 root root  207 Nov  8 15:50 .Xauthority
-rw-r--r--  1 root root    8 Nov  8 15:55 y
-rw-r--r--  1 root root    8 Nov  8 15:55 yy
root@iZbp1be068ksa92vuf0kbdZ:~# rm h.txt

7.man指令

Linux命令有很多参数,可以通过查看联机手册

man手册分为九章(不同系统可能不同)

举例:

root@iZbp1be068ksa92vuf0kbdZ:~# man printf
root@iZbp1be068ksa92vuf0kbdZ:~# man scanf
root@iZbp1be068ksa92vuf0kbdZ:~# 

8.cp指令

**功能:**复制文件或目录

root@iZbp1be068ksa92vuf0kbdZ:~# nano y
root@iZbp1be068ksa92vuf0kbdZ:~# nano zz
root@iZbp1be068ksa92vuf0kbdZ:~# cat zz y
hello world

qaaaaaaq
root@iZbp1be068ksa92vuf0kbdZ:~# cp zz file
root@iZbp1be068ksa92vuf0kbdZ:~# cat file
hello world


//*表示通配符,匹配所有.txt结尾的文件名
root@iZbp1be068ksa92vuf0kbdZ:~# mkdir dir
root@iZbp1be068ksa92vuf0kbdZ:~# touch file1.txt
root@iZbp1be068ksa92vuf0kbdZ:~# touch file2.txt
root@iZbp1be068ksa92vuf0kbdZ:~# cp *.txt dir
root@iZbp1be068ksa92vuf0kbdZ:~# tree dir
dir
├── file1.txt
└── file2.txt

0 directories, 2 files
root@iZbp1be068ksa92vuf0kbdZ:~# 

//cp对象是目录时要加 -r  cp目标文件存在就覆盖
root@iZbp1be068ksa92vuf0kbdZ:~# mkdir dir1
root@iZbp1be068ksa92vuf0kbdZ:~# cp dir dir1
cp: -r not specified; omitting directory 'dir'
root@iZbp1be068ksa92vuf0kbdZ:~# cp -r dir dir1
root@iZbp1be068ksa92vuf0kbdZ:~# tree dir1
dir1
└── dir
    ├── file1.txt
    └── file2.txt

1 directory, 2 files
root@iZbp1be068ksa92vuf0kbdZ:~# 

9.Linux理论知识:路径的认识

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或者文件

其中普通文件一定是目录树的叶子节点

目录可能是叶子(空目录),也可能是路上节点

理解路径存在的意义:树状组织方式,都是为了保证快速定位查找到指定文件,而定位需要具有唯一性的方案来进行定位文件。其中任何一个节点,都只有一个父节点,所以,从根目录开始,定位指定文件,路径具有唯一性

绝对路径:一般从 / 开始,不依赖其它目录的定位文件的方式

相对路径:相对于当前用户所处目录,定位文件的路径方式

补充:

文件=内容+属性(内容空,但属性也是数据构成也会占用空间)

在用ls -l时,最前面字母是d为目录,-为普通文件

在Linux,以.开头是隐藏文件

命令其实是文件,命令的本质=可执行文件=所写的C/C++程序

上下键可以寻找历史命令

关于路径的补充:

你提到的 ../ 中的 / 其实在这里起到的作用是确保它正确地作为路径的一部分来引用父目录。为了更清晰地理解这一点,我们需要从文件路径的构造和含义角度来看。

  1. ../ 与 / 的作用

1.1. .. 表示父目录

1.在文件系统中,.. 是一个特殊的目录符号,表示当前目录的父目录。在 Linux 和其他类 Unix 操作系统中,.. 始终指向当前目录的上一级目录。

1.2. ../ 作为相对路径

2.../ 也是一个相对路径,表示从当前目录进入父目录。

3.路径中的 / 是路径分隔符,指示路径中的不同层级。它用来将目录或文件名分隔开来,形成路径结构。

  1. 路径分隔符 / 的作用

2.1. 路径分隔符 /

4.在 Linux、Unix 等操作系统中,路径分隔符是 /。它用来分隔路径中的各个部分,使得操作系统能够正确解析路径。

5.比如,/home/user/docs 中的 / 将 home、user 和 docs 分开。

6.例如,绝对路径 /home/user/docs 指向的是从根目录开始的一个具体路径。

2.2. ../ 和 / 的关系

7.在 ../ 这种相对路径中,.. 是父目录的标识,后面的 / 表示路径的结束,或者用于连接接下来的路径部分。

8.../ 中的 / 并不是必须要加的,但它的加法符合路径构造的语法规则。你可以把它理解为"表示向上一级并且继续构造路径"。

  1. ../ 与 .. 之间的区别

虽然 .. 和 ../ 实际上在大多数情况下是等效的,它们的区别在于:

9... 只是表示父目录的位置,它本身并不包含路径的分隔符,因此可以直接使用 ls .. 或者 cd ..。

10.../ 则表示一个相对路径,其含义是从当前目录进入父目录。它强调的是路径的结构,虽然它后面的 / 没有任何影响,但符合路径表达的规范(路径分隔符的存在)。在某些情况下(如在后面接上其他目录),../ 后的 / 是有必要的。

例子:

11.如果你当前的目录是 /home/user/docs/project,那么 ls .. 和 ls ../ 都会列出 /home/user/docs 目录的内容,效果完全相同。

12.但如果你想进入父目录后再进入某个子目录,那么使用 ../ 就很重要:

13.cd ../ 进入父目录。

14.cd ../somefolder/ 则会进入父目录的 somefolder 子目录。

  1. 总结

15.../ 作为路径表示时,.. 表示父目录,/ 是路径的分隔符,虽然在 ../ 中不必额外加上 /,但它作为路径的一部分表示了你在操作的是相对路径。

16.在 Linux 和 Unix 风格的路径中,路径分隔符 / 总是起到分隔路径各部分的作用。即使在 ../ 这样简单的路径中,路径分隔符也遵循这一规则。

希望这个解释能够清晰解答你对 ../ 中 / 的疑问!如果还有不清楚的地方,随时欢迎继续提问。

相关推荐
烦躁的大鼻嘎4 分钟前
【Linux】深入理解GCC/G++编译流程及库文件管理
linux·运维·服务器
ac.char11 分钟前
在 Ubuntu 上安装 Yarn 环境
linux·运维·服务器·ubuntu
敲上瘾11 分钟前
操作系统的理解
linux·运维·服务器·c++·大模型·操作系统·aigc
长弓聊编程29 分钟前
Linux系统使用valgrind分析C++程序内存资源使用情况
linux·c++
cherub.37 分钟前
深入解析信号量:定义与环形队列生产消费模型剖析
linux·c++
梅见十柒1 小时前
wsl2中kali linux下的docker使用教程(教程总结)
linux·经验分享·docker·云原生
Koi慢热1 小时前
路由基础(全)
linux·网络·网络协议·安全
传而习乎1 小时前
Linux:CentOS 7 解压 7zip 压缩的文件
linux·运维·centos
我们的五年1 小时前
【Linux课程学习】:进程程序替换,execl,execv,execlp,execvp,execve,execle,execvpe函数
linux·c++·学习
IT果果日记2 小时前
ubuntu 安装 conda
linux·ubuntu·conda