- Shell命令
- Linux结构
- kernel
- 管理计算机的硬件资源
- 为上层应用程序提供运行环境
- 系统调用
- 内核给上层应用程序提供的接口
- 库函数
- 系统调用的封装
- 方便使用
- 增加代码的可移植性
- 系统调用的封装
- shell
- 命令解释器
- 命令:一般来说,命令就是可执行程序
- 脚本 (script):命令的集合
- 具体的shell
- sh
- csh
- bash
- ksh
- zsh
- 命令解释器
- kernel
- 用户子系统相关命令
- 查看所有用户
- cat /etc/passwd
- man 5 passwd
- 添加用户
- useradd
- -m
- -s /bin/bash
- useradd
- 删除用户
- userdel
- -r
- userdel
- 修改密码
- passwd
- 切换用户
- su
- 退出切换
- exit
- 查看所有用户
- 文件
- 目录
- 常见的目录
- /
- /bin
- /lib
- /proc
- /dev
- /var
- /etc
- /root
- /home/{username}
- 打印当前工作目录
- pwd
- 切换当前工作目录
- cd
- cd
- cd ~
- cd .
- cd ..
- cd -
- 上一次目录保存到 OLDPWD 环境变量中
- cd
- 创建目录
- mkdir
- -p
- mkdir -p a/b/c
- -p
- mkdir
- 删除空目录
- rmdir
- -p
- rmdir -p a/b/c
- -p
- rmdir
- 显示目录项
- ls
- 常用选项
- -a
- -i
- -l
- 第一个字段
- 第一个字符
- 文件类型
- -:普通文件
- d
- c
- b
- l
- p
- s
- 文件类型
- 其它九个字符
- 权限
- 拥有者
- 所属组
- 其他人
- 权限
- 第一个字符
- 硬链接数
- 拥有者
- 所属组
- 大小
- 最近修改时间
- 文件名
- 第一个字段
- 常用选项
- tree
- ls
- 复制
- cp
- 格式
- cp SOURCE DEST
- cp -r SOURCE DEST
- cp SOURCE… DEST(已存在的目录)
- 常用选项
- -r
- -n
- -i
- 格式
- cp
- 移动
- mv
- 格式
- mv SOURCE DEST (重命名)
- mv SOURCE… DEST (已存在的目录,移动)
- 常用选项
- -n
- -i
- 格式
- mv
- 删除文件或文件夹
- rm
- 常用选项
- -r
- -i
- -f: 永远不提示
- 常用选项
- rm
- 常见的目录
- 普通文件
- 创建文件
- 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)
- which
- 查看文件内容
- cat
- 作用:拼接文件内容,并将结果输出到 stdout
- 常用选项
- -n
- head
- 作用:显示文件的头几行
- 常用选项
- -n
- -n 20
- -n -5
- -n
- tail
- 作用:显示文件的后几行
- 常用选项
- -n
- -n 20
- -n +5
- -F
- 显示文件追加的内容
- 看日志文件
- 显示文件追加的内容
- -n
- less (more)
- 作用:单页浏览
- 常用命令
- f: forward
- b: backward
- d: down
- u: up
- q: qut
- :n (next)
- :p (previous)
- cat
- 搜索文件内容
- grep (globally regular expression print)
- 作用:打印文件中所有匹配正则表达式的行
- 常用选项
- -E: 使用扩展的正则表达式语法
- -n: 显示行号
- -i: 忽略大小些
- -v: 显示不匹配正则表达式的行
- -c: 显示行数
- grep (globally regular expression print)
- 文件的权限
- 目录权限的含义
- r
- 查看目录项
- ls, tree
- 查看目录项
- w
- 添加和删除目录项
- x
- 目录最基本的权限,rw都依赖x权限
- cd
- 目录最基本的权限,rw都依赖x权限
- r
- chmod
- 文字设定法
- chmod [ugoa] [+-=] [rwx] item
- 数字设定法
- chmod 三个八进制数字 item
- 文字设定法
- umask
- 文件创建掩码
- 查看当前文件创建掩码
- umask
- 修改文件创建掩码
- umask 四个八进制数字
- 0002
- umask 四个八进制数字
- 原理
- umask 指定的想去掉的权限
- 普通文件:666 & ~umask
- 目录文件:777 & ~umask
- 目录权限的含义
- 链接
- 硬链接
- ln 文件 硬链接
- 符号链接
- 一个文本文件,文件的内容是另一个文件的路径 (相对路径,绝对路径)
- ln -s 文件 符号链接
- 类比
- Windows上的快捷方式
- 指针
- 硬链接
- 创建文件
- 目录
- 通配符
- *: 匹配任意多个字符 (包括0个)
- ?: 匹配任意一个字符
- 集合/类
- [abc]
- [!abc]
- [0-9a-zA-Z_]
- 重定向
- stdin
- <
- stdout
, >>
- stderr
- 2>, 2>>
- stdin
- 正则表达式
- 基本单位
- 字符
- 转义字符
- 集合
- [abc]
- [^abc]
- [a-zA-Z0-9]
- .
- 表示任意一个字符
- (expr)
- 基本操作
- 拼接
- [abc]x
- “贴贴”
- [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:库函数
- ……
- man
- 关机命令
- shutdown
- -P, –poweroff
- -r, –reboot
- -H, –halt
- -c (cancel)
- shutdown
- 别名
- alias
- 查看别名:alias
- 设置别名:alias cd=’sudo rm -rf’
- bash的配置文件
- ~/.bashrc
- source ~/.bashrc
- ~/.bashrc
- alias
- 上传和下载
- scp
- 上传:将本地文件复制到远程
- 下载:将远程文件复制到本地
- 本地路径
- 绝对路径
- 相对路径
- 远程路径
- 用户名@IP:绝对路径
- scp
- 打包和压缩
- tar
- 主选项
- c: 创建
- x: 释放
- r: 追加
- t: 查看
- 辅选项
- v: verbose
- 显示详细过程
- f
- 指定包裹的名字
- z
- 采用gzip算法进行压缩和解压缩
- v: verbose
- 主选项
- tar
- 查看帮助手册
- Linux结构