基础命令一
1.帮助命令
man 命令
# 查看所有包含关键字的命令
man -k 关键字
man的级别 1 查看命令的帮助 2 查看可被内核调用的函数的帮助 3 查看函数和函数库的帮助 4 查看特殊文件的帮助(主要是/dev目录下的文件) 5 查看配置文件的帮助 6 查看游戏的帮助 7 查看其他杂项的帮助 8 查看系统管理员可用命令的帮助 9 查看和内核相关文件的帮助
# 查看pasword命令有个配置文件
man -f passwd
# 查看配置文件的帮助
man 5 password
2.别名与快捷键
# 查看系统中所有的命令别名
alias
# 设定命令的别名(alias 别名='原命令')
alias rm='rm -i'
alias ll='ls -l'
别名永久生效与删除别名
# 写入环境变量配置文件
vi ~/.bashrc
# 临时删除别名
unalias
常用快捷键
| 快捷键 | 含义 |
|---|---|
ctrl+c |
强制终止当前命令 |
ctrl+l |
清屏 |
ctrl+a |
光标移动到命令行首 |
ctrl+e |
光标移动到命令行尾 |
ctrl+u |
光标所在位置删除到行首 |
ctrl+z |
把命令放入后台 |
ctrl+r |
在历史命令中搜索 |
3. 常用目录
| 目录 | 说明 |
|---|---|
| / | 根目录 |
| /bin | 命令保存目录(普通用户就可以读取命令) |
| /sbin | |
| /usr | 系统软件资源目录 |
| /boot | 启动目录,启动相关文件 |
| /dev | 设备文件保存目录 |
| /etc | 配置文件保存目录 |
| /lib | 系统函数库保存目录 |
| /mnt | 系统挂载目录 |
| /media | 挂载目录 |
| /sys /proc | 保存内存挂载点,不能直接操作 |
| /tmp | 临时目录,存放临时数据 |
| /var | 保存系统可变文档目录 |
4.挂载命令
查询系统中已经挂载的设备
mount
依据配置文件/etc/fstab的内容,把这个文件里写的所有设备都挂载一遍
mount -a
挂载命令格式
mount [-t文件系统] [-o特殊选项] 设备文件名 挂载点
-t 文件系统 加入文件系统类型来指定挂载的类型,可以ext3,ext4,iso9660等文件系统
-o 特殊选项 可以指定挂载的额外选项,有各种参数,可多个一起,用逗号隔开
NOTE: Linux不支持NTFS文件系统 !!!
5.关机和重启 命令
关机命令
shutdown [选项] 时间
# 取消前一个关机命令
-c
# 关机
-h
# 重启
-r
其它关机命令(不安全)
halt
poweroff
init 0
其它重启命令
reboot (比较安全)
init 6 (不安全)
退出登录命令
logout
6.管道符
命令格式
命令1 | 命令2
eg:
ls -l /etc | more代表将ls -l /etc的输出分屏显示netstat -an | grep ESTABLISHED代表搜索netstat -an输出中带有ESTABLISHED的行netstat -an | grep ESTABLISHED | wc -l 统计带有ESTABLISHED的行的数目cat [文件] | uniq 去重
7.历史命令
命令格式
history [选项] [历史命令保存文件]
# 选项: 清空历史命令
-c
# 选项: 把缓存中的历史命令写入历史命令保存文件~/.bash_history
-w
NOTE: 历史命令默认会保存1000条,可以在环境变量配置文件 /etc/profile 中进行修改 HISTSIZE=1000
8.链接命令
ln -s [原文件] [目标目录]
# 选项: 创建软链接
-s
9.输出重定向
标准输入输出
| 设备 | 设备文件名 | 文件描述符 | 类型 |
|---|---|---|---|
| 键盘 | /dev/stdin |
0 | 标准输入 |
| 显示器 | /dev/sdtout |
1 | 标准输出 |
| 显示器 | /dev/sdteer |
2 | 标准错误输出 |
输出重定向
| 类型 | 符号 | 作用 |
|---|---|---|
| 标准输出重定向 | 命令 > 文件 | 以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中。 |
| 标准输出重定向 | 命令 >> 文件 | 以追加的方式,把命令的正确输出输出到指定的文件或设备当中。 |
| 标准错误输出重定向 | 错误命令 2>文件 | 以覆盖的方式,把命令的正确错误输出到指定的文件或设备当中。 |
| 标准错误输出重定向 | 错误命令 2>>文件 | 以追加的方式,把命令的正确错误输出到指定的文件或设备当中。 |
NOTE: 错误输出大于号和文件之间不能有空格!!!
正确和错误输出同时保存
| 序号 | 符号 | 作用 |
|---|---|---|
| 1 | 命令 > 文件 2>&1 | 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。 |
| 2 | 命令 >> 文件 2>&1 | 以追加的方式,把正确输出和错误输出都保存到同一个文件当中。 |
| 3 | 命令 &>文件 | 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。 |
| 4 | 命令 &>文件 | 以追加的方式,把正确输出和错误输出都保存到同一个文件当中。 |
| 5 | 命令>>文件1 2>>文件2 | 把正确的输出追加到文件1中, 把错误的输出追加到文件2中。 |
3和4作用是一样的!推荐3,4,5! 特别这个文件/dev/null,被称为『黑洞』,如果把命令重定向到这儿,系统就直接抛弃了
输入重定向
wc [选项] [文件名]
选项:
- -c 统计字节数
- -w 统计单词数
- -l 统计行数
10.通配符
| 通配符 | 作用 |
|---|---|
? |
匹配一个任意字符 |
* |
匹配0个或任意多个任意字符,也就是可以匹配任何内容 |
[] |
匹配中括号中任意一个字符。例如[abc]代表一定匹配一个字符,或者a或者b或者c |
[-] |
匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母 |
[^] |
逻辑非,表示匹配不是中括号内的一个字符。例如0-9代表匹配一个不是数字的 |
11.压缩命令
.zip格式
# 压缩
zip 压缩文件名 原文件
zip -r 压缩文件名 源目录
# 解压缩
unzip 压缩文件
.gz格式
# 压缩
gzip 源文件 (压缩后源文件会被删除)
gzip -c 源文件 > 压缩文件 (压缩后源文件被保留)
gzip -r 目录 (只能压缩目录下所有的子文件,但不能压缩目录)
# 解压缩
gzip -d 压缩文件 (等价于gunzip 压缩文件,会把源压缩文件删除)
.bz2格式
# 压缩(不能压缩目录)
bzip2 源文件 (压缩后源文件会被删除)
bzip2 -k 源文件 (源文件被保留)
# 解压缩
bzip2 -d 压缩文件 (可以用-k保留源文件 等价于bunzip2 压缩文件同样可用-k)
打包(/解打包命令)
tar -cvf 打包文件名 源文件
-c 打包
-v 显示过程
-f 指定打包后的文件名
tar -xvf 打包文件
-x 解打包
.tar.gz格式
tar -zcvf 压缩包名.tar.gz 源文件 压缩
tar -zxvf 压缩包名.tar.gz 解压缩
tar -ztvf 压缩包名.tar.gz 查看压缩包内容
12.用户登录查看命令
查看用户登录信息
w 用户名
命令输出
- USER:登录的用户名
- TTY: 登录终端
- FROM:从哪个IP地址登录
- LOGIN@:登录时间
- IDLE:用户闲置时间
- JCPU:指的是该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间
- PCPU:是指当前进程所占用的时间
- WHAT:当前正在运行的命令
查看过去所有用户的开关机重启信息
last
默认是读取/var/log/wtmp文件数据,这是一个二进制文件,防止人为修改
命令输出:
- 用户名
- 登录终端
- 登录IP
- 登录时间
- 退出时间(在线时间)
13.字符串截取命令
- cut
cut [选项] [文件名]
选项:
- -f 列号: 提前第几列, 截取多列使用
,分割 - -d 分隔符: 按照指定分隔符分割列, 默认是: tab
其它: tr -s " " : 把所有的空格合并成一个空格
- printf
printf '输出类型输出格式' 输出内容
输出类型:
- %ns: 输出字符串. n是数字指代输出几个字符
- %ni: 输出整数. n是数字指代输出几个数字
- %m.nf: 输出浮点数. m和n是数字, 指代输出的整数位数和小数位数
输出格式:
- \a: 输出警告声音
- \b: 输出退格键,也就是Backspace键
- \f: 清除屏幕
- \n: 换行
- \r: 回车, 也就是Enter键
- \t: 水平输出退格键, 也就是Tab键
\v: 垂直输出退格键, 也就是Tab键
awk
awk '条件1{动作1} 条件2{动作2} ...' [文件名]
条件(Pattern):
- 使用关系表达式作为条件
动作(Action):
- 格式化输出
流程控制语句
sed
sed [选项] '[动作]' [文件名]
选项
- -n: 一般sed命令会把所有数据都输出到屏幕, 如果加入此选择则只会把经过sed命令处理的行输出到屏幕
- -e: 允许对输入数据应用多条sed命令编辑
- -i: 用sed的修改结果直接修改读取数据的文件, 而不是由屏幕输出
动作
- -a: 追加, 在当前行后添加一行或多行
- -c: 行替换, 用c后面的字符串替换原数据行
- -i: 插入, 在当前行前插入一行或多行
- -d: 删除, 删除指定的行
- -p: 打印, 输出指定的行
-s: 字符替换, 用一个字符串替换另外一个字符串.格式为 "行范围s/旧字串/新字串/g" (和vim中的替换格式类似)
sort
sort [选项] [文件名]
选项
- -f: 忽略大小写
- -n: 以数值型进行排序, 默认使用字符串型排序
- -r: 反向排序
- -t: 指定分隔符,默认分隔符是制表符
- -k n[,m] : 按照指定的字段范围排序. 从第n字段开始, m字段结束(默认到行尾)