第二章 常用命令一

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 补全功能

  1. 外部变量/命令补全:cp

    • Shell 会根据环境变量从左到右依次查找,找到第一个匹配的则返回

    • 如果部分命令只能搜索到一个则可以使用tab 补全

    • 如果有多个则使用两次tab提示

  2. 目录补全

    • 把用户给定的目录字符串只能搜索到一个则直接补全

    • 如果匹配到多个则使用两次tab显示所有文件目录列表

  3. 回显echo

    • 输入什么就输出什么,并加入一个换行符

# 获取环境变量
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

1.3 帮助

1. 内部命令
  • 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)

  1. 树形结构

  2. 目录严格区分大小写

  3. 隐藏文件以 . 开头

  4. 路径分隔符为 /

2. 文件命令规范(4)

  1. 文件名最长为255个字符

  2. 包括路径在内最长4095个字符

  3. 除了 / 和 NULL 以外,其他字符都生效

  4. 大小写敏感

3. 颜色表示(6)

  1. 蓝色:表示目录

  2. 绿色:表示可执行文件

  3. 红色:表示压缩文件

  4. 蓝绿色:表示链接文件

  5. 白色:普通文件

  6. 灰色:其他文件

  7. 蓝底白字:硬链接

  8. 红底黑字:软链接,原文件被删除

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

3. 常用命令

1. cd pwd

  • 可以使用相对路径也可以使用绝对路径

cd /opt
cd ../etc
# 直接回到用户家目录
cd
# 回到上次目录
cd -
# 查看当前目录的绝对路径,print working directory
pwd

2. ls

1. 参数

  1. -a / —all:表示所有(-A除了 . 和 ..)

  2. -l:使用长格式显示,显示mtime

  3. -R:递归显示指定文件中的所有文件

  4. -S:根据文件大小降序显示

  5. -u

    • with -lt 按照atime排序,the newest first

    • with -l 不排序,显示atime

    • 按照atime排序显示

  6. -t:根据修改时间排序,the newest first

  7. -c

  • with -lt 表示按照ctime排序显示

    • with -l 不排序,显示ctime

    • 按照ctime排序

  1. -d:只显示目录文件

  2. -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 /

3. touch

  • 创建新文件、修改文件的时间戳

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}

4. history

  • 命令保存在 ~/.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

5. seq

  • 用法:seq [选项]... 尾数

  • 或:seq [选项]... 首数 尾数

  • 或:seq [选项]... 首数 增量 尾数

seq 10
seq 1 10
touch a`seq 1 2 10`
# 命令的引用
ehco $(date +%T) >> filename
echo `date`

文件通配符

  1. *代表任意个字符

  2. ?表示任意单个字符

  3. [0-9] 表示数字

  4. [a-z]字母:从a-z,并且包括A-Y

  5. [A-Z]字母:从A-Z,并且包括b-z

  6. [abcde]:其中一个

  7. [^abcde]:取反

  8. [:lower:]/[:upper:]:表示小写/大写字符

  9. [:digit:]:表示数字

  10. [a-zA-z] / [:alpha:]:所有字母

  11. [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:]]

6. stat

  • 查看文件状态

[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 目录 源文件...

2. 参数(9)

  1. -i:覆盖之前提示,交互

  2. -n:不覆盖已存在的文件,i失效

  3. -ni:会提示,谁在后谁有效

  4. -r:递归复制

  5. -rf:强制覆盖

  6. -rfv:显示详细的复制过程

  7. -b:覆盖之前对源文件做备份 目标文件名~

  8. —backup=numbered:覆盖之前对源文件做备份 文件名~1~,~2~...

  9. -p:复制文件完全一样,保留原来的属性

cp 1.txt 2.txt
cp 1.txt test
cp 1.txt 2.txt 目录
cp -r test test2
  • 如果source是文件

    • 如果目标不存在则新建并写入数据,存在则直接覆盖,提示使用-i选项

    • 如果目标是目录,则直接在目标文件夹中新建一个同名的文件

    • 如果复制多个文件,则目标必须是目录(存在)

  • 如果source是目录

    • 如果目标不存在,则创建指定的目录,使用 -r选项

    • 如果目录存在

      • 目标是一个文件,则报错

      • 目标是一个目录,则在目标目录中创建同名目录

8. mv

  • 移动、重命名

1. 用法

  • mv [选项]... [-T] 源文件 目标文件

  • 或:mv [选项]... 源文件... 目录

  • 或:mv [选项]... -t 目录 源文件...

2. 参数

  1. -i:交互式

  2. -f:强制移动

  3. -b:备份和copy一样

  4. -v:显示进度

9. rm

  • Remove (unlink) the FILE(s).

1. 用法

  • rm [选项]... 文件...

2. 参数

  1. -i:交互(ctrl+backspace)

  2. -f:强制删除

  3. -r:递归删除

posted @ 2020-07-02 15:38  炜琴清  阅读(94)  评论(0编辑  收藏  举报