Linux常见指令合集+知识点

发布于:2025-05-25 ⋅ 阅读:(18) ⋅ 点赞:(0)

Linux有一条设计理念:Linux中一切皆文件;这样的设计理念让Linux可以用一种统一的方式对Linux中的不同文件/设备进行管理;(也就是键盘、显示器等在Linux中也算文件)

文件=内容+属性,指令一般都是对文件进行操作所以文件操作也分为:

1.文件内容操作   2.文件属性操作

以下指令功能说明中的目录就代表文件夹的意思,[选项]就是在原指令的基础上扩展了一些功能

01. pwd指令

语法:直接pwd

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

结果显示的/root/study中的'/'是路径分隔符

路径分隔符号:

a. 每个路径分隔符号之间一定是一个目录(文件夹)

b. 末端文件可能是一个目录或者普通文件

注意:Linux 路径分隔符' / 'windows下的路径分隔符是反斜杠' \ ',上面的/root/study就是一个路径,在系统中查找某个文件的位置时我们也是使用路径进行查找因为路径具有唯一性(每个文件都只会有一个父目录)


02. ls指令

语法:ls [选项][目录文件]

功能:如果是目录,该命令列出该目录下的所有子目录与文件。如果是文件,该命令将列出文件名和文件信息

直接在当前目录下使用可以不加[目录文件]

显示的内容:蓝色的是目录,白色的是文件

常用选项:

  • -a:列出目录下的所有文件,包括以蓝色点 . 开头的隐藏文件

一个 表示当前目录 ,两个. . 表示上一级目录

所以平时看到指令中出现 . 就表示当前路径下,. . 就表示上级路径

  • -l(小写的L):列出文件的详细信息

详细信息中以d开头的是目录,以 - 开头的是普通文件(文本文件、二进制可执行文件、图片等)

其实ls -l 还可以简写成 ll 即两个小写的L ,效果和使用 ls -l 一样

  • -a 和 -l 可以组合使用,-al 功能:显示该目录下的包含隐藏文件在内的所有内容的详细信息展示

-al和-la都可以,顺序不强制要求,功能是一样的

-d:将目录像文件一样展示信息,而不是展开显示目录中的文件。如:ls -d [指定目录]

显示的内容为蓝色,说明其属性是一个目录

-d 和 -l 一起使用,-ld:显示该目录的详细属性


03. cd指令

Linux系统中,磁盘上的文件和目录被组成一棵 目录树 每个节点都是目录或文件
也就是说Linux系统的目录结构是一颗多叉树

例如下图: 


 语法:cd [目录]

功能:进入到某个目录

举例:

  • cd .. : 返回上级目录
  • cd /root/study/linux/ : 通过绝对路径进入目录
  • cd ../day02/ : 通过相对路径进入目录
  • cd ~:进入用户家目录
  • cd -:返回最近一次访问的目录,可实现两个目录的来回切换

绝对路径:从根目录开始到所找文件/目录的完整路径

相对路径:以当前目录为参照点,查找目标文件的路径

无论是相对路径还是绝对路径都是唯一的

举例:假设现在有一个study目录结构如下:

study目录下有两个目录 ml 和 study_in ,以及一个文件test.txt,目录ml里有一个文件m.txt

查找目标文件m.txt

绝对路径:/root/study/ml/m.txt

相对路径(假设现在在study_in目录下):../ml/m.txt

..表示上一级目录,通过..进入到上一级目录,再从上一级目录进入到ml目录获取到m.txt文件


什么是家目录?:任何一个用户首次登录,所处的路径就是自己的家目录,也就是当你一登上,直接使用pwd命令出现的目录就是你的家目录,比如我是root用户家目录就是/root

我的系统上的一个普通用户的家目录:

在Linux下,root账号也就是超级管理员账号的默认家目录就是/root,普通用户的默认家目录就是/home/XXX,XXX为用户名,

为什么会有不同的用户呢?因为Linux是一个多用户操作系统,windows其实也是,当你登录windows时,先确认你是谁,再根据用户名,找到该用户目录下的"桌面文件夹",最后将桌面文件夹显示为图形化界面

在 Linux中使用 whoami 命令可以知道当前正在使用的用户:

是root账户就会显示root

是普通用户就会显示用户名:


04. touch指令

语法:touch [文件名](加后缀)

功能:创建文件

使用touch创建tmp.c文件,ls查看该目录发现多了新文件tmp.c


05. mkdir指令(重要)

语法:mkdir [选项] dirname

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

创建一个叫做w的目录 

常用选项:

  • -p:递归建立多个目录

创建a目录的同时在a目录内创建b目录再在b目录下创建c目录,使用tree命令就可以树状显示打印目录结构,如果无法运行可以执行 yum install -y tree 语句进行安装,就可以使用tree命令了,使用方式:tree [指定目录] ,以树形结构展示文件和目录结构


06. rmdir指令和rm指令(重要)(删除命令)

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

语法:rmdir [选项] [dirame]

功能:删除名为dirame的空目录

ls查看删除了之前创建空目录w

常用选项:

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

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

语法:rm [选项][目录/文件]

功能:删除目录或文件

常用选项:

  • -f:即使文件属性为只读,亦直接删除,可理解为强制删除,系统不会询问确认
  • -i:删除前逐一询问确认
  • -r:删除目录及其下所有文件,递归删除,用于删除目录

 正常删除普通文件:

强制删除,不询问确认,直接删除:

 如果删除目录,必须有-r,可在-r的基础上添加选项增加功能

rm -rf [目录名] = 强制删除目录不询问确认

rm -ri [目录名] = 递归删除目录中的内容前逐一询问是否删除


 07. man指令(重要):

Linux的命令有很多参数,我们不可能全记住,但可以使用man命令访问Linux手册页,就像是存在于Linux中的一个可以随时帮助你的男人

语法:man [选项] 命令

常用选项:

  • -k:根据关键字搜索链接帮助
  • num:只在第num章节找
  • -a:将所有章节的都显示出来,比如 man printf 它默认从第一章开始搜索,找到就停止,用a选项,当按下q退出,他会继续往后面搜索,知道所有章节都搜索完毕

解释一下,man手册分为8章

使用man man命令就可以查看手册的内容

1 是普通的命令

2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)[最重要查2号手册]

3 是库函数,如printf,fread

4 是特殊文件,也就是/dev下的各种设备文件

5 配置文件或者是某些文件的格式,如/etc/passwd

6 是给游戏留的,由各个游戏自己定义

7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明

8 系统管理员可用的管理命令,这些命令只能由root使用,如ifconfig

9 跟kernel有关的文件


输入 man+数字+命令/函数 即可以查到相关的命令和函数。若不加数字,那Linux man命令默认从数字较小的手册中寻找相关命令和函数。例如:我们输入 man ls,它会在左上角显示“LS(1)”,在这里,“LS”表示手册名称,而“(1)”表示该手册位于第一节章,同样,我们输入“man ifconfig”它会在左上角显示“IFCONFIG(8)”。

所以当你明确自己要查找的内容应该在哪个章节时,最好使用命令:man [章节号] 命令/函数


08. cp指令(重要)

语法:cp [选项] [源文件或目录] [目标文件或目录]

功能:复制文件或目录,且可以复制同时进行重命名

常用选项:

  • -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
  • -i 或 --interactive 覆盖文件之前先询问用户
  • -r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
  • -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

示例:将m.txt文件复制到study_in目录中,使用相对路径复制,cp [文件] [目录]

如果使用 cp [文件] [文件] 就是将前一个文件的内容复制覆盖后一个文件的内容

cp -r [目录] [目录] 就是将前一个目录复制一份到后一个目录下,如果被复制的目录下有内容的话要加 -r,表示递归复制,且这里的目录可以用相对路径表示也可以用绝对路径表示


09. cat指令

语法:cat [选项] [文件]
功能: 查看目标文件的内容
常用选项
  • -b 对非空输出行编号
  • -n 对输出的所有行编号
  • -s 不输出多行空行

普通查看: cat 文件名

 

打印行号查看:cat -n 文件名

补充:cat指令倒过来的tac指令的功能就是让内容倒着打印显示


10. mv指令(重要)

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录

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

功能:

1. 根据 mv 命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中

2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名

3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中,相当于平时用的剪切的功能

常用选项

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖

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

示例:文件重命名 mv  [文件] [文件] ,使用mv将 one.txt 文件重命名为 two.txt

 

 文件移动:将two.txt移动到 tmp 目录下

 不仅要移动文件还要重命名的情况:mv src path/newname

将demo.c文件移动到tmp文件夹并改名demo2.c 


重新认识指令

现在已经基本知道了常规的一些文件操作指令,那么到底什么是指令呢?

指令的本质其实都是程序——指令、程序、可执行程序都是一回事   指令就是程序

又因为在Linux下一切皆文件,也可以说大部分指令就是文件(有些文件不在磁盘上)

安装和卸载其实就是把可执行程序拷贝/删除到系统路径,使用 which+指令 就可以看到该指令在系统中的所在路径

比如常用的ls指令就在/usr/bin/ls路径下

alias指令

alias也是Linux一个命令,功能是给其他命令起一个别名!别名就相当于该命令的一个外号

比如我可以给 ls -al命令取一个别名lsal,那么使用lsal就可以得到和ls -al一样的效果


编辑文件内容指令:

nano指令:

语法:nano [文件]

功能:编辑文件内容

进入后可直接在内容编辑区进行编辑,下方的^G、^X等是操作提示,其后跟着的单词表示该按键代表的功能,比如^X就表示同时按下Ctrl+X就可以退出编辑界面,编辑完毕后,退出界面会询问你是否保存文件内容,按照提示给出回复即可

按下Ctrl+G可以进入帮助页面有更多的指令提示,可根据指令提示及进行操作


vim指令:

语法:vim [文件]

功能:编辑文件内容

进入后默认为命令模式,在此模式中,可输入 Vim 命令,让 Vim 完成不同的工作,比如按下键盘上的 "i" 就会进入编辑(insert)即可开始对文件内容进行编辑

修改完毕按下Esc退出编辑模式,返回命令模式,vim命令较多,需要可网上直查,这里不一一罗列,最后还有一种模式,末行模式,在命令模式下按下冒号 ":" 字符 再在 : 后跟命令,此模式主要用来进行文字编辑辅助功能,常用的有:

操作 说明
:w 保存当前文件
:q 结束vim(退出不保存)
:wq 保存当前文件并退出(其后可加上!强制保存退出)


网站公告

今日签到

点亮在社区的每一天
去签到