ITPub博客

首页 > > > 实用的linux 命令(上)

实用的linux 命令(上)

作者:dapan 时间:2020-07-08 14:18:48 0 删除 编辑

今天介绍几个我常用的Linux 命令,每个命令这里只介绍其常用参数。

对于每个Linux 命令都可以使用man + 命令名称,查看其完整使用方法。

0,man

man 命令是一个非常有用的命令,当你不会使用某个Linux 命令时,可以使用man 来查看其帮助文档。man 命令查到的手册来源于目录/usr/share/man/,可以看到该目录下有9 个这样的目录:

>>> ls /usr/share/man/| grep man
______________________________
man1
man2
man3
man4
man5
man6
man7
man8
man9

man 手册分9 种,用数字[1-9] 来区分,分别代表的含义如下(可以用man man 命令来查看):

\begin{array}[b] {|c|c|}  \hline 数字 & 含义\\  \hline 1& System\ commands\ 系统命令   \\  \hline 2& System\ calls\ 系统函数\\  \hline 3& Library\ calls\ 库函数 \\  \hline 4& Special\ files\ 特殊文件 \\  \hline 5& File\ formats\ 文件格式 \\  \hline 6& Games\ 游戏和娱乐 \\  \hline 7& Miscellaneous\ 杂项 \\  \hline 8&  管理员root\ 命令 \\  \hline 9&  其它   \\ \hline \end{array}\\

可以通过设置不同的数字来查看不同的手册,如下:

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 命令常用参数:

\begin{array}[b] {|c|c|}  \hline 参数 & 含义\\  \hline -n& 对输出的内容加上行号  \\  \hline -b& 对输出的内容加上行号,空白行不计入行号\\  \hline -s& 将两个以上的空白行,显示为一个空白行   \\ \hline \end{array}\\

cat 命令会将文件内容快速的输出到控制台,它并不能控制浏览文件的进度。如果想控制浏览文件的进度,可以使用more 或less 命令。

2,more

more 命令用于查看Linux 文件的内容,用more filename 打开一个文件后,可以控制向上或向下翻滚页面。

>>> more log.txt
________________________________
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
--More--(2%)  (`注`:这里显示浏览页面的`进度百分比`)

more 命令常用操作:

\begin{array}[b] {|c|c|}  \hline 操作 & 含义\\  \hline Enter\ 键& 向下翻滚一行   \\  \hline 空格键& 向下翻滚一页,一页的大小可以使用 -N 参数来设置\\  \hline Ctrl+B& 向上翻滚一页,一页的大小可以使用-N 参数来设置   \\ \hline \end{array}\\

使用下面的方式将一页 的大小设置为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 打开文件后的常用操作:

\begin{array}[b] {|c|c|}  \hline 操作 & 含义\\  \hline b& 向上翻一页   \\  \hline d\ 或者\ 空格键& 向下翻一页 \\  \hline \ k\ 或者\ 方向键↑& 向上翻一行 \\  \hline j\ 或者\ 方向键↓\ 或者\ Enter 键& 向下翻一行 \\  \hline /pattern& 搜索字符串pattern,匹配到的字符串会高亮,可以用-i 参数来忽略大小写 \\  \hline n& 锁定下一个匹配到的字符串pattern \\  \hline N&锁定上一个匹配到的字符串pattern \\  \hline q&退出当前文件   \\ \hline \end{array}\\

less 命令常用参数:

\begin{array}[b] {|c|c|}  \hline 参数 & 含义\\  \hline -i&  忽略搜索/pattern\ 时的大小写 \\  \hline -m& 显示类似more\ 命令的进度百分比\\  \hline -N& 显示行号\\  \hline -s& 连续的空白行显示为一行 \\ \hline \end{array}\\

如下命令,即显示行号又显示进度百分比:

less -mN README.md

效果如下:

4,head

head 命令用于从一个文件的开头处查看文件。常用参数如下:

\begin{array}[b] {|c|c|}  \hline 参数 & 含义\\  \hline -n&  查看一个文件的前N行,默认为前10 行\\  \hline -c& 查看一个文件的前N字节\\ \hline \end{array}\\

如下命令查看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 从一个文件的尾部开始查看,常用参数如下:

\begin{array}[b] {|c|c|}  \hline 参数 & 含义\\  \hline -n& 查看一个文件的最后N行,默认为后10 行   \\  \hline -c& 查看一个文件的最后N字节 \\  \hline -f& 实时查看文件的内容,并输出到控制台,常用于查看日志 输出 \\ \hline \end{array}\\

如下命令查看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 条件(必须写)

查找符合怎样条件的内容,支持如下常用条件(这里并没有列出所有可用条件):

\begin{array}[b] {|c|c|}  \hline 参数 & 含义\\  \hline -name & 按照文件名称查找,支持* 通配符   \\  \hline -perm& 按照文件权限查找\\  \hline -user& 按照文件属主查找\\  \hline -group& 按照文件所属的组查找 \\  \hline -mtime -n/+n& 按照文件更改时间查找,-n表示n天之内,+n表示n天之前 \\  \hline -atime -n/+n& 按照文件访问时间来查找 \\  \hline -ctime -n/+n& 按照文件创建时间来查找 \\  \hline -type& 按照文件类型查找 \\  \hline -size N[bcwkMG]& 按照文件大小查找,`bcwkMG` 是可选的单位 \\  \hline -depth& 使查找在进入子目录前先行查找完本目录 \\  \hline -maxdepth& 设置查找目录的最大深度 \\  \hline -mindepth& 设置查找目录的最小深度 \\ \hline \end{array}\\

其中-type 支持的类型如下:

\begin{array}[b] {|c|c|}  \hline 类型 & 含义\\ \hline f & 普通文件 \\  \hline  d  &  目录  \\  \hline  l  &  符号链接文件  \\  \hline s & socket \\  \hline  b  &  块设备文件  \\  \hline  c  &  字符设备文件  \\  \hline  p  &  管道文件  \\  \hline \end{array}\\

6.3 操作(可不写)

对查找出来的文件进行怎样的操作,支持如下操作:

\begin{array}[b] {|c|c|}  \hline 参数 & 含义\\ \hline  -print  &   输出到`控制台`,不写的话,默认为此操作 \\  \hline -exec & 对查找到的文件执行shell命令 \\  \hline -ok & 对查找到的文件执行shell命令,在执行命令之前先提示用户是否执行,比-exec\ 更安全 \\  \hline \end{array}\\

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],它们的含义如下:

\begin{array}[b] {|c|c|}  \hline 参数 & 含义\\ \hline  u  &   该文件的拥有者 \\  \hline  g  &  与该文件所属同一群组者  \\  \hline  o  &  其它用户  \\  \hline  a  &  所有用户,即ugo 三者皆是 \\  \hline  +  &  增加权限  \\  \hline  -  &   取消权限  \\  \hline  =  &  唯一设定权限,即设置为只有一个权限  \\  \hline  r  &  可读权限  \\  \hline  w  &  可写权限  \\  \hline  x  &  可执行权限 \\  \hline \end{array}\\

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 参数表示,是否操作当前目录下的所有文件与子目录。

其它参数含义:

\begin{array}[b] {|c|c|}  \hline 参数 & 含义\\ \hline  user  &  新的文件拥有者  \\  \hline  group  &  新的文件拥有者组  \\  \hline  file\_list  &  要修改的文件,可以是一个文件,也可以是一个文件列表  \\  \hline \end{array}\\

例子:

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

有如下常用可选参数:

\begin{array}[b] {|c|c|}  \hline 参数 & 含义\\ \hline  -1  &  使用协议ssh1 传输 \\  \hline  -2  &  使用协议ssh2 传输 \\  \hline  -4  &  使用IPv4协议寻址 \\  \hline  -6  &  使用IPv6协议寻址 \\  \hline  -C  &  使用压缩  \\  \hline  -r  &   递归复制整个目录  \\  \hline -P & 指定传输端口 \\  \hline \end{array}\\

例子:

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

其参数含义如下:

\begin{array}[b] {|c|c|}  \hline 参数 & 含义\\ \hline  -l  &  计算文件行数  \\  \hline  -c  &  计算文件大小  \\  \hline  -w  &  计算文件字数  \\  \hline 不带参数 & 以上三者都会计算 \\  \hline \end{array}\\

11,grep

grep 命令用于查找文件中符合特定条件的字符串,其语法格式如下:

grep `[参数]` `匹配条件` `文件`

常用参数如下:

\begin{array}[b] {|c|c|}  \hline 参数 & 含义\\ \hline  -c  &   计算符合条件的行数  \\  \hline -e & 使用正则表达式,一个-e 后只能跟一个pattern,可以写多个-e \\  \hline  -E  &  使用正则表达式,可用`|` 来分割多个pattern ,从而写多个pattern \\  \hline  -i  &  忽略大小写  \\  \hline  -l  &  只列出符合条件  的文件名 \\  \hline  -L  &  只列出不符合条件  的文件名  \\  \hline  -n  &  显示行号  \\  \hline  -o  &  只显示匹配pattern 的部分,这个参数很有用  \\  \hline -v & 显示不符合条件的所有行 \\  \hline -r & 递归目录查找 \\  \hline --color & 使匹配到的字符串高亮显示 \\  \hline  -A<行数N>  &  除了显示符合条件的那一行之外,还显示该行之后N行的内容  \\  \hline  -B<行数N>  &  除了显示符合条件的那一行之外,还显示该行之前N行的内容  \\  \hline  -C<行数N>  &  除了显示符合条件的那一行之外,还显示该行之前和之后N行的内容  \\  \hline \end{array}\\

例子:

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 命令是一个强大的文本分析工具,它有着复杂的功能。

详见这里。

(完。)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/758/viewspace-3158258/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-08-07

  • 博文量
    4504
  • 访问量
    87297