1 基本命令的基本格式

目录

1. 命令提示符说明

[root@localhost~]#

* []: 这是提示符的分隔符号,没有特殊含义
* root:显示的是当前的登陆用户
* @:分隔符号,没有特殊含义
* localhost:当前系统的简写主机名(完整主机名localhost.localdomain)
* ~:代表用户当前所在的目录的最后一级目录
* #:表示命令提示符。#是超级用户,$是普通用户

提示:​​~​​为当前的家目录

2. 命令的基本格式

[root@localhost~]# [选项][参数]
  • (1)举例​​ls​​命令

​ls​​是最常见的目录操作命令,主要作用是显示目录下的内容。

* 命令名称:ls
* 英文原意:list
* 所在路径:/bin/ls
* 执行权限:所有用户
* 功能描述:显示目录下的内容
[root@localhost ~] # ls [选项] [文件名或目录名]

选项:
-a:显示所有文件
--color=[when]:支持颜色输出,when的值默认是always(总显示颜色),也可以是never(从不显示颜色)和auto(自动)
**ls --color=auto**
-d:显示目录信息,而不是目录下的文件
-h:人性化显示,按照我们习惯的单位显示文件大小
-i:显示文件的i节点号。理论上i节点号不重叠。
-l:长格式显示(long list)

以上是ls命令,比较常用的选项。
  • (2)说明​​ls -l ​​命令的输出内容
ubuntu@ubuntu-HP-Z4-G4-Workstation:~/qiao$ ls -l
总用量 23583748
drwxrwxr-x 4 ubuntu ubuntu 4096 12月 22 14:42 map
-rw-rw-r-- 1 ubuntu ubuntu 212926229 12月 21 19:13 output.tar.gz
drwxrwxr-x 2 ubuntu ubuntu 4096 12月 21 21:29 record
-rw-rw-r-- 1 ubuntu ubuntu 1537 1月 6 21:11 ss.py

内容

说明

drwxrwxr-x

权限

4

引用计数

ubuntu

所有者

ubuntu

所属组

4096

文件大小

12月 22 14:42

文件修改时间

map

文件名


  • 第一列:权限。具体权限的含义在之后权限部分详细讲解。

  • 第二列:引用计数。
    该参数没有太大作用,而且引用计数对于文件和目录是有区别的。
    文件的引用计数代表该文件的硬链接个数。
    目录的引用计数代表该目录有多少个一级子目录。
    也就是说,如果是文件就代表该文件的硬链接个数,如果是目录代表该目录有多少个一级子目录。

  • 第三列:所有者,也就是这个文件属于哪个用户。默认所有者是文件的建立用户。

  • 第四列:所属组。默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组。
    为什么一个文件要分所有者和所属组呢?
    是为了分配权限的时候,指定权限方便分配。

  • 第五列:文件大小。默认单位是字节(byte)。

  • 第六列:文件修改时间。
    文件状态修改时间(访问时间)或文件数据修改时间都会更改这个时间,哪个时间最后,显示哪个时间。注意这个时间不是文件的创建时间。

  • 第七列:文件名。


提示:

Linux系统中,以.开头的文件,都是隐藏文件。用ls -a命令查看。
Linux系统中,所有目录都有两个隐藏目录。.代表当前目录,..代表上级目录

3. 目录相关的命令

3.1 ls 命令

​ls​​是最常见的目录操作命令,主要作用是显示目录下的内容。

* 命令名称:ls
* 英文原意:list
* 所在路径:/bin/ls
* 执行权限:所有用户
* 功能描述:显示目录下的内容
[root@localhost ~] # ls [选项] [文件名或目录名]

选项:
-a:显示所有文件
--color=[when]:支持颜色输出,when的值默认是always(总显示颜色),也可以是never(从不显示颜色)和auto(自动)
**ls --color=auto**
-d:显示目录信息,而不是目录下的文件
-h:人性化显示,按照我们习惯的单位显示文件大小
-i:显示文件的i节点号。理论上i节点号不重叠。
-l:长格式显示(long list)

以上是ls命令,比较常用的选项。

用法演示

ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ ls -l
总用量 52
-rw-r--r-- 1 ubuntu ubuntu 8980 12月 20 16:37 examples.desktop
drwxrwxr-x 9 ubuntu ubuntu 4096 3月 14 16:15 qiao
drwx------ 3 ubuntu ubuntu 4096 2月 23 19:16 snap
drwxr-xr-x 3 ubuntu ubuntu 4096 12月 24 14:05 公共的
drwxr-xr-x 2 ubuntu ubuntu 4096 12月 20 16:44 模板
drwxr-xr-x 2 ubuntu ubuntu 4096 12月 20 16:44 视频
drwxr-xr-x 2 ubuntu ubuntu 4096 3月 1 10:31 图片
drwxr-xr-x 2 ubuntu ubuntu 4096 12月 20 16:44 文档
drwxr-xr-x 7 ubuntu ubuntu 4096 3月 14 15:43 下载
drwxr-xr-x 2 ubuntu ubuntu 4096 12月 20 16:44 音乐
drwxr-xr-x 2 ubuntu ubuntu 4096 1月 21 15:06 桌面

3.2 cd 命令

​cd​​是切换用户所在目录的命令,这个命令的基本信息如下

* 命令名称:cd
* 英文原意:change directory
* 所在路径:Shell内置命令
* 执行权限:所有用户
* 功能描述:切换所在目录

(1)绝对路径和相对路径

  • 绝对路径:以根目录为参照物,从根目录开始,一级一级进入目录。
  • 相对路径:以当前目录作为参照物,进行目录查找。
  • 路径的最后一个​​/​​,表示路径下,有也可以,没有也行。

(2)cd命令的简化用法

特殊符号

作用

~ 直接回车

代表用户的家目录

-

代表上次所在目录

.

代表当前目录

..

代表上级目录

3.3 pwd 命令

​pwd​​是查询所在目录位置的命令,基本信息如下:

* 命令名称:pwd
* 英文原意:print name of current/working directory
* 所在路径:/bin/pwd
* 执行权限:所有用户
* 功能描述:查询所在的工作目录位置
ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ pwd
/home/ubuntu

3.4 mkdir 命令

mkdir是创建目录的命令,基本信息如下:

* 命令名称:mkdir
* 英文原意:make directories
* 所在路径:/bin/mkdir
* 执行权限:所有用户
* 功能描述:创建空目录

​mkdir​​命令格式如下:

ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ mkdir [选项] 目录名

选项:
-p:递归建立所需目录

例如:创建一个目录

ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ mkdir abc
ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ ll
总用量 40
drwxrwxr-x 2 ubuntu ubuntu 4096 3月 15 11:14 abc/

同时创建多级目录,示例如下:

ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ mkdir 123/456/789
mkdir: 无法创建目录"123/456/789": 没有那个文件或目录
ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ mkdir -p 123/456/789
ubuntu@ubuntu-HP-Z4-G4-Workstation:~$

提示: linux不允许在一个文件夹内出现同名的目录和文件

ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ ls
123 abc
ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ mkdir 123
mkdir: 无法创建目录"123": 文件已存在

3.5 rmdir 命令

既然有建立目录的命令,就一定会有删除目录的命令​​rmdir​​,基本信息如下:

* 命令名称:rmdir
* 英文原意:remove empty directories
* 所在路径:/bin/rmdir
* 执行权限:所有用户
* 功能描述:删除空目录
命令格式
ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ rmdir [选项] 目录名

练习:
ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ rmdir 123
rmdir: 删除 "123" 失败: 目录非空


提示:

​rmdir​​命令的作用十分有限,因为只能删除空目录,所以一旦目录中有内容,就会报错

这个命令比较“笨”,所有我们不太常用。后续我们不论是删除的是文件还是目录,都会使用​​rm​​命令。


4. 文件操作相关的命令

4.1 touch 命令

​touch​​命令是用于创建空文件或修改文件时间,这个命令的基本信息如下。

* 命令名称:touch
* 英文原意:change file timestamps
* 所在路径:/bin/touch
* 执行权限:所有用户
* 功能描述:创建空文件或修改文件时间戳

使用示例

ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ touch 1.txt
ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ ll
总用量 44
-rw-rw-r-- 1 ubuntu ubuntu 0 3月 15 19:10 1.txt ⭐️


​touch​​是摸的意思,如果没有这个文件,摸一下就有了,如果有这个文件,摸一下,最后一次的访问时间就变更了


ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ touch 1.txt
ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ ll
总用量 44
-rw-rw-r-- 1 ubuntu ubuntu 0 3月 15 19:11 1.txt ⭐️

4.2 stat 命令

​stat​​是查看文件详细信息的命令,而且可以看到文件的三个时间,具体信息如下。

* 命令名称:stat
* 英文原意:display file or file system status
* 所在路径:/usr/bin/stat
* 执行权限:所有用户
* 功能描述:显示文件或文件系统的详细信息

示例:

ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ stat 1.txt
文件:1.txt
大小:0 块:0 IO 块:4096 普通空文件
设备:802h/2050d Inode:10757125 硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 1000/ ubuntu) Gid:( 1000/ ubuntu)
最近访问:2022-03-15 19:11:54.039112490 +0800
最近更改:2022-03-15 19:11:54.039112490 +0800
最近改动:2022-03-15 19:11:54.039112490 +0800
创建时间:-


提示:

Linux系统中文件是没有创建时间的

状态修改指的是修改权限,修改所属组等


4.3 cat命令

​cat​​命令是用来查看文件内容的,这个命令的其基本信息如下。

* 命令名称:cat
* 英文原意:concatenate files and print on the standard output
* 所在路径:/bin/cat
* 执行权限:所有用户
* 功能描述:合并文件并打印输出到标准输出

​cat​​命令格式:

[root@localhost ~] # cat [选项] 文件名

选项:
-A:相当于-vET选项的整合,用于列出所有隐藏符号
-E:列出每行结尾的回车符$
-n:显示行号
-T:把Tab键用^I显示出来
-v:列出特殊字符

说明一下 ​​-A​​ 选项的使用:

ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ cat 1.txt
111111111111
222222222222222222
3333333333333333333

ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ cat -A 1.txt
111111111111$
^I222222222222222222$ ⭐️注意$,^I
3333333333333333333$


注意 ​​-A​​就是显示隐藏符号的

回车符用​​$​​表示

Tab键用​​^I​​来表示


cat 这个命令方便用于查看小文件,因为他是一次性显示文件中的所有内容。如果很大的文件,cat命令只能显示文件的最后一部分。虽然可以向上翻阅,但是显示还是由有限制的,查看大文件不是很方便,用下面的 more 命令更方便

4.4 more 命令

​more​​是分屏显示文件的命令,其基本信息如下

* 命令名称:more
* 英文原意:file perusal filter for crt viewin
* 所在路径:/bin/more
* 执行权限:所有用户
* 功能描述:分屏显示文件内容

​more​​命令比较简单,一般也不用什么选项,命令会打开一个交互界面,可以识别一下交互命令。

常用的交互命令如下:

  • 空格键:向下翻页
  • ​b​​: 向上翻页
  • 回车键:向下滚动一行
  • /字符串:搜索指定的字符串
  • ​q​​: 退出

4.5 less 命令

​less​​​命令和​​more​​​命令类似,只是​​more​​​是分屏显示命令,而​​less​​是分行显示命令,其基本信息如下:

* 命令名称:less
* 英文原意:opposite of more
* 所在路径:/usr/bin/less
* 执行权限:所有用户
* 功能描述:分行显示文件内容


提示:

​less​​​是分行显示,通过上下箭头翻阅,按 ​​q:​​ 退出

​cat​​​ ​​more​​​ ​​less​​ 这三个都是查看的命令,按照自己的习惯来咯


4.6 head 命令

​head​​ 是用来显示文件开头的命令,其基本信息如下:

* 命令名称:head
* 英文原意:output the first part of files
* 所在路径:/usr/bin/head
* 执行权限:所有用户
* 功能描述:显示文件开头的内容
ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ head [选项] 文件名

选项:
-q:隐藏文件名
-v:显示文件名
-c<字节>:显示字节数
-n<行数>:显示的行数

4.7 tail命令

既然有显示文件开头的命令,就会有显示文件结尾的​​tail​​命令,其基本信息如下:

* 命令名称:tail
* 英文原意:output the last part of files
* 所在路径:/usr/bin/tail
* 执行权限:所有用户
* 功能描述:显示文件结尾的内容

​tail​​命令格式

ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ head [选项] 文件名

[选项]
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部 n 行内容
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒


提示:

  • ​head​​ 命令和​​tail​​命令,默认分别显示文件的前10行和最后10行
    如果需要显示其他行数的内容可通过​​head -n 20/-20 1.txt​​,进行查看
  • ​-f​​:监听文件的新增内容说明:
    通过​​head -f 1.txt​​监听一个文件,如果另外其他的终端修改或添加内容,该终端就会同步到
    退出监听状态用:​​ctrl + c​


5. 目录和文件都能操作的命令

5.1 rm 命令

​rm​​是强大的删除的命令,不仅可以删除文件,也可以删除目录。这个命令的基本信息如下。

* 命令名称:rm
* 英文原意:remove files or directories
* 所在路径:/bin/rm
* 执行权限:所有用户
* 功能描述:删除文件或目录

​rm​​命令格式

ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ rm [选项] 文件或目录

选项:
-f:强制删除(force)
-r:递归删除,可以删除目录(recursive)
-i:交互删除,在删除之前会询问用户(如果不添-f参数,rm命令默认添加-i参数)


提示:

一般使用​​rm​​​的时候,搭配 ​​-rf​​ 一旦被删除就没有了,切记


5.2 cp 命令

​cp​​是用于复制的命令,其基本信息如下:

* 命令名称:cp
* 英文原意:copy file and directories
* 所在路径:/bin/cp
* 执行权限:所有用户
* 功能描述:复制文件或目录
ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ cp [选项] 源文件 目标文件

选项:
-a:相当于-dpr选项的集合,这几个选项我们一一介绍
-d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接
-i:询问,如果目标文件已经存在,则会询问是否覆盖
-p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间)
-r:递归复制,用于复制目录

总结:只要加了-a选择,复制的目标文件或目录,和源文件或源目录,就会一模一样。

示例

buntu@ubuntu-HP-Z4-G4-Workstation:~$ ls
1.txt qiao

ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ cp 1.txt qiao/ ⭐️ 如果后边路径不加文件名,就是原名复制

ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ cd qiao/
ubuntu@ubuntu-HP-Z4-G4-Workstation:~/qiao$ ls
1.txt

ubuntu@ubuntu-HP-Z4-G4-Workstation:~/qiao$ cd ..
ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ cp 1.txt qiao/2.txt ⭐️ 如果后边路径加文件名,就是改名复制
ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ cd qiao/

ubuntu@ubuntu-HP-Z4-G4-Workstation:~/qiao$ ls
1.txt 2.txt

5.3 mv 命令

​mv​​是用来剪切的命令,其基本信息如下

* 命令名称:mv
* 英文原意:move(rename) files
* 所在路径:/bin/mv
* 执行权限:所有用户
* 功能描述:移动文件或目录
ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ mv [选项] 源文件 目标文件

选项:
-f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖
-i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项)
-v:显示详细信息

[root@192 ~]# mv abc /tmp/ 剪切
[root@192 tmp]# mv abc bef 重命名
[root@192 tmp]# mv bef /root/abc 剪切+重命名

示例

  • 剪切​​mv 1.txt qiao/​
ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ mv 1.txt qiao/ ⭐️
ubuntu@ubuntu-HP-Z4-G4-Workstation:~$ ls
ubuntu@ubuntu-HP-Z4-G4-Workstation:~$
  • 重命名​​mv 1.txt 11.log​
ubuntu@ubuntu-HP-Z4-G4-Workstation:~/qiao$ ls
1.txt
ubuntu@ubuntu-HP-Z4-G4-Workstation:~/qiao$ mv 1.txt 11.log ⭐️
ubuntu@ubuntu-HP-Z4-G4-Workstation:~/qiao$ ls
11.log
ubuntu@ubuntu-HP-Z4-G4-Workstation:~/qiao$
  • 剪切+重命名​​ mv 11.log xx/1.txt​
ubuntu@ubuntu-HP-Z4-G4-Workstation:~/qiao$ mkdir xx
ubuntu@ubuntu-HP-Z4-G4-Workstation:~/qiao$ ls
11.log xx
ubuntu@ubuntu-HP-Z4-G4-Workstation:~/qiao$ mv 11.log xx/1.txt ⭐️

ubuntu@ubuntu-HP-Z4-G4-Workstation:~/qiao$ cd xx
ubuntu@ubuntu-HP-Z4-G4-Workstation:~/qiao/xx$ ls
1.txt
ubuntu@ubuntu-HP-Z4-G4-Workstation:~/qiao/xx$