Linux常见指令合集+知识点
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指令
例如下图:

语法: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 | 保存当前文件并退出(其后可加上!强制保存退出) |
完