实用的linux 命令(上)
source link: https://codeshellme.github.io/2020/04/used-linux-cmd1/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
实用的linux 命令(上)
4374 字 阅读约需 9 分钟
今天介绍几个我常用的Linux 命令,每个命令这里只介绍其常用参数。
对于每个Linux 命令
都可以使用man + 命令名称
,查看其完整使用方法。
0,man
man
命令是一个非常有用的命令,当你不会使用某个Linux
命令时,可以使用man
来查看其帮助文档。man
命令查到的手册来源于目录 /usr/share/man/
,可以看到该目录下有9 个这样的目录:
>>> ls /usr/share/man/| grep man ______________________________ |
man
手册分9 种,用数字[1-9]
来区分,分别代表的含义如下(可以用man man
命令来查看):
| 数字 | 含义 |
|–|–|
| 1
| System commands 系统命令 |
| 2
| System calls 系统函数 |
| 3
| Library calls 库函数 |
| 4
| Special files 特殊文件|
| 5
| File formats 文件格式|
| 6
| Games 游戏和娱乐|
| 7
| Miscellaneous 杂项|
| 8
| System administration commands 管理员root
命令 |
| 9
| 其它 |
可以通过设置不同的数字来查看不同的手册,如下:
man 1 系统命令名 man 2 系统函数名 man 3 库函数名 |
如果没有带这个数字,则会从1
查到9
,直到查到第一个为止。
一,文件管理
1,cat
cat
命令用于查看文件内容,该命令会将文件的所有内容输出到控制台
。
>>> cat hello.c ______________________________________ // 包含头文件 #include <stdio.h> // 程序入口,main 函数,返回值类型为int 类型 int main() // 打印字符串 printf("hello world .\n"); return 0; |
cat
命令常用参数:
| 参数| 含义 |
|–|–|
| -n | 对输出的内容加上行号 |
|-b|对输出的内容加上行号,空白行
不计入行号|
|-s|将两个以上的空白行
,显示为一个空白行
|
cat
命令会将文件内容快速的输出到控制台
,它并不能控制浏览文件的进度。如果想控制浏览文件的进度,可以使用more
或less
命令。
2,more
more
命令用于查看Linux 文件的内容,用more filename
打开一个文件后,可以控制向上
或向下
翻滚页面。
>>> more log.txt ________________________________ 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 --More--(2%) (`注`:这里显示浏览页面的`进度百分比`) |
more
命令常用操作:
操作 | 含义 |
---|---|
Enter 键 |
向下 翻滚一行 |
空格键 |
向下 翻滚一页 ,一页 的大小可以使用 -N 参数来设置 |
Ctrl + B (本操作并不是很方便 ) |
向上 翻滚一页 ,一页 的大小可以使用 -N 参数来设置 |
使用下面的方式将一页
的大小设置为10 行,这时每次向上
或者向下
翻页时,每次会滚动10
行:
more -10 log.txt |
more 命令
可以与cat 命令
来配合使用,比如用cat
显示行号,然后用more
控制翻页,并且页的大小为10 行:
>>> cat -n log.txt| more -10 —————————————————————————————————————————— 56 1111111111111111111111111111111111 57 1111111111111111111111111111111111 58 1111111111111111111111111111111111 59 1111111111111111111111111111111111 60 1111111111111111111111111111111111 61 1111111111111111111111111111111111 62 1111111111111111111111111111111111 --More-- (`注`:第一列为行号,并且这时`进度百分比`消失了,而且`不能向上翻页`) |
3,less
less 命令
也是用来浏览文件内容,但与more 命令
有些不同,less 命令
有更多的操作。
用命令less filename
打开文件后的常用操作:
操作 | 含义 |
---|---|
b |
向上翻一页 |
d 或者空格键 |
向下翻一页 |
k 或者方向键↑ |
向上翻一行 |
j 或者方向键↓ 或者Enter 键 |
向下翻一行 |
/pattern |
在页面中搜索字符串pattern ,匹配到的字符串会高亮显示,可以用-i 参数来忽略大小写 |
n |
锁定下一个 匹配到的字符串pattern |
N |
锁定上一个 匹配到的字符串pattern |
q |
退出当前文件 |
less
命令常用参数:
| 参数 | 含义 |
|–|–|
| -i
| 忽略搜索/pattern
时的大小写 |
| -m
| 显示类似more 命令
的进度百分比 |
| -N
| 显示行号 |
| -s
| 连续空白行
显示为一行 |
如下命令,即显示行号
又显示进度百分比
:
less -mN README.md |
效果如下:
4,head
head
命令用于从一个文件的开头处查看文件。常用参数如下:
参数 | 含义 |
---|---|
-n |
查看一个文件的前N行,默认为前10 行 |
-c |
查看一个文件的前N字节 |
如下命令查看hello.c
文件的前5 行:
>>> head hello.c -n 5 _______________________________________ // 包含头文件 #include <stdio.h> // 程序入口,main 函数,返回值类型为int 类型 int main() |
如下命令查看hello.c
文件的前20 字节:
>>> head hello.c -c 20 _______________________________________ // 包含头文件 |
5,tail
tail
命令的含义与head
恰好相反,tail
从一个文件的尾部开始查看,常用参数如下:
参数 | 含义 |
---|---|
-n |
查看一个文件的最后N行,默认为后10 行 |
-c |
查看一个文件的最后N字节 |
-f |
实时查看文件的内容,并输出到控制台,常用于查看日志 输出 |
如下命令查看hello.c
文件的最后5 行:
>>> tail hello.c -n 5 _______________________________ // 打印字符串 printf("hello world 1.\n"); return 0; |
如下命令查看hello.c
文件的最后20 字节:
>>> tail hello.c -c 20 _______________________________ return 0; |
6,find
find
命令用来查找指定目录
下符合指定条件
的文件,并进行指定操作
,其语法如下:
find `目录` `条件` `操作` |
6.1 目录(可不写)
目录
表示在哪个目录
下进行查找。例如./
代表当前目录,/
代表根目录。如果没有写目录,默认会在当前目录及其子目录
下查找。
6.2 条件(必须写)
查找符合怎样 条件
的内容,支持如下常用条件
(这里并没有列出所有可用条件):
参数 | 含义 |
---|---|
-name |
按照文件名称 查找,支持* 通配符 |
-perm |
按照文件权限 查找 |
-user |
按照文件属主 查找 |
-group |
按照文件所属的组 查找 |
-prune |
忽略某个目录 |
-mtime -n/+n |
按照文件更改时间 来查找,-n 表示n天之内,+n 表示n天之前 |
-atime -n/+n |
按照文件访问时间 来查找 |
-ctime -n/+n |
按照文件创建时间 来查找 |
-type |
按照文件类型 查找 |
-size N[bcwkMG] |
按照文件大小 查找,bcwkMG 是可选的单位 |
-depth |
使查找在进入子目录前先行查找完本目录 |
-maxdepth |
设置查找目录的最大深度 |
-mindepth |
设置查找目录的最小深度 |
其中-type
支持的类型如下:
| 类型 | 含义 |
|–|–|
|f
|普通文件|
| d
| 目录 |
| l
| 符号链接文件 |
|s
|socket|
| b
| 块设备文件 |
| c
| 字符设备文件 |
| p
| 管道文件 |
6.3 操作(可不写)
对查找出来的文件进行怎样的操作
,支持如下操作
:
| 操作 | 含义 |
|–|–|
| -print
| 输出到控制台
,不写的话,默认为此操作|
|-exec
|对查找到的文件执行shell命令|
|-ok
|对查找到的文件执行shell命令,在执行命令之前会先提示用户是否执行,比-exec
更安全|
exec
与 -ok
的格式为:
-exec/-ok command {} \; |
其中可变的只有command
,其它都是固定写法,不用改变,command
为Linux
命令,比如ls
,rm
。
6.4 例子
find . -name "*.log" `在当前目录及其子目录查找,文件名以".log" 结尾的文件,并输出` find . -perm 777 `在当前目录及其子目录查找,权限为"777" 的文件,并输出` find . -type d `在当前目录及其子目录查找,文件类型为目录的文件,并输出` find . -name "*.c" -exec rm {} \; `在当前目录及其子目录查找,文件名以".c" 结尾的文件,并删除` find . -size +100c `在当前目录及其子目录查找,文件大小大于100字节的文件,并输出` find . -size -100c `在当前目录及其子目录查找,文件大小小于100字节的文件,并输出` find . -size 100c `在当前目录及其子目录查找,文件大小等于100字节的文件,并输出` |
7,chmod
在类Unix
系统中,文件的调用权限
分三级,分别是:文件拥有者
、群组
、其他
。文件的操作权限
分三种分别是:可读
,可写
,可执行
。
chmod
命令用于修改文件的调用权限
和操作权限
,该命令的语法格式如下(这里只列出了-R
参数,还有其它):
chmod [-R] `mode` `filename` |
7.1 R参数(可选)
-R
参数表示,是否操作当前目录下的所有文件与子目录。
7.2 mode
mode
包含三部分:[ugoa]
,+-=
,[rwx]
,它们的含义如下:
字母 | 含义 |
---|---|
u |
该文件的拥有者 |
g |
与该文件所属同一群组者 |
o |
其它用户 |
a |
所有用户,即ugo 三者皆是 |
+ |
增加 权限 |
- |
取消 权限 |
= |
唯一设定 权限,即设置为只有一个权限 |
r |
可读 权限 |
w |
可写 权限 |
x |
可执行 权限 |
7.3 例子
chmod ugo+r file `将文件file 设为所有人皆可读` chmod a+w file `将文件file 设为所有人皆可写` chmod ug+w,o-w file1 file2 `将文件file1 file2设为该文件拥有者,与其所属同一个群组者可写入,但其它用户不可写` chmod -R a+r dir/* `将dir 目录下的所有文件与子目录设为所有人可读` |
8,chown
chown
命令用于将文件的拥有者改为指定的用户或组。
一般来说chown
命令由root
使用,因为普通用户没有权限改变他人文件的拥有者,也没有权限把自己的文件拥有者改设为他人。
chown
命令的语法格式如下:
chown [-R] user[:group] file_list |
-R
参数表示,是否操作当前目录下的所有文件与子目录。
其它参数含义:
参数 | 含义 |
---|---|
user |
新的文件拥有者 |
group |
新的文件拥有者组 |
file_list |
要修改的文件,可以是一个文件,也可以是一个文件列表 |
chown runoob:runoobgroup file `将文件file 的拥有者设为runoob,群组设为runoobgroup` chown -R root:root dir/* `将dir/ 目录下的所有文件与子目录的拥有者设为runoob,群组设为runoobgroup` |
9,scp
scp
命令用于远程复制目录或文件,它基于ssh
,scp
是 secure copy
的缩写。scp
命令是rcp
命令的加强版,scp
是加密传输,rcp
是非加密传输。
scp
的语法格式如下:
scp [可选参数] file_source file_target |
有如下常用可选参数
:
| 参数 | 协议 |
|–|–|
| -1
| 使用协议ssh1 传输|
| -2
| 使用协议ssh2 传输|
| -4
| 使用IPv4协议寻址|
| -6
| 使用IPv6协议寻址|
| -C
| 使用压缩 |
| -r
| 递归复制整个目录 |
|-P
|指定传输端口|
scp local_file remote_username@remote_ip:remote_folder `指定了用户名,命令执行后需要再输入密码` scp local_file remote_ip:remote_folder `没有指定用户名,命令执行后需要输入用户名和密码` scp -r local_folder remote_username@remote_ip:remote_folder `复制目录` scp -r local_folder remote_ip:remote_folder `复制目录` scp remote_username@remote_ip:remote_file local_folder `从远程复制到本地` scp -r remote_username@remote_ip:remote_folder local_folder `从远程复制到本地` |
二,文档处理
10,wc
wc
命令用于计算行数
,字数
和文件大小
(以字节为单位),其语法格式如下:
wc [-lcw] filename |
其参数含义如下:
|参数| 含义 |
|–|–|
| -l
| 计算文件行数 |
| -c
| 计算文件大小 |
| -w
| 计算文件字数 |
|不带参数
|以上三者都会计算|
11,grep
grep
命令用于查找文件中符合特定条件
的字符串,其语法格式如下:
grep `[参数]` `匹配条件` `文件` |
常用参数如下:
参数 | 含义 |
---|---|
-c |
计算符合条件 的行数 |
-e |
使用正则表达式,一个-e 后只能跟一个pattern ,可以写多个-e |
-E |
使用正则表达式,可以使用| 来分割多个pattern ,从而写多个pattern |
-i |
忽略大小写 |
-l |
只列出符合条件 的文件名 |
-L |
只列出不符合条件 的文件名 |
-n |
显示行号 |
-o |
只显示匹配pattern 的部分,这个参数很有用 |
-v |
显示不符合条件 的所有行 |
-r |
递归目录查找 |
--color |
使匹配到的字符串高亮显示 |
-A<行数N> |
除了显示符合条件 的那一行之外,还显示该行之后N行 的内容 |
-B<行数N> |
除了显示符合条件 的那一行之外,还显示该行之前N行 的内容 |
-C<行数N> |
除了显示符合条件 的那一行之外,还显示该行之前和之后N行 的内容 |
grep test *file `在当前目录下,从所有的以"file" 为后缀的文件中,匹配字符串"test"` grep -r hello ./ `在当前目录下,递归所有的文件和目录,匹配字符串"hello"` grep -v hello *txt `在当前目录下,从所有的以"txt" 为后缀的文件中,显示所有不匹配字符串"hello" 的行` |
下面三个命令sort
,uniq
,awk
相对来说较复杂,限于篇幅,所以不在本文中详细介绍,具体可点开相应链接查看。
12,sort
sort
命令用于将文本内容进行排序,其以文本内容的行
为单位,以ASCII 码的次序进行排列。
详见这里。
13,uniq
uniq
命令用于检查及删除文本文件中重复出现的行列。
详见这里。
14,awk
awk
命令是一个强大的文本分析工具,它有着复杂的功能。
详见这里。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK