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继续向下搜索

相关推荐
nVisual1 小时前
01-环境监控集成方案
运维·服务器·开发语言·网络·数据库·数据中心布线·综合布线管理软件
早点睡啊Y1 小时前
精读 LangChain 官方文档(三):
服务器·数据库·langchain
fanstuck7 小时前
1M 上下文能怎么用?我用 Seed Evolving 做了一个招标文件版本差异审查器
服务器·人工智能·数据分析·开源·aigc
北龙云海10 小时前
案例分享 | 面向公网业务系统境内访问白名单配置实操方案
运维·网络·安全·网络安全·告警·数据泄露·入侵攻击
FoldWinCard11 小时前
D5 Linux 网络及端口命令
linux·运维·服务器
kirs_ur12 小时前
SSD 在 AI 训练中的角色
大数据·服务器·人工智能
零涂毕业设计12 小时前
毕业设计模块开发-OLED显示屏(IIC协议0.96寸)STM32 ESP32 FPGA Linux驱动免费分享
linux·stm32·单片机·嵌入式·esp32·fpga·oled
tedcloud12312 小时前
OmniRoute怎么部署?开源AI模型路由平台Linux部署教程
linux·服务器·人工智能·开源·音视频
霸道流氓气质12 小时前
KMS 密钥管理服务(Key Management Service)原理与实践
linux·服务器·数据库