Shell command

  • Shell命令
    • Linux结构
      • kernel
        • 管理计算机的硬件资源
        • 为上层应用程序提供运行环境
      • 系统调用
        • 内核给上层应用程序提供的接口
      • 库函数
        • 系统调用的封装
          • 方便使用
          • 增加代码的可移植性
      • shell
        • 命令解释器
          • 命令:一般来说,命令就是可执行程序
          • 脚本 (script):命令的集合
          • 具体的shell
            • sh
            • csh
            • bash
            • ksh
            • zsh
    • 用户子系统相关命令
      • 查看所有用户
        • cat /etc/passwd
        • man 5 passwd
      • 添加用户
        • useradd
          • -m
          • -s /bin/bash
      • 删除用户
        • userdel
          • -r
      • 修改密码
        • passwd
      • 切换用户
        • su
      • 退出切换
        • exit
    • 文件
      • 目录
        • 常见的目录
          • /
          • /bin
          • /lib
          • /proc
          • /dev
          • /var
          • /etc
          • /root
          • /home/{username}
        • 打印当前工作目录
          • pwd
        • 切换当前工作目录
          • cd
            • cd
            • cd ~
            • cd .
            • cd ..
            • cd -
              • 上一次目录保存到 OLDPWD 环境变量中
        • 创建目录
          • mkdir
            • -p
              • mkdir -p a/b/c
        • 删除空目录
          • rmdir
            • -p
              • rmdir -p a/b/c
        • 显示目录项
          • ls
            • 常用选项
              • -a
              • -i
              • -l
                • 第一个字段
                  • 第一个字符
                    • 文件类型
                      • -:普通文件
                      • d
                      • c
                      • b
                      • l
                      • p
                      • s
                  • 其它九个字符
                    • 权限
                      • 拥有者
                      • 所属组
                      • 其他人
                • 硬链接数
                • 拥有者
                • 所属组
                • 大小
                • 最近修改时间
                • 文件名
          • tree
        • 复制
          • cp
            • 格式
              • cp SOURCE DEST
              • cp -r SOURCE DEST
              • cp SOURCE… DEST(已存在的目录)
            • 常用选项
              • -r
              • -n
              • -i
        • 移动
          • mv
            • 格式
              • mv SOURCE DEST (重命名)
              • mv SOURCE… DEST (已存在的目录,移动)
            • 常用选项
              • -n
              • -i
        • 删除文件或文件夹
          • rm
            • 常用选项
              • -r
              • -i
              • -f: 永远不提示
      • 普通文件
        • 创建文件
          • touch a.txt
          • echo “Hello world” > a.txt
          • vim a.txt
        • 查找文件
          • which
            • 作用:查找可执行程序
            • 原理:根据 PATH 环境变量,依次查找
            • 常用选项
              • -a
          • find
            • 作用:在目录下,递归地查找文件
            • 格式:find [目录…] 查找条件
            • 查找条件
              • -name 通配符
              • -type c
                • f: regular file
                • d: directory
                • p: named pipe
                • c: character device
                • b: block device
                • l: symbolic link
                • s: domain socket
              • -size n[bcwkMG]
                • 单位
                  • b: block (默认)
                  • c: character
                  • w: word (2-bytes)
                  • k
                  • M
                  • G
                • -size 4M
                • -size +4M
                • -size -4M
              • -empty
              • -user, -uid
              • -group, -gid
              • -perm 三个八进制数字
              • 时间
                • -atime, -amin
                • -ctime, -cmin
                • -mtime, -mmin
                  • -mtime 3
                  • -mtime +3
                  • -mtime -3
              • 组合
                • -a (and)
                • -o (or)
                • ! (not)
        • 查看文件内容
          • cat
            • 作用:拼接文件内容,并将结果输出到 stdout
            • 常用选项
              • -n
          • head
            • 作用:显示文件的头几行
            • 常用选项
              • -n
                • -n 20
                • -n -5
          • tail
            • 作用:显示文件的后几行
            • 常用选项
              • -n
                • -n 20
                • -n +5
              • -F
                • 显示文件追加的内容
                  • 看日志文件
          • less (more)
            • 作用:单页浏览
            • 常用命令
              • f: forward
              • b: backward
              • d: down
              • u: up
              • q: qut
              • :n (next)
              • :p (previous)
        • 搜索文件内容
          • grep (globally regular expression print)
            • 作用:打印文件中所有匹配正则表达式的行
            • 常用选项
              • -E: 使用扩展的正则表达式语法
              • -n: 显示行号
              • -i: 忽略大小些
              • -v: 显示不匹配正则表达式的行
              • -c: 显示行数
        • 文件的权限
          • 目录权限的含义
            • r
              • 查看目录项
                • ls, tree
            • w
              • 添加和删除目录项
            • x
              • 目录最基本的权限,rw都依赖x权限
                • cd
          • chmod
            • 文字设定法
              • chmod [ugoa] [+-=] [rwx] item
            • 数字设定法
              • chmod 三个八进制数字 item
          • umask
            • 文件创建掩码
            • 查看当前文件创建掩码
              • umask
            • 修改文件创建掩码
              • umask 四个八进制数字
                • 0002
            • 原理
              • umask 指定的想去掉的权限
              • 普通文件:666 & ~umask
              • 目录文件:777 & ~umask
        • 链接
          • 硬链接
            • ln 文件 硬链接
          • 符号链接
            • 一个文本文件,文件的内容是另一个文件的路径 (相对路径,绝对路径)
            • ln -s 文件 符号链接
            • 类比
              • Windows上的快捷方式
              • 指针
    • 通配符
      • *: 匹配任意多个字符 (包括0个)
      • ?: 匹配任意一个字符
      • 集合/类
        • [abc]
        • [!abc]
        • [0-9a-zA-Z_]
    • 重定向
      • stdin
        • <
      • stdout
        • , >>

      • stderr
        • 2>, 2>>
    • 正则表达式
      • 基本单位
        • 字符
        • 转义字符
        • 集合
          • [abc]
          • [^abc]
          • [a-zA-Z0-9]
        • .
          • 表示任意一个字符
        • (expr)
      • 基本操作
        • 拼接
          • [abc]x
            • “贴贴”
        • 重复
          *
          • ?
          • {m}
          • {m, n}
          • {n, }
      • 指定位置
        • ^
        • $
        • <
          • 词首
        • >
          • 词尾
    • 命令的组合
      • cmd1 ; cmd2
      • cmd1 | cmd2
        • 原理
          • cmd1 的 stdout 重定向到管道的一端
          • cmd2 的 stdin 重定向到管道的另一端
      • cmd1 | xargs cmd2
        • 将cmd1的输出,作为cmd2的命令行参数
    • 其它
      • 查看帮助手册
        • man
          • Tips: Be a MAN!
          • 格式:man [手册编号] 词条
          • man手册
            • 1: shell命令
            • 2:系统调用
            • 3:库函数
            • ……
      • 关机命令
        • shutdown
          • -P, –poweroff
          • -r, –reboot
          • -H, –halt
          • -c (cancel)
      • 别名
        • alias
          • 查看别名:alias
          • 设置别名:alias cd=’sudo rm -rf’
          • bash的配置文件
            • ~/.bashrc
              • source ~/.bashrc
      • 上传和下载
        • scp
          • 上传:将本地文件复制到远程
          • 下载:将远程文件复制到本地
          • 本地路径
            • 绝对路径
            • 相对路径
          • 远程路径
            • 用户名@IP:绝对路径
      • 打包和压缩
        • tar
          • 主选项
            • c: 创建
            • x: 释放
            • r: 追加
            • t: 查看
          • 辅选项
            • v: verbose
              • 显示详细过程
            • f
              • 指定包裹的名字
            • z
              • 采用gzip算法进行压缩和解压缩