Linux Shell 常用命令
Linux Shell 简介
linux shell 指的是一种程序,有了它,用户就能通过键盘输入指令来操作计算机了。Shell 会执行用户输入的命令,并且在显示器上显示执行结果。
学习Linux ,至少要掌握一些基础知识和基本的命令。
Shell命令的基本规则
一般格式
Shell 命令的一般格式如下:
命令名 【选项】 【参数1】 【参数2】
【选项】是对命令的特别定义,以(-)开始
【参数】 提供命令行的信息,或者是命令执行过程中使用的文件名。
命令补全
在输入命令的任何时刻,可以按键系统将试图补全命输入的命令。
帮助
可以通过 【man】命令名 格式来查看任何命令的联机帮助信息
也可以通过命令名 --help 显示帮助信息。
常用的Shell命令
一、查看当前目录相对于根目录的命令
pwd
二、查看当前目录内容
ls
显示目录所有内容包括隐藏文件
ls -a
以长格式的形式显示
ls -l
显示文件大小
ls -h
依据修改时间排序
ls -t
三、改变当前目录
cd
转移到上一级命令
cd …
转移到root 目录
cd ~
四、创建目录
mkdir [新目录名]
递归创建目录
例:
mkdir -p /var/ftp
五、删除目录
rm 【文件名】
不需要确认删除多个文件
rm -f 【带通配符的文件名】
rm -rf 【递归删除目录】
例:
rm -rf /usr/local/team
六、建立链接
ln 【源文件名】【目标文件名】
七、 移动命令
mv 【源文件或文件夹名】【目标名】
例:
mv /export/tests/c.txt /export/server/
mv /export/test /export/server
八、文件查找
find
find查找命令是Linux系统中最重要和最常用的命令之一。
find命令格式
find (选项)(参数) || find pathname -options [-print -exec …]
pathname: find命令所查找的目录路径。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的命令。相应命令的形式为’command’ { } ;
搜索条件
1. 根据文件名查找
参数
-name 区分大小写
-iname 不区分字母大小写
-path 匹配某个文件或目录的完整路径,而不仅仅是匹配文件名
例:
find / -name “*.txt”
2. 根据文件类型查找
-type
f:普通文件
d:目录文件
l:符号链接文件
s:套接字文件
b:块设备文件
c:字符设备文件
p:管道文件
例:
find / -type d -name “python”
3. 根据文件大小来查找
-size 【+|-】#Unit
Unit 通常为K,M,G
+、- 表示大于或小于当前条件
例:
find /export/log -size +100M
4. 根据时间戳查找
Linux 系统中,与文件相关联的时间参数有以下三种:
修改时间(Modification time):最后一次文件内容有过更改的时间点
访问时间(Access time):最后一次文件有被读取过的时间点
变更时间(Change time):最后一次文件有被变更过的时间点(如内容被修改,或权限等 metadata 被修改)
与此对应的是 find 命令中的 -mtime,-atime 和 -ctime 三个选项
以"天"为单位
-atime [+|-]#
#: [#,#+1) : 这里的#表示#天之前的“一天之内”被访问过的文件
+#: [#+1,OO]: 列出在#天之前(不包含#天本身)被访问过的文件
-#: [0,#) : 列出在#天之内(包含#天本身)被访问过的文件
-mtime [+|-]
-ctime [+|-]
以"分钟"为单位
-amin
-mmin
-cmin
例1:查找两天之前的一天内被访问的文件(距离现在的前48 ~ 72 小时之间)
find -atime 2
例2:查找距离此时2天内被访问的文件(距离现在前48小时之内)
find -atime -2
例3:两天之前,不包括两天之前的一天的被访问的文件(离此时72小时之前)
find -atime +2
5、根据文件的所属权查找
-user username: 查找属主为指定用户的文件
-group groupname: 查找指定属组的文件
-uid userid: 查找属主为指定uid号的文件
-gid groupid: 查找属组为指定gid号的文件
-nouser: 查找没有属主的文件
nogroup: 查找没有属组的文件
例:
find /var -user root -a group mail
6、根据权限查找
find 【paths】 -perm
find /opt/soft/test/ -perm 777
九、文件的打包和解包
1.tar
解 tar 包
例:
tar -zxvf node_exporter-1.4.0.linux-amd64.tar.gz
创建tar包
tar cvf - /etc | gzip-9c > backup.tar.gz
2. zip
创建zip包
zip -r test.zip test
解压zip包
unzip test.zip -d /export
十、文本搜索工具 grep
grep 完整语法结构
grep | [options] | [pattern] | file |
---|---|---|---|
命令 | 参数 | 匹配模式 | 文件数据 |
常用参数
参数 | 说明 |
---|---|
-i | 忽略大小写 |
-v | 反转 |
-c | 只统计匹配的行数 |
-R | 递归查询 |
-o | 只输出匹配的单词 |
-l | 包含匹配项的文件名 |
-L | 不包含匹配项的文件名 |
-w | 只输出过滤的单词 |
常用的正则表达式
表达式 | 说明 |
---|---|
^ | 用于模式最左端,以‘’‘’开头的单词 |
$ | 用于模式最右端,以‘’‘结尾的单词 |
* | 匹配前一个字符连续出现0次或一次以上 |
- | 匹配任意一个且只有一个字符 |
十一、文件查看命令cat
cat [OPTION] [FILE]
参数 | 说明 |
---|---|
-A | 显示所有的内容 |
-b | 显示非空行的内容 |
-n | 显示行号 |
十二、文件查看命令more
more [options] file […]
参数 | 说明 |
---|---|
-num | 一次显示的行数 |
-f | 计算行数时,以实际上的行数,而非自动换行过后的行数 |
-s | 当遇到有连续两行以上的空白行,就代换为一行的空白行 |
-p | 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容 |
命令 | 说明 |
---|---|
空格键 | 展示接下来 k 行的文字。默认当前屏幕的尺寸 |
z | 展示接下来 k 行的文字。默认当前屏幕的尺寸。参数成为新的默认值。 |
回车 | 展示接下来 k 行的文字。默认为1。参数成为新的默认值。 |
b 或 ^B | 往回跳 k 屏。默认1。只对文件生效,不是管道。 |
’ | 跳到上一次搜索开始的地方。 |
= | 展示当前行号。 |
q 或 Q 或 INTERRUPT | 退出 |
十三、查看文件命令less
less [参数] 文件
参数 | 说明 |
---|---|
-b | 设置缓冲区的大小 |
-e | 当文件显示结束后,自动离开 |
-f | 强迫打开特殊文件,例如外围设备代号、目录和二进制文件 |
-g | 只标志最后搜索的关键词 |
-i | 忽略搜索时的大小写 |
-m | 显示类似more命令的百分比 |
-N | 显示每行的行号 |
-o | <文件名> 将less 输出的内容在指定文件中保存起来 |
-Q | 不使用警告音 |
命令
命令 | 说明 |
---|---|
b | 向后翻一页 |
d | 向后翻半页 |
h | 显示帮助界面 |
Q | 退出less 命令 |
u | 向前滚动半页 |
y | 向前滚动一行 |
空格键 | 滚动一行 |
回车键 | 滚动一页 |
[pagedown] | 向下翻动一页 |
[pageup] | 向上翻动一页 |
十四、内存查看 free
free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。
语法:
free 【-bkmotV】 【-s <间隔秒数>】
参数 | 说明 |
---|---|
-b | 以Byte为单位显示内存使用情况 |
-k | 以kb为单位显示内存使用情况 |
-m | 以mb为单位显示内存使用情况 |
-h | 以合适的单位显示,一般为b、k、m、g |
-o | 不显示缓冲区调节列 |
-s | 间隔秒数 |
-t | 显示内存总和列 |
-v | 显示版本信息 |
查询内容说明
内容 | 说明 |
---|---|
total | 内存总数,物理内存总数 |
used | 已经使用的内存数 |
free | 空闲的内存数 |
shared | 多个进程共享的内存总额 |
buffers | Buffer 缓存内存数 |
cached | Page 缓存内存数 |
-buffers/cache | 应用使用内存数 |
+buffers/cache | 应用可用内存数 |
Swap | 交换分区,虚拟内存 |
十五、sed命令
语法
sed + 选项 + “指令” 文件
常用选项
选项 | 说明 |
---|---|
-e | –它告诉sed将下一个参数解释为一个sed指令,只有当命令行上给出多个sed指令时使用 |
-f | –后跟保存了sed指令的文件 |
-i | –直接对内容进行修改,不加 i 时默认只是预览,不会对文件进行实际修改 |
-n | –取消默认输出,sed默认会输出所有文本内容,使用 -n 参数后只显示处理过的行 |
编辑命令:
命令 | 说明 |
---|---|
a | –追加,向匹配行后插入内容 |
c | –更改,更改匹配行的内容 |
i | –插入,向匹配行前插入内容 |
d | –删除,删除匹配的内容 |
s | –替换,替换匹配到的内容 |
p | –打印,打印匹配到的内容,通常与 -n 和用 |
= | –用来打印被匹配到的行的行号 |
n | –读取下一行,遇到n时会自动跳入下一行 |
r,w | –读和写,r用于将内容读入文件,w用于将匹配内容写入到文件 |