# 命令格式
命令 【选项】【参数】
命令 --help # 命令帮助
# 查看命令依赖库
ldd 【绝对路径】 # 如 ldd /bin/ls
# 搜查命令
whereis 命令 # 命令所在路径以及帮助文档路径
which 命令 # 命令所在路径以及别名(如果有别名)
# 命令别名(退出登陆后失效)
alias # 查看所有别名
alias 【别名】 # 可以查已有的别名,但是如果查系统命令,也会提示not found
type 【命令】 # 可以确定别名是否已被占用,系统命令也会有对应提示
alias 【别名】=【命令】 # 起别名
unalias 【别名】 # 取消别名
alias loo='cd /root;ls;cd ~' # 联合命令,命令间用;隔开
# 永久别名
vi /etc/bashrc # 修改配置文件,文件尾行加入 alias 命令
source /etc/bashrc # 使配置文件生效
磁盘命令
# 磁盘命令 :
# 切换目录
cd 【路径】
cd .. # 返回上一层目录
cd ../.. # 返回上两层目录
cd ~ # 返回当前用户的家目录
cd - # 回到上次切换的目录
pwd # 查看当前目录
# 展示指定目录下的文件列表
ls 【路径】 # 不加路径直接是ls就是查看当前目录下的文件
ls -l # 别名ll 展示文件详细信息
ls -h # 别名ll -h 易读方式展示文件详细信息
ls -a # 展示所有文件(包括隐藏文件)
ls -A # 展示所有文件(包括隐藏文件,但不包含..和.)
# linux 中以.开头的是隐藏文件或隐藏目录
du -h #展示文件占用空间大少(易读方式)
df -h #展示磁盘利用率(易读方式)
文件命令
# 创建
touch # 创建文件以及刷新文件的日期标记(如果文件已存在)
mkdir # 创建文件夹
mkdir aa/bb # 如果aa目录存在,在aa下创建bb文件夹,如果没有aa,报错
mkdir -p aa/bb # 级联创建,如果没有aa,先建aa,再建bb
mkdir -p {d1,d2/{d2_1,d2_2}} # 创建多级目录
ln -s 【源文件】【目标文件名】 # 创建链接文件 -s是软链
# 查看
file 【文件】
ls
df
du
find # 查找
grep # 搜索
cat 【文件】 # 展示文件全部内容,但由于终端问题,长文件会显示最后的部分
cat -n # 展示行号
tac 【文件】 # cat的倒序展示
more 【文件】 # 分页显示文件内容 # 空白键下一页,b上一页,q退出,到达尾页自动退出
more -num # num是具体的整数,一次显示的行数
more +num # 从num行开始显示
less 【文件】 # 分页显示,选项同more,到达尾页不会自动退出
head 【文件】 # 展示开头的若干行(默认10行)
head -n 5 【】 # 展示开头5行
tail 【文件】 # 展示结尾的若干行(默认10行)
tail -f 【文件】 # 始终查看最新内容
# 复制移动文件
cp 【源文件】【目标文件】
cp -i # 覆盖时提示
cp -f # 强制覆盖
cp -r # 递归复制
cd -p # 不改变复制文件的属性
mv 【源文件】【目标文件】 # mv选项同cp,既是移动命令 也是重命名命令
mv -u # 目标文件不存在 或者 源文件比目标文件新 才移动
# 删除
rmdir 【文件夹】 # 删除空文件夹
rmdir -r # 级联删除,删除目标空文件夹,如果这个空文件夹的上一层也空了,那么继续删除
rm 【文件】 # 删除文件 或者文件夹 默认是 -i
rm -i # 删除前逐一询问确认
rm -f # 无需提示,直接删除
rm -r # 逐一删除文件及目录
rm -rf # 删除文件夹
rm -rf * # 删除当前目录下的所有文件
rm -rf / # 删除根目录(极度危险操作)(删库跑路系列)
# 通常,保险起见,不直接用rm,用mv命令移动文件到回收站。
# 文件修改 vi文本操作看下一篇笔记
vi 【文件名】 # 如果当前目录没有该文件,则新建空白文本
终端
# 选择shell
echo $SHELL # 查看当前shell
cat /etc/shells # 查看系统支持的所有shell
sh # 上一个命令中如果有这个shell,直接输入进行切换shell,退出shell用exit
# 清屏
clear # 该命令往上翻滚,还能看到记录
ctrl + l # 命令clear的快捷键,不算命令
reset
# 打印命令 相当于python的 print
printf
echo 【变量或字符串】 # 把字符串或者变量值打印到屏幕
echo -n # 输出后不换行
echo -e # 处理特殊符号 如\a \b \c \f \n...
echo $变量名/${变量名} # 推荐用后一种,形成良好习惯
@echo on/off # dos中是否显示命令行自身的开关,和linux无关
echo ${PATH} > /home/a.txt # 重定向输出为a.txt文件(覆盖)
echo $PATH >> /home/a.txt # 重定向输出为a.txt文件(追加)
# 管道
|
# command -a|command -b|command -c|......
# 管道命令只处理前一个命令的正确输出,不处理错误输出;
# 管道右边的命令,必须能够接受标准输入的数据流命令才行;
# 管道符可以把两条命令连起来,它可以连接多个命令使用
ll | tee -a a.txt | grep top # 用tee保存文件可以让信息流继续往下一个管道过去
# 输入输出 重定向
# > # 输出重定向(覆盖)
# 1> # 等同于 > 正常文本输出
# 2> # 错误文本输出
# >> # 输出重定向(追加)
# < # 输入重定向(只读) # 命令的输入参数由键盘输入 改为文件输入
# 0< # 等同于 <
# << # 输入重定向 这个暂时未找到用法·
>a.txt # 清空a.txt
# 命令运行 正常信息输出为n.txt 报错信息输出为e.txt
ll a.txt 1>n.txt 2>e.txt
# 把查看b.txt文件的信息输入到c.txt,如果命令报错,报错信息也输入到c.txt中
ll b.txt > c.txt 2>&1
grep root < /etc/passwd # 在passwd文本中查找root字符
cat > a.txt << bb # 持续向a.txt中输入字符,直到bb结束
bbb
abb
bb