• 曾佳明(知乎)Linux教程


    第一阶段:常规文件夹及文件管理基础命令

    - ls ## list
    - pwd ## print working directory
    - cd ## change directory
    - mkdir ## make directory
    - touch ## 创建文本
    - mv ## move
    - rm ## ReMove
    - cp ## copy and paste
    - tar ## Tape archive
    - ln ## LINK
    

    ls命令的参数

    //常见参数
    -a:全部的目录,连同隐藏文件夹一起列出来
    -h:将目录容量转换为以易读的方式(例如GB,KB等等)
    -l:列出目录的详细信息
    -S:以文件大小排序
    -t:以时间排序
    -R:递归目录列出文件
    -d:结合目录本身,而非目录下文件
    

    第二阶段:文本文件处理大全

    三个配对操作命令

    head # 功能:显示文档的开头至标准输出中,默认显示十行
    tail # 功能:显示文档的末尾至标准输出中,默认显示十行
    less # 功能:逐页查看文档内容
    more # 功能:也是逐页查看文档内容,跟less类似
    cat # cat命令(concatenate)查看文本,输出到屏幕
    tac # tac命令,反向查看,是cat命令的补充
    

    cat命令的参数

    -A:显示全部内容,包括特殊字符,可列出一些特殊字符而不是空白而已
    -b:列出行号,仅针对非空白行做行号显示,空白行不标记行号
    -E:将结尾的断行字符$显示出来
    -n:打印出行号,连同空白行也会有行号,与-b的选项不同
    -T:将[tab]按键以I显出出来
    -V:列出一些看不出来的特殊字符
    

    类似于Excel表格功能的命令

    sort # 排序
    sort lines of text files 对文件的数据进行排序(默认根据ASCII表升序排列)
    cut # 提取列,可以以列(字段)为单位处理数据
    wc # 计数
    grep # 筛选
    uniq # 去冗余
    awk # 切割
    tr,sed # 替换
    cat,paste # 合并,补齐
    

    grep命令的参数

    -v ## 逆向匹配
    -w ## 匹配上整个words
    -B ## 输出匹配行之前的指定的行数
    -A ## 输出匹配行之后的指定的行数
    -E ## 指定支持扩展表达式
    -C ## 对匹配到的行计数
    -n ## 输出计数后的一行
    -o ## -n形式输出匹配的内容
    

    第三阶段:元字符,通配符及shell中的各种扩展

    shell扩展

    brace expansion ({})
    tilde expansion (~)
    parameter and variable expansion
    arithmetic expansion
    command subsitution
    process substitution
    word splitting
    Filename Expansion ## 通配符扩展
    

    linux shell通配符(wildcard)

    * ## 匹配0或多个字符
    ?## 匹配任意一个字符
    [list] ## 匹配list中的任意单一字符
    [!list] ## 匹配除list中的任意单一字符
    [c1-c2] ## 匹配c1-c2中的任意单一字符,如[0-9][a-z]
    {string1,string2,...} ## 匹配string1或string2(或更多)其一字符串
    

    shell元字符(特殊字符Meta)

    cd ## 回到用户家目录
    cd ~ ## 回到用户家目录
    cd - # 回到前个目录
    cd .. ## 切换到上层目录,相对路径
    cd ../.. ## 切换到上上层目录
    cd / ## 切换到根目录
    cd /teach/ ## 切换到根目录下的teach,绝对路径
    

    其他shell元字符

    IFS ## 由<space>或<tab>或<enter>三者之一组成(我们常用space)
    CR ## 由<enter>产生
    = ## 设定变量
    $ ## 做变量或运算替换(请不要与shell prompt搞混了)
    > ## 重导向stdout
    < ## 重导向stdin
    | ## 命令管线
    & ## 重导向file descriptor,或将命令至于背境执行
    () ## 将其内的命令置于nested subshell执行,或用于运算或命令替换
    {} ## 将其内的命令置于non-named function中执行,或用在变量替换的界定范围
    ; ## 在前一个命令结束时,而忽略其返回值,继续执行下一个命令
    && ## 在前一个命令结束时,若返回值为true,继续执行下一个命令
    || ## 在前一个命令结束时,若返回值为false,继续执行下一个命令
    ! ## 执行history列表中的命令
    

    第四阶段:高级目录管理

    主要命令类型

    alias ## 别名
    keyword ## 关键字,Shell保留字
    function ## 函数,Shell函数
    builtin ## 内建命令,Shell内建命令
    file ## 文件,磁盘文件,外部命令
    unfound ## 没有找到
    

    linux预设的变量

    $SHELL ## 默认Shell
    $HOME ## 当前用户家目录
    $IFS ## 内部字段分隔符
    $LANG ## 默认语言
    $PATH ## 默认可执行程序路径
    $PWD ## 当前目录
    $UID ## 当前用户ID
    $USER ## 当前用户
    $HISTSIZE ## 历史命令大小,可通过HISTTIMEFORMAT变量设置命令执行时间
    $RANDOM ## 随机生成一车0至32767的整数
    $HOSTNAME ## 主机名
    $0 ## 保存当前程序或脚本的名称
    $* ## 保存传递给脚本或进程的所有参数
    $$ ## 当前进程给脚本的PID号
    $! ## 后台运行的最后一个进程的PID号
    $? ## 用于返回上一条命令是否成功执行。如果成功执行,将返回数字0,否则返回非零数字(通常情况下都返回数字1)
    $# ## 用于保存脚本的参数个数
    

    绝对路径和相对路径

    • 绝对路径:从根目录/开始,用/隔开的各级目录,例如/home/vip1这个目录
    • 相对路径:目标目录相对于当前目录的位置。主要是活学活用.和..这两个特殊字符

    第五阶段:任务提交及批处理,脚本编写

    任务提交

    sleep 100
    # 这个命令提交后系统进入睡眠状态,时间是100秒,它会占用我们的命令行,在输入任何命令也不起作用
    # 我么可以用下面的命令,来把任务提交到后台运行,这样我们就可以继续使用命令行
    nohup sleep 100 &
    # 提交任务后可以通过 ps -ef | grep sleep 来查看后台sleep任务的运行情况
    # 也可以提供fg等命令把挂在后台的命令拿回来
    

    批处理的两个语法

    for i in {1...1000};do (mkdir -p dir${i});done
    echo {1...1000}|tr ' ' '
    '| while read id;do (mkdir -p dir${id});done
    

    第六阶段:软件安装及conda管理

    写在后面:服务器管理和运维

    w/last/top/qsub/condor/apache/socket/IO/ps/who/uid/
    磁盘挂载/格式化/重启系统/文件清理/IP查看/网络管理/用户管理/目录结构了解/计划任务/各种库文件
    用户组,目录权限管理等等
    

    本文来自博客园,作者:小恒2020,转载请注明原文链接:https://www.cnblogs.com/xiaoheng2020/p/13616206.html

  • 相关阅读:
    Thinkd Pad打开无线网络方法
    模式问题
    SQL数据库,使用事务执行增删改操作,给自己一个后悔的机会
    iOS开发-数据库FMDB队列
    iOS开发-数据库FMDB简单介绍
    iOS开发-地图定位 CoreLocation地理编码
    iOS开发-网络篇 文件的上传
    iOS开发-项目新特性
    iOS开发-Xcode插件管理工具Alcatraz的安装和使用
    iOS开发-AFNetworking 怎样上传数据? 怎样上传模拟表单
  • 原文地址:https://www.cnblogs.com/xiaoheng2020/p/13616206.html
Copyright © 2020-2023  润新知