Linux系统第二章:常见的Linux指令(上)

在Linux中有许多基本的指令,对应的是Windows操作系统的图形化操作。例如在Windows系统下双击文件等价于Linux系统的某些指令。操作系统的操作无非就是在图形化界面或者命令行进行操作。其中命令行是我们学习Linux操作系统的重要手段。

大多数指令是对文件进行操作的,这里的文件该如何理解呢?

在Linux操作系统中,一切的一切都是文件,所有能和系统交互的资源,都统一抽象成文件,用同一套读写接口操作。

Windows里面有分文件,文件夹、硬盘、网卡、显示器、串口各自的用法都不同。

Linux全部抽象为文件,读写等操作共有一套逻辑。

当创建一个空文件时,此文件的大小并不是0字节,而是比0字节大。依旧占用磁盘空间。文件包括文件内容和文件属性,两者都是文件的数据。

1.ls指令

语法:ls+选项+目录或文件

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

基础作用:ls的全称是list,作用是查看当前或指定文件、文件

bash 复制代码
ls          # 查看当前目录文件
ls /home    # 查看/home目录

常用参数:

ls -l

bash 复制代码
ls -l    #显示完整信息:权限、所有者、大小、修改时间

如上代码ls-l显示出了home目录下的文件详细的信息:权限、所有者、大小、修改时间。

ls -a

bash 复制代码
ls -a    #显示隐藏文件

如上述代码ls-a会显示当前目录下的隐藏文件,隐藏文件一般是前缀是"."的文件,在Linux操作系统中就可以通过上述指令显示隐藏文件。在Windows操作系统下,可以通过在文件资源管理器的上方设置操作,具体操作如下:

ls -lh

bash 复制代码
ls -lh    #这里的h是human的意思,文件大小自动显示KB/MB,不用看纯数字字节。类似于单位换算

如上述代码ls-lh命令会让操作系统在显示文件具体信息的基础上,将文件的大小从字节单位换算成更易读的单位。例如上述文件大小从开始的4096变成了4k,增强了信息的可读性。

ls-lh其实是ls-l加上ls-h,首先显示文件的具体信息,随后将文件大小的单位换算。

ls -i

bash 复制代码
ls -i    #显示每个文件的inode编号

如上代码ls-i指令会显示文件的inode编号,上面文件的inode编号为70,可这里的inode编号又是什么呢?

inode编号是Linux文件系统底层用来存储文件元数据的结构,inode编号就是每个inode在分区内唯一的整数ID。通俗点的解释就是:文件名是给用户看的,操作系统识别文件只认准inode编号。

这里的inode里面存储着文件大小、文件修改时间、文件访问时间、文件的权限、文件类型、文件在磁盘上的存储位置。(这里面的存储内容不包括文件名和文件内容)

ls -lt

bash 复制代码
ls -lt    #按照修改时间排序,最新文件放在最上面

如上代码ls-lt就是先进行ls-l,然后进行ls-t。该指令的作用是将文件按照修改的时间顺序进行排列。将最新的文件放在最上面。

ls -R

bash 复制代码
 ls -R    #递归列出所有子目录里的文件

如上代码ls-R会将该目录下的所有子目录文件递归列出来,供下面使用。这里需要注意的是R是大写,小写的r是对文件反向排列。

常用选项:

  • -a:列出目录下的所有文件,包括以点开头的隐含文件。
  • -d:将目录像文件一样显示,而不是显示其下的文件
  • -i:输出文件的i节点的索引信息,显示文件的inode编号
  • -k:以k字节的形式表示文件的大小
  • -l:列出文件的详细信息
  • -n:用数字的UID、GID代替名称
  • -F:在每个文件名后附上一个字节说明该文件的类型
  • -r:对目录反向排序
  • -t:以时间顺序对文件进行排序
  • -s:在文件名后输出该文件的大小
  • -R:列出所有子目录下的文件
  • -1:一行只输出一个文件(更清晰显示文件)

2.pwd命令

语法:pwd

解释:pwd的全称是print working directory,意思是打印工作目录,这里的工作目录就是用户当前所处的目录

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

常见选项:

pwd -L:

显示文件的逻辑路径,遇到软链接时,输出链接名称,不是真正的物理路径。默认不加参数的pwd就等同于pwd-L。

pwd -P:

显示文件的物理路径,输出文件的原始真实目录。直接给出硬盘真实文件夹的路径

3.cd指令

Linux操作系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。相当于学过的数据结构的多叉树。下面是磁盘上文件和目录的目录树显示:

语法:cd+目录名

解释:cd命令的全程是change directory,翻译过来就是改变目录、改变当前所在的文件夹。

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

常见选项:

  • cd ..:返回上级目录
  • cd /home/litao/linux/:绝对路径,将当前目录改到输入目录名的位置
  • cd ../day01/:相对路径,将当前目录改到输入目录名的位置
  • cd ~:进入用户家目录,家目录就是home目录
  • cd -:返回最近访问的目录,类似于撤销操作

绝对路径:

定义:从根目录/开始写出的完整整条路径,具有的特点是唯一且不会出错。

特点:一定以/开头,不论当前在哪个文件夹,输入这个绝对路径都会准确无误的找到该目录下的文件。

相对路径:

定义:不以/开头,以当前所在的目录位置为起点去找文件。

特点:不以/开头

常用符号:.表示当前目录(很少用);..表示上一级目录

具体解释:用相对路径表示的文件位置可以简单看成当前目录位置+输入的文件位置,例如假设当前的文件路径是:/home/student/code/day02,那么cd ../day01/的意思是在/home/student/code/day02路径上返回上级目录后,在day01目录。总结下来的文件目录就是:/home/student/code/day01

home目录:

作用:/home是系统存放普通用户专属目录的顶层文件夹。系统每创建一个普通用户,就会在/home下自动生成一个同名的文件夹,这个文件夹就是该用户的家目录。家目录中存储的是用户自己所有的私人文件:文档、代码、图片、配置文件,其中普通用户在家目录下默认有完整的读写权限,但是在系统的其他目录下只有只读权限。

4.touch指令

语法:touch+选项+文件

功能:touch指令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者创建一个不存在的空普通文件。

常用选项:

  • -a -a=access,只修改文件的访问时间,不改变文件的修改时间和文件内容,文件不存在时,会创建一个普通空文件,等价于无选项touch
  • -c -c=no create,当文件不存在时,什么也不做;当文件存在时,更新该文件的时间戳
  • -d 手动自定义文件的时间戳,不再使用当前的系统时间,可以指定任意日期来修改文件的访问时间和修改时间
  • -f 此参数将忽略不予处理,写不写是一样的效果。仅负责解决BSD版本的touch指令的兼容性问题
  • -m -m=modify,作用是只修改文件的内容修改时间,不改变文件的访问时间
  • -r 将一个已有文件的时间戳赋值给目标文件,使两个文件的访问时间和修改时间一致
  • -t 用数字格式手动指定时间戳,修改文件的访问时间和修改时间。和-d功能类似,但是-t只能使用纯数字自定义时间戳;而-d可以使用类似于yesterday、next day文字时间

touch qigai1469.txt:创建一个以qigai1469.txt命名的空普通文件。

5.mkdir指令

语法:mkdir+选项+目录名

解释:mkdir指令的全称是:make directory,作用是创建文件夹/目录(这是与touch指令的区别,touch指令是创建空文件;而该命令是创建文件夹/目录)

功能:在当前目录下创建一个新的目录。

常用选项:

-p: p指的是parent翻译过来就是父目录。如果test文件不存在,就会递归创建多个目录

bash 复制代码
mkdir --p test/test1    #递归建立多个目录

如上述代码当test不存在的话,该命令就是递归建立多个目录

6.rmdir指令和rm指令

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

语法:rmdir+选项+目录名

适用对象:具有当前目录操作权限的所有者

功能:删除空目录

常用选项:

-p: 当子目录被删除后如果父目录也变成空目录的话,就连着父目录一起删除。

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

语法:rm+选项+目录名

适用对象:所有的使用者

功能:删除文件或目录

常用选项:

  • -f:即使文件属性为只读,也直接进行删除
  • -i:删除前逐一询问进行确认是否进行删除
  • -r:删除目录及其以下所有的文件

7.man指令

上面我们学习了很多的Linux操作系统的命令,当然接下来还有很多的命令没有了解,这么多的Linux命令怎么记住的呢?这就引入了man指令。

语法:man+选项+命令名

常用选项:

  • -k:根据关键字搜索手册
  • num:只在第num章节查找相关手册
  • -a:将所有章节都显示出来,例如:man printf,它缺省从第一章开始搜素,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。

注意:手册分为8章

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

8.cp指令

语法:cp+选项+源文件/目录 目标文件或目录

功能:复制文件或目录

说明:该指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已经存在的目录,则会出现错误。

常见选项:

-f:强制覆盖目标文件,当目标文件存在且无写的权限时,先删除文件再新建写入,全程不弹窗询问

-i:覆盖文件前交互式询问用户进行确认

-r:递归处理,将指定目录下的文件与子目录一并复制。若源文件或目录的形态不属于目录或符号链接,则一律视为普通文件处理

-R:递归处理,将指定目录下的文件及子目录一并处理

9.mv指令

mv命令是move单词的缩写,可以用来移动文件或将文件改名,该命令是Linux系统下常用的命令,经常用来备份文件或目录。

语法:mv+选项+源文件或目录 目标文件或目录

功能:

  1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新目录中
  2. 当第二参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移动到目标文件中。

常用选项:

-f:如果目标文件已经存在,不会询问而且直接覆盖源文件

-i:若目标文件已经存在时,就会询问是否覆盖

bash 复制代码
将rm改造成mv
vim ~/.bashrc #修改这个文件
mkdir -p ~/.trash
alias rm=trash
alias ur=undelfile
undelfile() {
 mv -i ~/.trash/\$@ ./
}
trash() {
 mv $@ ~/.trash/
}

上述代码书写了类似于Windows操作系统回收站功能的东西,可以帮助我们Linux系统中误删文件的恢复操作

10.cat指令

语法:cat+选项+文件

功能:查看目标文件的内容

常用选项:

-b:对非空白行输出对应行的编号

-n:对输出的所有的行编号

-s:压缩连续的空白行,只保留一行空白行

11.more指令

语法:more+选项+文件

功能:more命令功能类似于cat命令,cat命令是一次性的输出文件的内容,没有翻页功能;而more命令是分页查看长文件的工具,支持翻页查看

常用选项:

-n:对输出的所有行编号(q退出)

举例:

bash 复制代码
[atong@LiWenTong ~]$ ls -l / | more
 
total 162
drwxr-xr-x 2 root root 4096 Apr 25 05:39 bin
drwxr-xr-x 4 root root 1024 Apr 25 04:11boot
drwxr-xr-x 9 root root 3820 May 4 23:20 dev
drwxr-xr-x 84 root root 4096 May 5 00:37 etc

利用管道符将前面的ls-l作为more指令的输入,将/文件的详细信息打印出来(分页展示出来)

管道符的介绍:

符号:|

作用:把前面的命令的标准输出直接当作后面命令的标准输入,实现命令的拼接,数据在两个命令之间传输。

例子:命令1|命令2

解释例子:先运行命令1,将结果传给命令2,将命令2的最终结果输出到屏幕上

12.less指令

less工具是对文件或其他输出进行分页显示的工具,是Linux正统查看文件内容的工具,功能极其强大。less的用法比起more更加有弹性,在使用more命令的时候,我们并没有办法向前面翻,只能往后看,但若使用了less命令时,就可以使用pageuppagedown等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容。

除此之外,在less里可以拥有更多的搜索功能,不止可以向下搜素,也可向上搜索。

语法:less+参数+文件

功能:less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,但是less在查看之前不会加载整个文件。

常用选项:

-i:搜索时忽略内容的大小写

-N:显示每行的行号

/字符串:向下搜索字符串的功能,从当前光标位置向文件末尾查找文本

?字符串:向上搜索字符串的功能,从当前光标位置向文件开头查找文本

n:重复前一个搜索(与/或?有关),上次用/向下搜索:按n继续向下搜索;上次用?向上搜索,按n继续向上搜索

N:反向重复前一个搜索(与/或?有关)。上次用/向下搜索:按n继续向上搜索;上次用?向上搜索,按n继续向下搜索

相关推荐
爱签AI电子合同3 分钟前
电子合同上手成本怎么测?易用性维度专项测评
服务器·人工智能·智能合约·企业微信
aixingkong9213 小时前
Nvidia为例 XPU的Multi-Host、Socket Direct 、GPUDirect、RDMA 技术点分析
服务器·网络·硬件架构·硬件工程
雯宝5 小时前
mnt_init 函数
linux
律宏阔11 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔11 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴11 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
乱码三千11 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei3711 小时前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei3711 小时前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
yunwei3711 小时前
eBPF 示例教程:使用 XDP 捕获 TCP 信息
linux·后端·性能优化