作者:MiTu_-_
本帖内容著作权归作者所有,转载请务必保留本文链接
1.实用小技巧
1)Tab :自动补全文件名称。
2)↑ ↓ :调出上一次输入的指令。
3)Ctrl + Space :切换输入法。
4)Ctrl + c :终止正在运行的程序。
5)Ctrl + Insert :复制。Shift + Insert :粘贴。
6)* :通配符。表示匹配 0 个或多个字符,相当于全部。在查找文件时会很方便。(在 * 号前面加 \ 来转义)
2. 运行级别
2.1)运行级别
- 0:关机
- 1:单用户(多用来找回丢失密码)
- 2:多用户无网络服务
- 3:多用户有网络服务,命令行界面(程序猿)
- 4:系统未使用保留给客户
- 5:图形界面(普通用户)
- 6:系统重启
常用的运行级别是 3(命令行界面) 和 5(图形界面)。
init :临时切换到指定级别。
init 指定级别
例:init 2
如果想了解 CentOS 6 和 CentOS 7 运行级别的差别 和 运行级别具体的内容,可以参考此贴:
CentOS 6 和 CentOS 7 运行级别的差别
2.2)忘了 root 密码?
此时我们可以切换到 1 运行级别,也就是单用户模式。因为是单用户,所以不需要密码。进去之后就可以修改你的 root 密码了。具体内容可以参考此贴:
忘了 root 密码?教你分分钟修改 root 密码!(包含 CentOS 6 和 CentOS 7)
3. 帮助指令
当我们对某个指令不熟悉时,我们可以使用 Linux 提供的帮助指令来了解这个指令的使用方法。
1)main (manual):查看手册。按 q 可以退出。
man 指令
例:man ls
2)help :获得 shell 内置命令的帮助信息。
help 指令
例:help cd
help 是内部命令的帮助,比如 cd;man 是外部命令的帮助,比如 ls。哪个用不了就用另一个指令。
我还是建议不懂的命令直接度娘。
4. 文件目录类
文件目录类指令是最多的指令,所以用的也比较多,必须要掌握。以下使用语法中,“ [ ] ” 表示可选项,可以有,也可以没有。
1)pwd (print woking dictionary):显示当前工作目录的绝对路径。
可以点击此链接查看:Linux 的目录结构
pwd
2)ls :显示当前目录信息。
ls [选项] [目录或文件]
常用选项:
-a :显示当前目录所有文件和目录,包括隐藏的。
-l :以列表的方式显示信息(也可以组合 -la / -al 使用)。
例:ls -l
ll :以列表方式显示当前目录详细信息。(相当于 ls -l 的简写)
如果想了解 ll 指令执行结果后各个参数(文件属性)的含义,可以跳转此贴:一张图让你明晰 ls -l / ll 执行结果各参数含义。
3)cd :切换到指定目录。可用绝对路径和相对路径。(斜杠在前表示绝对路径,没有斜杠表示相对路径;斜杠在后表示某文件夹下的一个文件。后面的 / 是可以省略的。注意:在某些情况下,后面加 / 可能会造成部分命令不能使用,如 rm)
cd [参数]
例:cd /home
常用参数:
cd ~ (注意有空格)/ cd:回到家目录。root的家目录是 /root,其他的用户一般是在 home 里自己的家目录如 /home/user。
cd . . (注意有空格):回到上一级。
例:假如你此时在 root 目录下。cd . ./home
4)mkdir(make directory):创建目录 / 文件夹。(默认只能创建一个目录,可用 -p 创建多级)
mkdir [选项] 要创建的目录
例:mkdir /home/1
常用选项
-p:创建多级目录
例:mkdir -p /home/2/2.1
5)rmdir(remove directory):删除空目录 。
rmdir [选项] 要删除的空目录
例:rmdir /home/1
6)touch:创建空文件,可以创建多个文件(注意不是文件夹)。和 vim 不同的是,vim 需要 wq 退出保存后才能创建文件。
touch 文件名
例:touch 1.txt 2.txt
7)cp:拷贝文件到指定目录。(一定要注意你当前目录位置!一定要记住之前讲的目录树结构!)
cp [选项] 原文件 目标地址
例:cp 1.txt 2
常用选项
-r:递归复制整个文件夹。
例:cp -r 1 2(假设 1 下面有很多文件。如果是覆盖拷贝,可用 \cp xxx 强制覆盖)
8)rm:移除文件或目录。
rm [选项] 要删除的文件或目录
例:
常用选项
-r(recursive):递归删除整个文件夹。
-f(force):强制删除不提示。(也可以组合 -rf / -fr 使用)。
rm -rf
rm -rf 要删除的目录
例:rm -rf /home/2
rm -rf /* 这就是大名鼎鼎的 从删库到跑路 的命令了。 /* 指的是 根目录“ / ”下的所有文件。
慎用 rm -rf 指令。一般公司如果要删除文件,需要mv文件到指定目录/delete/,会有一个定时任务,每周清空/delete/下文件。
9)mv:移动文件与目录 和 重命名。
重命名:mv 原文件名 目标文件名(从相对路径来看,重命名实际上就是把当前位置的原文件移动到当前位置的目标文件,并改名字。前提:目标位置不含相同的重命名名称)
例:mv 1.txt 2.txt
移动文件不改名:mv 原文件 目标位置
例:mv 1.txt /root
移动文件改名:mv 原文件 目标位置+目标文件名(目标位置不含相同的重命名名称)
例:mv 1.txt /root/2.txt
10)cat:查看文件内容。(只读方式,可以追加文件)
cat [选项] 要查看的文件
常用选项
-n:显示行号。
| more(在结尾加):分页显示文件内容。| 是管道符, more 代表分页显示。(“ 回车 ”是下一行;“ 空格 ”是下一页;“ q ”是退出;具体快捷键在下面。)
例:cat -n /etc/profile | more or more /etc/profile
11)more:分页查看文件内容。more 指令是基于 vi 编辑器的文本过滤器,它以全屏的方式按页显示文本文件内容,其中内置了若干快捷键,如下所示:
more 要查看的文件
例:more /etc/profile
操作 | 功能说明 |
---|---|
空格键【Space】 | 向下翻一页 |
回车键【Enter】 | 向下翻一行 |
q | 离开more,不显示文本内容 |
Ctrl + f(forward) | 向下翻一页 |
Ctrl + b(backword) | 向上翻一页 |
= | 输出当前行号 |
:f | 输出文件名和当前行号 |
12)less:分屏查看文件内容。它与 more 相似,但比 more 更强大,支持各种终端。less 指令在显示文件时,并不是一次将整个文件加载完后才显示,而是根据显示需要加载相应内容。对于显示大型文件具有很高的效率。其中内置了若干快捷键,如下所示:
less 要查看的文件
操作 | 功能说明 |
---|---|
空格键【Space】 | 向下翻一页 |
【Pagedown】 | 向下翻一页 |
【Pageup】 | 向上翻一页 |
/字串 | 向下搜寻【字串】:n:向下查找;N:向上查找 |
?字串 | 向上搜寻【字串】:n:向下查找;N:向上查找 |
q | 离开 less,不显示文本内容 |
13)> 和 >>:> 输出重定向(覆盖)和 >> 追加(在文末追加)。
例:
cal > 1.txt 将日历写入文件 1.txt(覆盖写)
ll >> 1.txt 将 ll 指令列出的内容在文件1.txt 文末追加。(不覆盖写)
cat 1.txt > 2.txt 将 1.txt 的内容覆盖到 2.txt 中
echo “hello” >> 1.txt 将 hello 追加到 1.txt 文末
14)echo:输出内容到控制台。
echo [选项] [输出内容]
例:echo $PATH 输出当前的环境变量
echo “hello” 输出 hello
15)head:显示文件开头部分的内容,默认情况下 head 指令显示文件的前 10行内容。
head 文件名 显示前 10行
head -n 5 文件名 显示前 5行
tail:显示文件末尾部分的内容,默认情况下 tail 指令显示文件的末尾 10行内容。按 Ctrl + c 可以退出。
tail 文件名 显示后 10行
tail -n 5 文件名 显示后 5行
tail -f 文件名 查看日志文件,可动态监控数据的变化,工作中经常使用。cat 指令是静态查看文件。
16)ln:软连接也叫符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径。
ln -s [源文件目录] [软链接名称](源文件路径可以用 相对路径 或 绝对路径)
例:ln -s /root Linktoroot 创建一个到 /root 目录,名为 Linktoroot 的软链接。
使用 rm or rm -f 来删除软链接(软链接后面加 /,会删不掉)小心误删 root (✪ω✪)
17)history:查看已执行过的历史指令,也可以执行历史指令。
history [n](n为查看 n 条指令)
!n:执行历史中的第 n 条指令。
history-c:删除历史指令。
5. 时间日期类
1)date:显示当前日期;设置时间。
date 显示当前详细时间
date “+%Y” 显示年
date “+%m” 显示月
date “+%d” 显示日
date “+%Y-%m-%d %H:%:M:%S” 显示年月日时分秒(中间的连接符可以随意写,也可以写汉字)
设置时间
date -s “”xxxx-xx-xx xx:xx:xx“”
2)cal(calender):显示日历时间。
cal [选项]
例:cal 2020 显示 2020年 所有日历
6. 搜索查找类
1)find:从指定目录向下递归地遍历其各个子目录,将满足的文件或者目录显示在终端。
find [搜索范围] [选项]
例:find /home -name \ *.txt 查找 home 目录下的 .txt 文件。
find /opt -user 1 查找 opt 目录下用户名为 1 的文件
find / -size +20M 查找根目录下大于 20MB 的文件(不带单位默认为 k)
常用选项
-name <查询方式> 按照指定文件名查找文件。
-user <用户名> 查找属于指定用户名的所有文件。
-size <文件大小> 按照指定的文件大小查找文件。(+n 大于 -n 小于 n 等于)
2)locate:快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库(/var/lib/mlocate/mlocate.d)实现快速定位给定的文件。locate 指令无需遍历整个文件系统,查询速度较快,为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。locate 查询是模糊查询, 比如你查询a.txt,ga.txt也是会被搜索到的(注:CentOS 7 提示没有这个命令的请执行 yum install mlocate 安装 locate 相关文件)
由于 locate 指令基于数据库查询,所以第一次运行前,必须用 updatedb 指令创建 locate 数据库。
updatedb
locate 搜索文件
例:locate 1.txt
3)grep 和 管道符号 |:grep 过滤查找,管道符 “|”,表示将前一个命令的处理结果输出传递给后面的命令处理。grep 常和 | 连用。
grep [选项] 查找内容 源文件
例:cat 1.txt | grep -n nihao
常用选项
-n:显示匹配行及行号。
-i:忽略字母大小写。
7. 压缩和解压缩
1)gzip / gunzip:gzip 用于压缩文件,gunzip 用于解压。压缩完后,不保留原文件。不常用。
gzip 文件名 (只能压缩为 *.gz 文件)
gunzip 文件名 (解压缩)
例:gzip 1.txt
gunzip 1.txt.gz
2)zip / unzip:zip 用于压缩文件,unzip用于解压。保留原文件。工作中比较常用。(没有此功能的,先 yum -y install zip 然后 yum -y install unzip)
zip [选项] xxx.zip 压缩内容(压缩文件或目录)
unzip [选项] xxx.zip(解压缩)
例:zip -r mypackage.zip /home 将目录 home 下的所有文件压缩成 mypackage.zip
unzip -d /opt/tmp/ mypackage.zip 将 mypackage.zip 解压到 /opt/tmp 目录下。
zip 常用选项
-r:递归压缩,即压缩目录。
unzip 常用选项
-d:指定压缩后文件的存放目录。
3)tar:打包指令。最后打包后的文件是 .tar.gz 的文件。
tar [选项] xxx.tar.gz 打包的内容
常用选项
-c:产生 .tar 打包文件。
-v:显示详细信息。
-f:指定压缩后的文件名。
-z:打包同时压缩。
-x:解包 .tar 文件。(压缩常用 -zcvf,解压常用 -zxvf,解压的时候会自动判断格式,所以 z 可以不写直接 tar -xvf,不想看过程可以省略 v)
例:
压缩:tar -zcvf a.tar.gz 1.txt 2.txt 将1.txt 2.txt 打包成 a.tar.gz
解压:tar -zxvf a.tar.gz(不指定目录)
tar -zxvf a.tar.gz -C /root(C 表示 change,改变目录。)(指定目录)
欢迎各位客官订阅我的 Linux 系列笔记