command(指令) [-options(选项)] arg(参数) agr2 ...
// 一条指令的三要素之间要用空格隔开
// 多个命令要使用`;`隔开
// 如果一条命令不能再一行写完,在行尾使用`\`标明该条指令未结束
Tab键
// 按一下tab键表示文件名补齐
// 按两下tab键表示命令补齐
基本常用
man 命令名称 # 查询手册
- man 查看常数代表查找范围 例如c库 man 3 xxx
echo将后边的文本显示出来 默认输出在屏幕上
# echo {num1..num2} 类似python range(num1,num2) 在num1前加上前缀类似字符串拼接 例如 echo{01,10} ->00,01...10 或 echo num{1,5} -> num1,num2...num5
- n # 表示取消输出每一行结尾的换行符
- e # 让echo支持 \n 等特殊转义字符
- A # 显示各种特殊符号(换行等)
pwd # 当前目录
ls(list) /name # 查看name中的文件
- a # 查看隐藏文件
- l # 查看name中详细的文件
- F # 在目录文件后加 "/" 在其他文件类型后加各种符号区分
- t # 按照文件的修改时间进行排序
- r # 倒叙排列
- h # 人类可读
- i # 查看inode值
- lh # 查看文件大小等
- lhi # 每一列的含义(以空格拆分每一列)分别是 inode号码 文件的类型 文件权限(.与selinux有关) 文件的硬链接数量 文件的所有者 用户属于的家庭 文件的大小 文件的修改时间 文件名(文件名不是文件的属性)
history [num] # 显示历史命令 如果指定num则显示固定的行
`其他命令` # 命令置换
例如: ls `pwd` # 先执行pwd的输出 然后再执行 ls pwd输出
cp(copy) # 复制 cp/name/files /目标文件夹 # 赋值files文件到目标文件夹
# 备份 cp/name/files /name/files.bak(后缀随便加) 原地备份
- r # 递归复制目录及其目录下的内容
- p # 复制的时候保持属性不变
- a # 复制所有 类似 -p,d,r
mv(move) # 移动 mv /name/ /目标/ 将name文件夹移动到目标文件夹
# 可以进行改名操作 mv old_name new_name
rm(remove) # 删除 rm/files.txt -> y/n 删除files文件 -> 删除/取消
- f # 删除文件不提示
- r # 递归删除目录及其目录下的内容
- rf # 递归删除目录及其目录下的内容不提示
用户相关
whoami # 查看当前用户
hostname # 查看当前主机名
useradd 用户名 # 添加用户
-d 指定用户家目录
-g 指定用户组
-G 指定用户的附加组
-s 指定登录后的shell
-u 指定创建用户的uid
-r 创建一个系统组 例如 useradd -r xxx 创建一个xxx系统用户 uid是根据系统分配倒序 centos7 从999-1 centos6 从499-1
usermode 用户名 # 更改用户的属性 与添加用户参数类似
-l 新用户名 旧用户名 # 改名
-m # 如果没有就创建
userdel 用户名 # 删除用户
- f 强制删除用户
- r 同时删除用户以及家目录
groupadd 用户组名 # 创建用户组
groupdel 用户组名 # 删除用户组
id 用户名 # 查看用户信息也能查看用户是否存在以及属于哪个用户组
passwd 用户名 # 添加密码、修改密码
su(switch user) - 用户名 # 切换用户
漏斗家族:
| # 做数据传递使用 将 `|`左边指令的输出当做右边指令的输入
>(1>)# 标准输出重定向 先把文件内容清空 然后再将内容放在文件的最后一行
>> (1>>) # 追加重定向 把内容放在文件的最后一行
1 代表标准输出 执行正确的内容才会通过漏斗
2> # 标准错误重定向
2>> # 错误追加重定向
&> # 不论正确与否都输出
&>> # 不论正确与否都追加
>>/name/files 2>>/name/files # 同时记录文件的对错内容 或使用(2>&1)
< # 输入重定向
<< # 追加输入重定向
文件相关
file /name/files # 显示文件的详细类型
分为:
executable # 命令
text # 文本文件
tar # 压缩包
wc # wc -l /name/files
-w # 统计单词数 可以配合 ls | wc -w 查看文件数
- l # 统计文件的信息 用来获取行数等
cat /name/files.txt 查看文件的内容 # 适合使用小文本
- n # 显示文件内容及对应行号
mkdir(make directory) /name # 创建目录
- p # 可以一次性创建多层目录
touch /name/files # 在name文件夹下创建files文件 或 更新文件的时间戳 # 可以同时创建多条
cp(copy) # 复制 cp/name/files /目标文件夹 # 赋值files文件到目标文件夹
# 备份 cp/name/files /name/files.bak(后缀随便加) 原地备份
- r # 递归复制目录及其目录下的内容
- p # 复制的时候保持属性不变
- a # 复制所有 类似 -p,d,r
mv(move) # 移动 mv /name/ /目标/ 将name文件夹移动到目标文件夹
# 可以进行改名操作 mv old_name new_name
rm(remove) # 删除 rm/files.txt -> y/n 删除files文件 -> 删除/取消
- f # 删除文件不提示
- r # 递归删除目录及其目录下的内容
- rf # 递归删除目录及其目录下的内容不提示
head # head files.txt 取出文件的前几行 默认为十行
- n(num) # 取出前num行
tail # tail files.txt 取出文件的后几行 默认为十行
- n(num) # 取出后num行
- f # 显示文件实时更新的内容 也可以直接使用tailf
ln # 创建硬链接 # 不能对目录创建硬链接但是可以创建软链接
- s # 创建软链接 ln -s /name/files 软链接name # 软链接存放着原文件的位置,原文件被删除软链接失效
# 添加快捷方式 例如 python ln -s /opt/python36/bin/python3.6 /usr/local/sbin/python3.6 # 指令目录 # 就不用单独在PATH目录去添加路径
# Ps:当源文件变化时,软链接和硬链接都会跟着变化
lsof # lsof找到系统所有的文件
# lsof |grep delete # (delete标记 这个文件硬链接数量为0,进程调用数不为0) 重启返回第一列软件名称
# 重启对应软件 软件的绝对路径 restart
tar # 创建查看解压压缩包 tar中参数可以不加 '-'
tar zcf 压缩包存放的位置 压缩的目标 # zcvf 创建压缩包
tar ztf/tf 压缩包的位置 # ztf 查看压缩包
tar zxf/xf 压缩包的名字 -C 指定的路径 # 需要先进入压缩包的位置 指定路径可以不写默认在同目录下解包
- z # 通过gzip压缩工具进行压缩 压缩.gz后缀
- c # 表示create 创建压缩包
- v # 显示压缩或解压的过程
- f # 表示file 接上压缩包的名字 # 要写到最后
- t # 表示list 显示压缩包的内容
- x # 解压
- C # 解压到指定目录
-- exclude = /name # 需要排除的name文件/文件夹等
unzip 文件name # 解压 .zip文件
yum install -y unzip zip
gzip # 用来压缩较大文件(以60%-70%来节省空间)
gzip * # 压缩当前目录所有文件为.gz文件 # 可以后跟name
gzip -dv * # 把上列中每个压缩的文件解压,并列出详细信息
gzip -l * 显示压缩文件的信息,并不解压
tar -cf my.tar my_first.py
gzip -r my.tar # 压缩一个tar备份文件,扩展名是tar.gz
-d # 解开压缩文件
-f # 强行压缩文件
-h # 在线帮助
-l # 列出压缩文件的相关信息
-L # 显示版本与版权信息
-r # 递归处理,将制定目录下的所有文件及子目录一并处理
-v # 显示执行过程
-C # 指定目录
-z # 调用gzip的压缩解压格式
修改权限:
chmod(change mode)
# chmod num(以权限对应的数字给与权限 分为所有者权限(u),家人权限(g),陌生人权限(o)) 需要修改权限的文件
# chmod 需要修改权限者编码(u,g,o)+-=权限码(r,w,x,-) 需要修改权限的文件
修改所有者
chown(change owner)
# chown 属主 文件等需要更改属主的内容
修改所有组
# chgrp 组名 文件等需要更改属组的内容
umask # 控制系统默认权限的命令
# 计算 对于目录 777 直接减去umask 对于文件 666 减去 umask 如果 umask某一位是奇数,减完之后奇数位需要加1
# umask num # 修改umask值
文件系统的属性(文件属性)
lsattr # 查看属性 权限 lsattr 文件
e # 默认
a # 只能追加
i # 不可修改
chattr # 设置属性(加锁,属性则为钥匙) chattr +-属性 文件
进程管理
ps
-ef # 查看linux当前进程 # 可以配合 | grep 等进行筛选
-a # 显示所有进程
-u # 用户以及其他详细信息
-x 显示没有控制终端的进程
状态补充:
R 正在执行
S 阻塞
T 暂停
Z 不存在但暂时无法消除
D 不可中断的静止
< 高优先级的进程
N 低优先级的进程
L 有内存分页分配并锁在内存中
top # 查看当前进程,任务详情,以及系统负载等详细信息
renice # 调整任务优先级
-n num PID # NI值调节
kill 进程pid(在ps -ef中) # 杀死进程
-9 # 强制终止信号(危险命令,强制杀死进程,以及相关依赖)
pkill 进程名称 # 支持名称杀死所有有关进程
网络相关
ifdown ethx # 关闭网卡
ifup ethx # 开启网卡
ifconfig [指定网卡] # 显示/查看网卡信息-ip地址
# 如果没有ifconfig 运行 yum install net-tools
# ethx 网卡
# ifconfig 网卡name ip netmask 子网掩码 // 设置网卡name的ip以及子网掩码
系统维护(详情上文有)
/etc/passwd 存放用户信息
/etc/group 存放组信息
/etc/adduser.conf 新增用户配置信息
/etc/skel 新用户公用的配置文件
/etc/interfaces # ip地址相关
/etc/hosts
/etc/resolv.conf