• 实用的linux 命令(上)


    今天介绍几个我常用的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 命令来查看):

    数字 含义
    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 .
    ");
    
        return 0;
    }
    

    cat 命令常用参数:

    参数 含义
    -n 对输出的内容加上行号
    -b 对输出的内容加上行号,空白行不计入行号
    -s 将两个以上的空白行,显示为一个空白行

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

    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.
    ");
            
        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,其它都是固定写法,不用改变,commandLinux 命令,比如lsrm

    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 命令用于远程复制目录或文件,它基于sshscpsecure 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" 的行`
    

    下面三个命令sortuniqawk 相对来说较复杂,限于篇幅,所以不在本文中详细介绍,具体可点开相应链接查看。

    12,sort

    sort 命令用于将文本内容进行排序,其以文本内容的为单位,以ASCII 码的次序进行排列。

    详见这里

    13,uniq

    uniq 命令用于检查及删除文本文件中重复出现的行列。

    详见这里

    14,awk

    awk 命令是一个强大的文本分析工具,它有着复杂的功能。

    详见这里

    (完。)

  • 相关阅读:
    【洛谷 1144】最短路计数
    【洛谷 1608】路径统计
    【洛谷 1491】集合位置
    【洛谷 3110】驮运 Piggy Back
    【洛谷 1734】最大约束和
    【洛谷 1910】L国的战斗之间谍
    【洛谷 1048】采药
    【洛谷 1186】玛丽卡
    GeoServer(地图服务器)
    git cherry-pick 教程
  • 原文地址:https://www.cnblogs.com/codeshell/p/12726549.html
Copyright © 2020-2023  润新知