第二章 常用命令一
1.终端操作
1.1终端快捷键
- 需要注意,alt会跟别的快捷键冲突
control + L # 清屏 control + s # 锁定屏幕 ! control + q # 解锁 ! control + c # 终止命令 control + a # 移动 cursor 到行首 control + e # 移动 cursor 到行尾 control + xx # 移动 cursor 到上次位置 ! control + u # 删除到行首 control + k # 删除到行尾 control + d # delete alt + r # 删除整行 alt+f # 光标向右移动一个单词尾 alt+b # 光标向左移动一个单词首
1.2 补全功能
-
-
Shell 会根据环境变量从左到右依次查找,找到第一个匹配的则返回
-
如果部分命令只能搜索到一个则可以使用tab 补全
-
如果有多个则使用两次tab提示
-
-
目录补全
-
把用户给定的目录字符串只能搜索到一个则直接补全
-
如果匹配到多个则使用两次tab显示所有文件目录列表
-
-
回显echo
-
# 获取环境变量 $ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
1.3 帮助
-
help command
-
man bash
2. 外部命令
-
command --help/-h
-
man command(q退出)
-
官方文档
3. Man
-
9个章节
# 显示man man man 1 用户命令 2 系统调用(内核提供的功能) 3 c库调用 4 设备文件 5 配置文件 6 游戏 7 其他 8 管理类命令 9 linux内核api
2. 目录结构
1. 结构(4)
-
-
目录严格区分大小写
-
隐藏文件以 . 开头
-
路径分隔符为 /
2. 文件命令规范(4)
-
文件名最长为255个字符
-
包括路径在内最长4095个字符
-
除了 / 和 NULL 以外,其他字符都生效
-
大小写敏感
3. 颜色表示(6)
-
蓝色:表示目录
-
绿色:表示可执行文件
-
红色:表示压缩文件
-
蓝绿色:表示链接文件
-
白色:普通文件
-
灰色:其他文件
-
蓝底白字:硬链接
-
红底黑字:软链接,原文件被删除
4. 文件系统结构(20)
/ # 根目录
/boot # 存放系统引导文件(内核文件、引导加载器)
/run # 服务或系统启动后生成的文件
/etc # 配置文件
/home # 普通用户的家目录
/root # root用户家目录
/bin # 所有用户均可使用的命令
/sbin # 管理员可以使用的命令,管理类命令
/lib # 基本库文件,win的 *.dll, linux的 *.so
/lib64 # 专门用于64位操作系统的一些辅助库文件
/media # 便携式文件的挂载点
/mnt # 临时文件的挂载,光盘、u盘
/tmp # 存放临时文件
/srv # 系统上允许的服务用到的数据
/opt # 一般第三方的安装程序
/usr # 安装程序
/var # 存放经常变化的数据,如:日志(/var/log), message:系统启动日志,sssd:链接的用户信息,secure:其他用户登录信息
/proc # 存放内核和进程的虚拟文件
/dev # 存放设备信息
/sys # 存放硬件相关的虚拟文件
库文件 | 配置文件 | 帮助文件 | |
---|---|---|---|
/bin | /lib | /etc/* | /usr/share/man |
/sbin | /lib/64 | /usr/local/etc/* | /usr/share/doc |
/usr/bin | /usr/lib | /usr/local/share/man | |
/usr/sbin | /usr/lib64 | /usr/local/share/doc | |
/usr/local/bin | /usr/local/lib | ||
/usr/local/sbin | /usr/local/lib64 |
5. 相对路径和绝对路径
-
-
相对路径:相对于某个文件或目录开始,可以使用简短的形式
-
.. 代表父目录, . 代表当前路径
-
# esc . 获取上条命令的参数 # 获取文件名 basename /etc/sysconfig/network-scripts/ifcfg-ens33 # 获取文件目录 dirname /etc/sysconfig/network-scripts/ifcfg-ens33
1. cd pwd
-
可以使用相对路径也可以使用绝对路径
cd /opt cd ../etc # 直接回到用户家目录 cd # 回到上次目录 cd - # 查看当前目录的绝对路径,print working directory pwd
1. 参数
-
-a / —all:表示所有(-A除了 . 和 ..)
-
-l:使用长格式显示,显示mtime
-
-R:递归显示指定文件中的所有文件
-
-S:根据文件大小降序显示
-
-u
-
with -lt 按照atime排序,the newest first
-
with -l 不排序,显示atime
-
按照atime排序显示
-
-
-t:根据修改时间排序,the newest first
-
-c
-
with -lt 表示按照ctime排序显示
-
with -l 不排序,显示ctime
-
按照ctime排序
-
-
-d:只显示目录文件
-
-h:自动调节文件大小的单位(一般和l连用)
# 查看所有文件 ls -a / --all # 长格式显示文件 ls -l # ls -la # 递归查看某个目录下的文件 ls -R /etc # 长格式显示目录本身 ls -ld 目录名 # 竖着显示文件 ls -1 /etc # 根据文件的大小进行排序 ls -lS / # 降序 ls -lSr / # 升序 # 只能显示当前目录下的目录 ls -d */ # 自动调节文件大小的单位(一般和l连用) ls -h /
-
创建新文件、修改文件的时间戳
1. 用法
-
touch [选项]... 文件...
2. 参数
-
-a 仅改变atime 和ctime
-
-m 仅改变mtime和ctime
touch a.txt # 文件不存在创建,存在则修改时间戳 touch a{1..10} # 命令的展开 touch a{a..z} touch a{1..10..2} touch a{a..z..2} echo a{1..10}
-
命令保存在 ~/.bash_history中
-
当用户登录系统后,会去读取 ~/.bash_history的内容,在正常退出后会把历史保存到改文件中
键盘上上下键查找 # 查找所有执行过的命令 history # 重复执行 第242 个命令 !242 # 重复执行最后一次命令 !! / !-1 # 重复执行倒数第二个命令 !-2 # 调出最后一次命令 ctrl + p # 只执行命令,去掉参数(如:cd) !:0 # 查找最近一次包含 echo 的命令 !echo # 搜索之前执行过命令 control + d/g 退出 control + r # 调用最后一次命令的参数 ls + esc . # 只显示最后10条命令 history 10 # 清空命令历史 history -c
-
用法:seq [选项]... 尾数
-
或:seq [选项]... 首数 尾数
-
或:seq [选项]... 首数 增量 尾数
seq 10 seq 1 10 touch a`seq 1 2 10` # 命令的引用 ehco $(date +%T) >> filename echo `date`
-
*
代表任意个字符 -
?表示任意单个字符
-
[0-9] 表示数字
-
[a-z]字母:从a-z,并且包括A-Y
-
[A-Z]字母:从A-Z,并且包括b-z
-
[abcde]:其中一个
-
[^abcde]:取反
-
[:lower:]/[:upper:]:表示小写/大写字符
-
[:digit:]:表示数字
-
[a-zA-z] / [:alpha:]:所有字母
-
[a-zA-Z0-9]/ [:alnum:]:所有单个
ll a[0-9] # 查看以 a 开头的所有文件 ls /etc/a* ls a[abcde] or ls a{a..e} ls a[^abcde] ls a[[:lower:]]/ ls a[[:upper:]] ls a[[:digit:]]
-
查看文件状态
[root@localhost test]#stat aa 文件:"aa" 大小:0 块:0 IO 块:4096 普通空文件 设备:fd00h/64768d Inode:17652659 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:admin_home_t:s0 最近访问:2019-07-30 11:58:56.110953195 +0800 最近更改:2019-07-30 11:58:56.110953195 +0800 最近改动:2019-07-30 11:58:56.110953195 +0800 创建时间:- # access:访问时间,(读取文件内容,touch) atime # modify:修改时间,(修改文件内容,touch) mtime, # change:改动时间,(修改文件内容,touch) ctime,改变状态或属性如:mv,chown等
7. copy
1. 用法
-
cp [选项]... [-T] 源文件 目标文件
-
或:cp [选项]... 源文件... 目录
-
或:cp [选项]... -t 目录 源文件...
-
-i:覆盖之前提示,交互
-
-n:不覆盖已存在的文件,i失效
-
-ni:会提示,谁在后谁有效
-
-r:递归复制
-
-rf:强制覆盖
-
-rfv:显示详细的复制过程
-
-b:覆盖之前对源文件做备份 目标文件名~
-
—backup=numbered:覆盖之前对源文件做备份 文件名~1~,~2~...
-
-p:复制文件完全一样,保留原来的属性
cp 1.txt 2.txt cp 1.txt test cp 1.txt 2.txt 目录 cp -r test test2
-
-
如果目标不存在则新建并写入数据,存在则直接覆盖,提示使用
-i
选项 -
如果目标是目录,则直接在目标文件夹中新建一个同名的文件
-
如果复制多个文件,则目标必须是目录(存在)
-
-
如果source是目录
-
如果目标不存在,则创建指定的目录,使用
-r
选项 -
如果目录存在
-
目标是一个文件,则报错
-
-
-
8. mv
1. 用法
-
mv [选项]... [-T] 源文件 目标文件
-
或:mv [选项]... 源文件... 目录
-
或:mv [选项]... -t 目录 源文件...
2. 参数
-
-i:交互式
-
-f:强制移动
-
-b:备份和copy一样
-
-v:显示进度
9. rm
-
Remove (unlink) the FILE(s).
1. 用法
-
rm [选项]... 文件...
2. 参数
-
-i:交互(ctrl+backspace)
-
-f:强制删除
-
-r:递归删除