1.与终端相关的命令
1. who:显示谁登录到系统
2. w:显示谁登录到系统,以及他们正在做什么
3. who am i:显示当前窗口连接到哪一个终端(只在虚拟终端或远程登录的伪终端中有效)
4. tty:显示当前窗口连接到哪一个终端
2.终端常用快捷键
5. 新建终端(在终端窗口中有效)
- shift+ctrl+n:在新窗口打开终端
- shift+ctrl+t:在标签页中打开终端
6. 光标移动快捷键
- ctrl+f:右移一个字符
- ctrl+b:左移一个字符
- alt+f:右移到单词首字母
- alt+b:左移到单词首字母
- ctrl+a:移动到行首
- ctrl+e:移动到行尾
7. 编辑快捷键
- ctrl+d:删除当前位置字符
- backspace:删除前一个字符
- ctrl+t:调换光标处和之前字符
- alt+t:调换光标处和之前单词
- alt+u:光标到单词尾部字母大写
- alt+l:光标到单词尾部字母小写
- alt+c:光标位置字母大写
8. 剪切和粘贴快捷键
- ctrl+k:剪切到行尾
- ctrl+u:剪切到行首
- ctrl+w:剪切光标前的单词部分
- alt+d:剪切光标后的单词部分
- shift+ctrl+y:粘贴最近剪切的文本
9. 控制快捷键
- ctrl+c:终止命令
- ctrl+z:挂起命令到后台
- ctrl+l:清屏
- ctrl+?:撤销上一次的操作
- ctrl+s:锁定终端
- ctrl+q:解锁终端
- ctrl+j:相当于enter
10. 历史命令快捷键
- !!:执行上一条命令
- !xxx:执行最近以xxx开头的命令
- !xxx:p :打印最近以xxx开头的命令
3.文件管理
3.1 查看/切换当前工作目录
1. 查看当前工作目录:pwd
2. 切换当前工作目录:cd 目录路径
3.2 新建文件/目录
1. 新建目录:mkdir 目录路径
# -p 选项,尝试创建目录路径上不存在的父目录
- mkdir -p 目录路径
2. 新建文件:touch 文件路径
#不存在,则新建文件
#存在,则修改文件创建时间
3.3 查看文件/目录
1. 查看目录包含文件的名字属性:ls [目录路径]
#目录路径可以省略,省略则显示当前工作目录中的文件
# -l 选项,查看目录包含文件的详细信息,目录路径省略则显示当前工作目录中的文件
- ls -l [目录路径]
# -a 选择,查看目录中包含的所有文件,包括隐藏文件,隐藏文件以英文句点"."开头
- ls -a [目录文件]
# -dl选项,显示目录本身信息,而不是目录包含文件的信息
- ls -dl 目录路径
2. 查看文件或目录的详细说明信息:stat 文件或目录路径
3. 以树形结构显示目录内容:tree [目录路径]
3.4 复制/删除/移动/更名文件
1. 复制文件:cp 源文件路径 目标文件路径
#复制时,可以指定文件名,也可以不指定
#如果不指定文件名,要在路径后添加:"/",以免让cp命令误认为是文件名
# -r 选项,用于递归复制整个目录。注意:请不要轻易尝试将目录复制到自身内部。
- cp -r 源文件路径 目标文件路径
2. 删除文件:rm 文件路径
# -d 选项,用于删除空目录
- rm -d 空目录路径
# rmdir 只能删除空目录
- rmdir 空目录路径
# -r 选项可以用于递归删除整个非空目录
- rm -r 非空目录路径
3. 移动文件到指定目录:mv 源路径 目标路径
# 可以选择更改文件名或目录名
#如果更改文件名,则在目标路径加上具体文件名,例如 mv parent/file1 parent/file2
#如果不更改,则不加
4. 查看内容
4.1 查看文本文件
1. 查看整个文本文件:cat 文件路径
2. 以分页形式查看长文本文件:less 文件路径 或 more 文件路径
# more命令可以显示全部内容,不过会以一页一页的形式显示,更方便阅读
# 使用空格键,会显示下一页,使用 b 键,会退一页
# less命令和more命令类似,可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页
3. 查看文本文件的开头几行:head [-n num] 文件路径
4. 查看文本文件的结尾几行:tail [-n num] 文件路径
4.2 查看二进制文件
命令格式:od [选项] 文件路径
1. -a | -t a:字符名称显示
2. -c | -t c:以字符形式显示
3. -d | -t d2:2字节10进制
4. -o | -t o2:2字节8进制(od默认选项)
5. -x | -t x2: 2字节16进制
6. -w[size]:每行显示size个字节,默认为16个
5. 修改文件时间
文件时间属性包含:访问时间(atime)、修改时间(mtime)、属性改变时间(ctime)
#file文件存在时
1. 将其所有文件时间修改为当前系统时间:touch file
2. 只将file的atime修改为当前系统时间:touch -a file
3. 只将file的mtime修改为当前系统时间:touch -m file
4. 将file的atime修改为当前日期的前10天,例如:touch -a -d -10day file
5. -d 后,可以加 "2020-01-01 20:20:20","next thursday"
6.文件链接
1. 创建链接文件:ln 目标文件 链接文件
#默认情况下,创建硬链接文件;使用 -s 选项,可创建符号链接文件
-命令:ln -s 目标文件 链接文件
7. 文件内容查找
1. 在文件中查找与正则表达式匹配的行:grep [OPTION] 正则表达式 文件名称
#选项
2. -G:基础正则规则(默认)
3. -E:扩展正则规则
4. -o:仅输出匹配的内容,默认输出匹配内容所在的行
8. 文件位置查找
1. 输出命令的完整路径:which command
# 说明:在环境变量PATH设置的路径中查找
2. 输出命令的文件路径,源代码文件路径以及帮助文档路径:whereis command
#说明:在PATH中设置的路径基础上增加了一些系统目录中查找,查找范围比which稍大
3. 在数据库(mlocate)中查看与模式匹配的文件:locate [OPTION] [PATTERN]
#说明:在使用locate之前,应使用updatedb更新数据库
4. 从文件的方方面面进行查找:find PATH [OPTION] [EXPRESSION]
#说明:在整个文件系统中查找
9. 文件内容分析
1. 统计输出文件中的行、单词、字符的数量:wc [OPTION] [FILE]
#默认统计输出文件中的行、单词、字符的数量,如果没有给出文件,则统计标准输入内容
#选项:
- -c:输出字节数
- -m:输出字符数
- -l:输出newline符,即换行符 '\\n'的数量,即行数
- -w:输出单词数,不统计中文
2. 将文件内容排序后输出:sort [OPTION] [FILE] ...
#如果没有给出文件,则对标准输入的内容进行排序
#选项:
- -b:忽略开头的空白符
- -d:对字母、数字和空白符进行字典排序
- -f:忽略大小写
- -n:数值大小排序
- -r:反序排序
- -h:根据人类使用的单位进行排序,b,k,m,g,t,p等
3. 按行比较已排序好的两个文件:comm [OPTION] 文件1 文件2
#默认输出3列:文件1独有的行|文件2独有的行|两个文件都有的行
#选项:
- --nocheck-order:不检测是否正确排序
- --total:输出汇总信息
4. 按行比较两个文件:diff [OPTION] 文件1 文件2
#diff比comm更强大,不强调文件需排序
#diff的输出并不是给人类阅读,而是由patch命令使用
10. 用户/及用户组管理
1. 创建新用户:sudo useradd [options] user
# 常用选项:
-g group|GID:设置新建用户的初始用户组,即用户登录时使用的用户组
-G grouplist:设置新建用户添加到多个用户组,即用户同时属于多个用户组
-u UID:设置新建用户的id,未给出时,系统从1000开始选择一个未被占用的编号
2. 显示用户、初始用户组及用户所属组信息:id [user]
# 如果省略users时,将显示当前登录用户的信息
3. 创建新用户组:sudo groupadd [option] group
# 常用选项:
-g gid:设置新建用户组的id,未给出时,系统从1000开始选择一个未被占用的编号
4. 修改用户账号:sudo usermod [options] user|uid
# 常用选项
-a:将用户添加到额外的用户组,需要和-G选项一起使用
-G groups:将用户添加到指定用户组,单独使用本选项,会先将用户从原所属组中删
除,然后再将用户添加到本选项后指定用户组中。
-g group|GID:修改用户的初始用户组
-u UID:设置用户的UID
-d HOME_DIR:将用户家目录设置为新的位置
-m:将用户家目录内容移动到新位置,该选项需与-d选项一起使用
-s shell path:修改用户登录时打开的shell程序
5. 设置用户登录密码:sudo passwd user
6. 切换用户:su [user]
7. 删除用户:userdel -r user|uid
# 常用选项:
-r:删除用户时,同时移除其家目录以及邮件池。如果不给出本选项,则保留
8. 删除用户组:groupdel group|gid
9. 改变文件拥有者:chown 用户 文件路径
10.改变文件所属组:chgrp 用户组 文件路径