文章摘要: 摘要内容。
提示
- 这里的命令是分散的、独立的,每个命令都对应一个功能。
- 都属于bash软件包提供的终端命令。
命令
注释
- 普通命令所在目录:
usr/bin/<命令名称> - 管理员命令所在目录:``
查询命令
which [<命令名称>]
案例
路径
查询当前所在路径
pwd
案例
# 显示当前所在路径
pwd
跳转(切换)到指定路径
cd
案例
# 切换到根目录
cd /
# 切换到根目录下的bin目录
cd /bin
# 切换到上一级目录 或者使用命令:cd ..
cd ../
# 切换到home目录
cd ~
# 切换到上次访问的目录
cd -
# 切换到本目录下的名为xx的文件目录,如果目录不存在报错
cd xx(文件夹名)
# 可以输入完整的路径,直接切换到目标目录,输入过程中可以使用tab键快速补全
cd /xxx/xx/x
目录
显示目录内容
ls [<选项>] [<目录路径>]
# `-a` `-all`:显示所有文件,包括隐藏文件,即以`.`开头的文件。
# `-l` `-long`:详细信息显示。
# `-h`:人性化显示信息。
# `-d`:查看目录属性。
# `-i`:查看文件的ID号。
案例
# 查看当前目录下的所有目录和文件(不包含隐藏文件)
ls
# 查看当前目录下的所有目录和文件(包括隐藏文件)
ls -a
# 查看指定目录下的所有目录和文件
ls 【指定目录路径,如:/home】
# 列表查看当前目录下的所有目录和文件(列表查看显示更多东西
ls -alh
创建目录
mkdir [<选项>] [<目录路径>]
# `-p`:开启递归创建,若没有目录则自动创建目录。
案例
# 在当前目录下创建目录
mkdir 【创建的目录名】
# 在指定目录下创建目录
mkdir 【目录+创建的目录名】
删除空目录
- 仅支持删除空目录。
rmdir [<选项>] <目录路径>
案例
# 仅支持删除空目录
rmdir ./text/
拷贝(复制)目录
cp [选项] <原文件或目录> <目标文件或目录>
# `-f`:冲突时强制覆盖目标。
# `-n`:冲突时不覆盖目标。
# `-u`:冲突时覆盖修改时间较旧的目标。
# `-i`:冲突时询问是否覆盖。
# `-r`:递归复制(用于复制目录)。
# `-s`:创建软连接目录。
# `-p`:保留文件属性。
案例
# 将/usr/tmp目录下的tool目录复制到 /opt目录下面
cp /usr/tmp/tool /opt
# 递归复制目录中所有文件和文件夹
cp -r /usr/tmp/tool /opt
剪切(移动)目录
mv [选项] <原文件或目录> <目标文件或目录>
案例
# 修改目录名,同样适用于文件操作
mv 【当前目录名】 【新目录名】
# 将/usr/tmp目录下的tool目录剪切到 /opt目录下面
mv /usr/tmp/tool /opt
# 递归剪切移动目录中所有文件和文件夹
mv -r /usr/tmp/tool /opt
文件
创建软链接(快捷方式)
ln [选项] <原文件> <目标文件>
# `-s`:创建软连接。
案例
ln -s /usr/local/mysql/bin/mysqld /usr/bin/mysqld
创建新文件
touch [选项] [参数] <文件名>
案例
# 在当前目录下创建名为test.txt文件,若文件已存在,则将文件时间属性修改为当前系统时间。
touch test.txt
删除文件
rm [选项] <文件或目录>
# `-r`:删除目录。
# `-f`:强制执行。
案例
# 删除当前目录下的文件(询问)
rm 【文件名】
# 删除当前目录下的文件(不询问)
rm -f 【文件名】
# 递归删除当前目录下的目录(询问)
rm -r 【文件夹名】
# 递归删除当前目录下的目录(不询问)
rm -rf 【文件夹名】
# 递归删除当前目录下的所有目录和文件(不询问)
rm -rf *
# 递归删除根目录下的所有目录和文件(不询问)
rm -rf /*
文件内容
注释
- 推荐直接学习使用 “Vim软件包” 提供的文本编辑终端命令。
显示文件内容
cat [选项] <文件名>
# `-n`:显示行号。
案例
显示文件内容(反向列出)
tac [选项] <文件名>
# `-n`:显示行号。
案例
分页显示文件内容
- 简要说明:
- 英文全称:more
- 所在路径:/usr/bin/more
- 执行权限:所有用户
注释
- 空格/f,翻页
- 回车(Enter),换下一行
- Q/q,退出
格式
more [选项] [参数] <文件名>
选项
参数
案例
# 显示百分比,回车查看下一行,空格查看下一页,"q"退出查看
more 【文件名】
分页显示文件内容(可向上翻页)
注释
- 空格(\f):翻页
- 回车(Enter):换下一行
- 上箭头(PgUp):换上一行
- Q/q,退出
- 输入斜杠后,输入需要查询的内容进行高亮显示,n键遍历下一个符合的内容
less [选项] [参数] <文件名>
案例
# PgUp向上翻页,PgDn向下翻页,"q"退出查看
less 【文件名】
显示文件内容前面几行
- 简要说明:
- 英文全称:head
- 所在路径:/usr/bin/head
- 执行权限:所有用户
head [<选项>] <文件名>
# `-n <行数>`:指定行数。
案例
# 显示文件前100行的内容到终端
head -n 100 <文件名>
显示文件内容后面几行
tail [<选项>] <文件名>
# `-n <行数>`:指定行数。
# `-f`:动态更新显示文件末尾内容。
案例
# 查看文件的后100行/
tail -n 100 【文件名】
文件内容搜索
grep [选项] <文本内容>
案例
sed
- 简要说明:流编辑器,用于处理文本
- 英文全称:
- 所在路径:
- 执行权限:所有用户
格式
grep [选项] [参数]
选项
参数
案例
awk
- 简要说明:文本和数据处理工具
- 英文全称:
- 所在路径:
- 执行权限:所有用户
格式
grep [选项] [参数]
选项
参数
案例
cut
- 简要说明:从文本中提取文本列
- 英文全称:
- 所在路径:
- 执行权限:所有用户
格式
grep [选项] [参数]
选项
参数
案例
sort
- 简要说明:对文本文件内容排序
- 英文全称:
- 所在路径:
- 执行权限:所有用户
格式
grep [选项] [参数]
选项
参数
案例
uniq
- 简要说明:去除文本文件中的重复行
- 英文全称:
- 所在路径:
- 执行权限:所有用户
文件搜索
按照不同的标准来查找文件
find [选项] [匹配条件]
# `-name`:根据文件名搜索。
# `-size`:根据文件大小搜索。
# `-group`:根据所属组搜索。
# `-type`:根据文件类型搜索(f文件,d目录,l软连接文件)。
# `-inum`:根据i节点搜索。
# `-amin`:根据访问时间搜索。
# `-cmin`:根据文件属性搜索。
# `-mmin`:根据修改时间搜索。
# 链接选项
# `-a`:(and)两个条件同时满足时进行显示。
# `-o`:(or)两个条件满足任意一个时进行显示。
案例
# 查找/bin目录下的所有以a开头的文件或者目录
find /bin -name 'a*'
在文件资料库中查找文件
locate [文件名]
案例
字符串匹配
grep -iv [<指定字符串>] [<文件>]
# `-i`:不区分大小写。
# `-v`:排除指定字符串。
案例
文件和目录的权限
提示
终端显示规则
- '-':代表文件。
- 'd':代表文件夹。
- 'r':代表可读。
- 'w':代表可写。
- 'x':代表执行权限。
权限相关说明
- 所属组:
u表示所有者、g表示所属组、o表示其他人、a表示全部人 - 权限控制:
+表示增加权限、-表示减少权限、=表示修改成该权限 - 权限:
r表示读权限、w表示写权限、x表示执行权限 - 权限数字表示:r=4,w=2,x=1
修改权限
chmod [选项] [参数] <{ugoa}{+-=}{rwx}> <文件或目录>
# `-R`:递归修改。
案例
# 为当前用户授权执行权限
chmod +x text.txt
# 8421法,1+2+4=7,“7”说明授予所有权限
chmod 777 text.txt
修改所有者
chown [选项] [参数] <{ugoa}{+-=}{rwx}> <文件或目录>
# `-R`:递归修改。
案例
修改所属组
chgrp [选项] [参数] <用户组> <文件或目录>
# `-R`:递归修改。
案例
设置缺省权限
umask [选项] [参数]
# `-S`:以rwx形式显示新建文件缺省权限。
案例
用户
临时获取管理员权限
# 执行切换命令后,会提示输入密码,不会有输入提示。
sudo [<选项>] [<其他命令>]
# `-l`:列出当前的权限
案例
案例
# 以管理员身份运行命令
sudo apt update
# 列出目前的权限
sudo -l
# 以test用户身份编辑`/home/test`目录中的abcd.txt文件
sudo -u test vi ~/abcd.txt
切换用户
# 执行切换命令后,会提示输入密码,不会有输入提示。
su [<选项>] [<用户名>]
案例
# 切换为用户"host01",输入后回车需要输入该用户的密码
su host01
# 退出当前用户
exit
创建用户
# 需要管理员权限。
useradd [<选项>] [<用户名>]
# `-m`:创建用户主目录(配合`-k [<路径>]`指定创建模板)。
# `-d [<目录>]`:用户主目录路径。
# `-e [YYYY-MM-DD]`:用户到期时间。
# `-g [GID/groupname]`:用户登录组。
# `-G [GIDs/groupnames]`:用户所在的附加组。
# `-p [<密码>]`:用户默认密码。
# `-s [shell]`:用户登录的shell。
# `-c [<备注>]`:用户备注/别名。
# `-D`:查看默认设置(单独使用)。
案例
删除用户
userdel [<选项>] <用户名>
# `-r`:删除用户主目录。
案例
修改用户-密码
passwd [<选项>] [<用户名>]
# `-l`:锁定密码。
# `-u`:解锁密码。
# `-d`:删除密码。
# `-f`:下次登录时强制修改密码。
案例
# 修改自己的密码
passwd
# (需要管理员权限)修改其他用户的密码
sudo passwd username
修改用户-属性
usermod [<选项>] <用户名>
# `-aG [GIDs/groupnames]`:让用户进入新的用户组。
案例
用户组
添加新用户组
groupadd
案例
删除用户组
groupdel
案例