Linux命令基础

作者: GeekerHua | 来源:发表于2017-02-06 13:58 被阅读25次

    基础命令

    一些常用快捷键

    按键 作用
    Ctrl+c 结束当前任务
    Ctrl+d 键盘输入结束或退出终端
    Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行
    Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg,jobs查看当前后台任务
    Ctrl+a 将光标移至输入行头,相当于Home键
    Ctrl+e 将光标移至输入行末,相当于End键
    Ctrl+k 删除从光标所在位置到行末
    Ctrl+u 删除当前行内容
    Alt+Backspace 向前删除一个单词
    Shift+PgUp 将终端显示向上滚动
    Shift+PgDn 将终端显示向下滚动

    通配符

    $ touch love_{1..10}_linux.txt
    一次创建多个文件

    字符 含义
    * 匹配 0 或多个字符
    ? 匹配任意一个字符
    [list] 匹配 list 中的任意单一字符
    [!list] 匹配 除list 中的任意单一字符以外的字符
    [c1-c2] 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z]
    {string1,string2,...} 匹配 sring1 或 string2 (或更多)其一字符串
    {c1..c2} 匹配 c1-c2 中全部字符 如{1..10}

    man命令

    在 Linux 环境中,如果你遇到困难,可以使用man 命令,它是Manual page的缩写。
    通常情况下,man 手册里面的内容都是英文的,这就要求你有一定的英文基础。man 手册的内容很多,涉及了 Linux 使用过程中的方方面面,为了便于查找,是做了分册(分区段)处理的,在Research UNIX、BSD、OS X 和 Linux 中,手册通常被分为8个区段

    区段 说明
    1 一般命令
    2 系统调用
    3 库函数,涵盖了C标准函数库
    4 特殊文件(通常是/dev中的设备)和驱动程序
    5 文件格式和约定
    6 游戏和屏保
    7 杂项
    8 系统管理命令和守护进程

    要查看相应区段的内容,就在 man 后面加上相应区段的数字即可,如:

    $ man 1 ls
    

    文件操作

    查看文件

    使用cat,tac和nl命令查看文件

    使用cat,tac和nl命令查看文件。使用cat,tac和nl命令查看文件。

    $ cat -n passwd
    

    nl命令,添加行号并打印,这是个比cat -n更专业的行号打印命令。
    这里简单列举它的常用的几个参数:

    -b : 指定添加行号的方式,主要有两种:
        -b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式)
        -b t:只列出非空行的编号并列出(默认为这种方式)
    -n : 设置行号的样式,主要有三种:
        -n ln:在行号字段最左端显示
        -n rn:在行号字段最右边显示,且不加 0
        -n rz:在行号字段最右边显示,且加 0
    -w : 行号字段占用的位数(默认为 6 位)
    

    使用more和less命令分页查看文件

    more 是简单地分页查看工具
    less 是more和vi的结合体,功能强大

    使用head和tail命令查看文件

    更直接的只看一行, 加上-n参数,后面紧跟行数:

    $ tail -n 1 /etc/passwd
    

    关于tail命令,不得不提的还有它一个很牛的参数-f,这个参数可以实现不停地读取某个文件的内容并显示。这可让我们动态查看日志起到实时监视的作用。


    环境变量

    PATH环境变量是Linux下程序执行的搜索路径,通常全局环境变量使用大写。环境变量仅在当前线程内有效。

    查看PATH

    $ echo PATH
    

    添加值

    $ PATH=$PATH:/home/shiyanlou/mybin
    

    添加到zsh自启动执行

    zsh的配置文件为.zshrc,bash的配置文件为.bashrc

    $ echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc
    

    变量修改

    变量设置方式 说明
    ${变量名#匹配字串} 从头向后开始匹配,删除符合匹配字串的最短数据
    ${变量名##匹配字串} 从头向后开始匹配,删除符合匹配字串的最长数据
    ${变量名%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最短数据
    ${变量名%%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最长数据
    ${变量名/旧的字串/新的字串} 将符合旧字串的第一个字串替换为新的字串
    ${变量名//旧的字串/新的字串} 将符合旧字串的全部字串替换为新的字串

    删除变量

    $ unset path
    

    环境变量修改立刻生效

    $ source .zshrc
    -----
    $ . ./.zshrc        # 第一个点后边必须跟绝对路径
    

    文件搜索

    whereis

    whereis只能搜索二进制文件(-b),man帮助文件(-m)和源代码文件(-s)。如果想要获得更全面的搜索结果可以使用locate命令。

    locate

    它可以用来查找指定目录下的不同文件类型,如查找 /etc 下所有以 sh 开头的文件:

    $ locate /etc/sh
    

    注意,它不只是在 etc 目录下查找并会自动递归子目录进行查找

    查找 /usr/share/ 下所有 jpg 文件:

    $ locate /usr/share/\*.jpg
    

    注意要添加*号前面的反斜杠转义,否则会无法找到

    如果想只统计数目可以加上-c参数,-i参数可以忽略大小写进行查找,whereis 的-b,-m,-s同样可以是使用。

    which

    which本身是 Shell 内建的一个命令,我们通常使用which来确定是否安装了某个指定的软件,因为它只从PATH环境变量指定的路径中去搜索命令:

    $ which ls
    

    find

    find应该是这几个命令中最强大的了,它不但可以通过文件类型、文件名进行查找而且可以根据文件的属性(如文件的时间戳,文件的权限等)进行搜索。find命令强大到,要把它将明白至少需要单独好几节课程才行,我们这里只介绍一些常用的内容。

    在指定目录下搜索指定文件名的文件:

    $ find /etc/ -name interfaces
    

    注意 find 命令的路径是作为第一个参数的, 基本命令格式为 find [path] [option] [action]

    与时间相关的命令参数:

    参数 说明
    -atime 最后访问时间
    -ctime 创建时间
    -mtime 最后修改时间

    下面以-mtime参数举例:
    -mtime n: n 为数字,表示为在n天之前的”一天之内“修改过的文件
    -mtime +n: 列出在n天之前(不包含n天本身)被修改过的文件
    -mtime -n: 列出在n天之内(包含n天本身)被修改过的文件
    newer file: file为一个已存在的文件,列出比file还要新的文件名


    文件系统操作及磁盘管理

    df

    查看磁盘情况

    $ df -h     #以大小形式显示,而不是block块形式
    

    du

    查看文件夹大小

    # 只查看1级目录的信息
    $ du -h -d 0 ~
    

    帮助命令

    使用type可以判断命令类型,是内部命令,还是其他的

    • type ls
    • type vim
    • type ls

    help

    zsh没有help命令,help命令用来显示shell内建命令的简要帮助信息。

    外部命令也可以使用help命令

    ls --help
    

    man

    man 手册中一共有这么几个章节

    章节数 说明
    1 Standard commands (标准命令)
    2 System calls (系统调用)
    3 Library functions (库函数)
    4 Special devices (设备说明)
    5 File formats (文件格式)
    6 Games and toys (游戏和娱乐)
    7 Miscellaneous (杂项)
    8 Administrative Commands (管理员命令)
    9 其他(Linux特定的), 用来存放内核例行程序的文档。

    info

    如果man命令显示的信息还不够,可以用info命令。但zsh没有这个命令

    相关文章

      网友评论

        本文标题:Linux命令基础

        本文链接:https://www.haomeiwen.com/subject/gazyittx.html