Linux
指令基础
常用快捷键
Ctrl + Alt + T
:打开新的
Linux
终端(命令行窗口)
Ctrl + shift + +
:对
Linux
终端的显示字体进行放大。
Ctrl + -
:对
Linux
终端的显示字体进行缩小。
Ctrl + L
:清理
Linux
终端屏幕上的内容,会保留之前的内容(本质上是翻到新的一页)
Ctrl + S
:对
Linux
终端上的内容进行锁定,此时无法对终端进行操作。
Ctrl + Q
:对
Linux
终端进行解除锁定。
终端指令入门
st@st-virtual-machine:~$
:
st
:当前登录的用户名,这个用户名一般是安装系统的时候设置。
@
:没有意义,作为分隔符
st-virtual-machine
:主机名,安装时候设置的。
~
:当前登录用户的家目录:(
/home/st
)
$
:用来区分当前登录的用户的角色
:
$
:表示当前登录的是普通用户
#
:表示当前登录的是
ROOT
用户(管理员,超级用户,
ROOT
一般是
Linux
自带的)
倒装树结构中的目录

/
:
根目录,
Linux
的绝对路径由
/
开始
/bin:
主要存放系统普通指令
/boot:
主要存放系统的引导程序
/dev
:
存放硬件设备对应的文件
/etc
:
存放系统和应用程序的配置文件
(profile)
/home
:
家目录,存放当前系统下所有用户对应的目录
/lib
:
存放系统和应用的依赖库
/proc:
存放系统运行时的运行信息
/usr
:
默认安装路径
/var:
存放缓存,备份文件
/cdrom:
光驱
/mnt
:
用于系统文件系统的挂在目录
(/mnt/hgfs/
挂载共享目录
)
/sbin:
用于存放特权指令
路径
绝对路径:以根路径
(
/
)
为参考点描述的路径,称之为绝对路径

相对路径:以当前目录
(
./
)
为参考点的路径,称为相对路径
cd /home --绝对路径
cd ./st --相对路径
cd st --相对路径
Linux
系统文件类型

d
:
目录
(
文件夹
)
-
:
普通文件
l
:
文件快捷方式
c:
字符设备文件
b:
块设备文件
(
大容量磁盘
)
s:
表示套接字文件
p:
表示管道文件
目录操作
指令
语法:
指令 [选项] [操作的文件或目录]
注意:语法中加入
[]
,
就代表内容可选。
pwd
说明
:
查看当前所在目录的绝对路径
执行者
:
所有用户

ls
说明
:
显示指定路径(默认是当前路径)下的文件或者目录。
执行者:所有用户

常用选项
-a:
显示所有文件或目录(包含隐藏文件或目录,
linux
中的隐藏目录或者文件一般以
.
开
头,
如:
.vimrc
)

-l
:
显示所有的文件或目录的详细列表(默认不含隐藏文件或目录)

-r
:
将文件以相反次序显示(默认依照英文字母次序显示)【名称】

t
:
将文件以创建时间的先后次序显示【时间】

说明:
多个参数可以共同出现,如:
ls -l -r -t -a 等价于
ls -ltra
//显示所有文件和目录,以列表形式按照时间倒序排序
注意:
我们也可以指定具体的目录进行访问,如:
ls/mnt/hgfs/linux //指具体访问路径
cd:
说明
:
切换目录
执行者:所有用户
语法:
cd 目录
常用写法
:
①
cd ~
:切换到当前登录的家目录下的用户目录,比如:
cd ~
,就会切换到
/home/st
下,
等
价于
cd /home/st
②
cd -
:返回上一次操作的工作目录(类似于
windows
中的返回上一步)
cd /home/st
cd /mnt/hgfs
cd -
结果:回到 /home/st
③
cd /
:切换到根目录下
④
cd ./
:切换到当前目录下
⑤
cd ../
:切换到上一级目录,等价于
cd ..
cd /home/st
cd /mnt/hgfs
cd ../
结果:回到 /mnt
⑥
cd ../../
:切换到上上一级目录,等价于
cd ../..
mkdir:
说明:创建空目录
执行者
:
所有用户
用法:
mkdir 文件夹路径 //创建一个空目录
mkdir 文件夹路径列表 //创建多个空目录
举例:

备注
:mkdir
支持批量创建多个空目录
选项
:
-p
:
可以创建多层目录
(
嵌套目录
)
语法
:
mkdir -p 文件夹多层路径 ///最外层文件夹路径可以指定
举例
:

rmdir:
说明
:
删除空目录
(
仅限于删除空目录
)
语法
:
rmdir 空目录路径
rmdir * ///删除当前路径下所有空目录
备注
:
支持批量删除空目录
举例
:

(
删除单个空目录
)

(
删除该路径下所有空目录
)

(
删除当前路径下以
ad/bd
开头的所有空目录
)
touch:
说明:创建新文件
执行者:所有用户
语法:
touch 文件路径 ///文件路径是可以指定的,默认为当前路径
(在当前路径创建单文件)
(
指定路径并批量创建文件
)
rm:
说明
:
删除目录:需借助选项
-r
递归删除,目录可以说空目录或非空目录。
删除文件:无需借助选项
-r
,不过加了
-r
也不影响。

举例:

(
删除单个文件
)

(
删除单个文件或删除目录,删除目录需要加
-r
,删除文件是否有
-r
不影响
)

(
交互式删除加
-i
,没词查询或删除时需手动确认:
输入
y/n)

(
删除也支持通配符
)
说明
:
删除文件只需直接删除,目录删除或目录
+
文件删除,需要使用选项
-r
进行递归删除。
cp:
说明
:
复制文件或目录(相当于拷贝
+
粘贴)
实现文件或目录的重命名
执行者:所有用户
语法:
cp [选项] 被复制的目录或文件路径 目的地地址
选项
:
-r
:
递归复制,复制目录中的所有
-i
:
如果目的地路径下已经存在同名目录或者文件,会交互提示
(y
:完成替换,
n
:取消
拷贝
)
举例:

(
讲一个文件拷贝到一个目录中,支持将文件拷贝到指定目录
)

(
交互式操作,将一个文件或目录拷贝到指定目录
)

(
将多个文件或目录拷贝到指定目录
)

(
在拷贝的过程中对文件重命名,注意:不能将一个文件拷贝至另一个文件中)
mv:
说明:移动文件夹或者目录
(
相当于剪切
+
粘贴
)
重命名文件夹或目录
执行者:所有用户
语法:
mv [选项] 被移动的目录或文件路径 目的地地址
注意:
被移动文件名与目的地文件名不一致,就相当于重命名了
举例:
mv aa.txt /b ///将文件aa.txt移动到/b目录下
mv aa.txt /b/bb.txt ///将文件aa.txt移动到/b目录下并重命名为bb.txt
mv aa.txt bb.txt ///重命名,将同一路径下的aa.txt重命名为bb.txt
mv aa.txt /b/cc.txt ///移动+重命名
cp -r aa.txt /b/cc.txt ///拷贝+重命名
文件操作
cat
说明:查看文件内容
执行者:所有用户
语法:
cat [选项] 文件路径
选项:
-n
:显示行号
举例:
cat /proc/cpuinfo
cat -n /proc/cpuinfo
more:
说明:分页查看文件内容
执行者:所有用户
语法:
more 文件路径
操作:
空格键 :向下翻一页
回车键 :向下翻一行
Q/q
键 :退出查看
范例:
more proc/cpuinfo
less:
说明:分页查看文件内容
执行者:所有用户
语法:
less [选项] 文件路径
选项:
-m
:
显示当前行的范围
操作:
空格键 :向下翻一页
B/b
键 :向上翻一页
方向上下键 :向上向下翻一行
Q/q
键 :退出
范例:
less -m /proc/cpuinfo
head:
说明:查看文件头部内容
(
默认十行
)
语法:
head [选项] 文件路径
选项:
-n
:
从头部开始显示
n
行内容
(
识别换行符
)
范例:
head -n 5 /proc/cpuinfo 等价于
head -5 /proc/cpuinfo
tail:
说明:查看文件尾部内容
(
默认十行
)
语法:
tail [选项] 文件路径
选项:
-n
:
从尾部开始显示
n
行内容
(
识别换行符
)
范例:
tail -n 5 /proc/cpuinfo 等价于
tail -5 /proc/cpuinfo
grep:
说明:搜索文件内容,在文件中查找指定的字符序列
(
字符串
)
语法:
grep [选项] 要查找的字符序列 文件路径 等价于
grep [选项] '要查找的字符序列' 文件路径 推荐
选项:
-n
:
显示行号
-c
:
统计搜索到的行的数量
-i
:
忽略大小写搜索,主要针对英文
范例:
grep -ni apicid /proc/cpuinfo 显示行号和忽略大小写,在文件cpuinfo中查找
apicid 等价于
grep -ni 'apicid' /proc/cpuinfo 推荐
grep -c 'apicid' /proc/cpuinfo 显示搜索到的数量,和-n不能混合使用,因为两者
冲突
特殊匹配:
^
:
行首匹配:匹配以什么开头的
范例:
grep -ni '^cp' /proc/cpuinfo 匹配以cp开头的字符序列
&
:
行尾匹配:匹配以什么结尾的
范例:
grep -ni '[0-9]&' /proc/cpuinfo 匹配以0-9任意单个数字结尾的字符序列
find:
说明:查找文件或目录
(
递归查找
)
,从磁盘查找,精确性高,性能低
执行者:所有用户
语法:
find 检索路径 [选项] 参数
选项:
-name
:
按照名称查找
(
默认区分大小写
)
-iname
:
对英文名称忽略大小写查找
-size
:
按照文件大小搜索,默认一个单位
(
注:一个单位
=512
字节
)
-type
:
按照文件类型查找
(d,f,l,p...)
范例:
find ./ -iname test.c 在当前路径下包括其子目录中查找文件名为test.c的文件,文
件名忽略大小写
find ./ -size + 3M 在当前路径下包括其子目录中查找文件大小超过3M的文件,这
里“+”表示超过,(1024 * 1024 * 3)
find ./ -size - 3M 在当前路径下包括其子目录中查找文件大小不超过3M的文件,查
立“-”表示不超过,(1024 * 1024 * 3)
find ./ -size + 3 在当前路径下包括起子目录中查找文件大小超过3个单位的文
件,这里“+”表示超
过,(512 * 3)
locate:
说明:从数据库快速查找文件或目录,准确性滴,性能高
说明:该指令是从文件系统的数据库中查找,新创建的文件还没有在数据库中建立索引,用该
指令
是找不到的。
执行者:所有用户
语法:
locate [选项] 文件或目录
选项:
-c
:
统计文件个数,返回的是一串数字
-i
:
忽略大小写
范例:
sudo undatedb 首先将文件信息更新到数据库
locate -c test.c 从数据库获取所有文件
注意:默认情况下
updatedb
每天更新一次,我们可以手动更新,指令:
[sudo] updatedb
which:
说明:快速检索指令的位置
执行者:所有用户
语法:
which 指令名
范例:
which ls
echo:
说明:将指定字符串输出到设备上
执行者:所有用户
语法:
echo > | >> 文件路径
范例:
echo "yq is good!" > yq.txt
echo "yq is good!" >> yq.txt
范例:

|(
管道
)
:
说明:将前一个指令执行的结果作为后一个指令执行的条件(了解)
执行权限:所有用户
范例:
ls -l | grep ".txt$" // 以详细列表的形式显示文件名称为.txt结尾的文件
find /dev -type c | grep "2$" // 查找/dev下文件类型为c的以2结尾的所有文件
计算机单位转换:
1Byte
(字节)
= 8Bit
(位)
1KB = 1024Byte
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
...