1.man 命令 或 help 命令
查看命令帮助
man(manual)依赖于文档文件,更详细,help是程序内置帮助命令。
2.reboot 重启
shutdown -r now 重启
poweroff或halt 关机
shutdown -h now 关机
3.pwd 显示当前目录地址
print working directory
4.cd 改变目录位置 change directory
cd - 上一次所在的目录
cd或cd ~ 转到home目录(和根目录是不同的,普通用户为/home/用户名,root用户为/root)
cd . 当前目录(用法:cd ./src 转到当前目录下的src文件夹,也可以直接用cd src,如果要去根目录下的src,cd /src)
cd .. 上一级目录
cd ../.. 上两级目录
cd / 根目录
5.tree 路径
以树形结构显示指定目录(需要安装tree工具包)
tree -L 1 / 显示根目录下一层目录的树型结构(L必须大写Level)
-d 只显示目录(文件夹directory)
6.ls 显示目录下的内容 list
-l 显示详细信息(long)
-a 显示所有文件(all)
-A 显示大部分文件(不包过.和..)(Almost-all)
-d 只列出当前目录,可以和l结合使用
ll 两个ll是显示所有未隐藏文件的详细信息。
-i 显示inode节点 -h 人类可读 -F 不同文件结尾加不同标识 --time-style 修改时间格式
-r 反转排序 -t 按修改时间排序
7.mkdir 创建目录 make directory
mkdir /my 在根目录下创建my文件夹
mkdir a b c d 在当前目录下同时创建4个目录a b c d
-p 创建父目录,例:mkdir /my/test 会报错,因为不存在my目录,而mydir -p /my/test 就能都创建出来。
8.touch 创建文件
touch 1.txt 在当前目录下创建文件1.txt
touch a b c d 在当前目录下同时创建4个文件a b c d
注:Linux中一切皆文件,所以同一目录下的目录和文件名不能重复。
touch {1..10}.txt 创建1.txt、2.txt、... 10.txt 共10个文件
9.cp 复制 copy
cp 文件名 指定目录
cp -r 目录名 指定目录 (复制目录的话要加参数-r recursive递归,会将目录下的内容全部复制)
-p 保持文件属性(如文件大小、创建时间、权限、所有者等)
-d 如果复制的是符号链接(快捷方式),仅复制符号链接本身,并保留符号链接所指向的源文件
-a 等同于-pdr
在当前目录下做备份:
10.alias 别名
别名的意思就是默认执行,例如当我们执行cp命令不加参数时,实际执行的是cp -i,意思是当有重复名称的文件时,系统会提示确认是否覆盖原文件,如果有很多的话,每一条我们都要行进确认操作,就很麻烦
在命令前面加一个反斜杠,执行的就是命令本身,而不是别名。(还有一种方法是使用命令的全路径,如/bin/cp)
11.rm 删除 remove
-f 强制删除(force)
-r 递归删除,删除目录和文件(recursive)
如何防止rm误删数据?
1.放弃使用rm,用mv或find替代
2.不删除,只是移动到回收站(/tmp)
3.一定要删,先备份
4.不要使用rm 目录路径 这种方式,先进入目录地址,在进行删除当前目录下的文件。
5.为rm设置别名,提醒自己和组员。
12.unalias 取消别名
alias cd=‘cd /’ 设置别名
unalias cd 取消别名
13.mv 移动 move
相当于剪切
mv -t 路径1 路径2 正常是将1移动到2里面,加上-t是将2移动到1里面
注:mv /backup/ /tmp会将backup本身也移动走,如果只想移动子文件:mv /backup/* /tmp
14.echo 输出和打印
-n 不换行输出
-e 识别转义字符
printf 格式化打印,例:printf "你 好"
15.查看运行级别
runlevel 或者 who -r
16.init 切换运行级别
init 数字
CentOS6 0 关机 1 单用户模式 2 多用户模式 3 命令行模式 4 未使用 5 图形化模式 6 重启
CentOS7 0 poweroff 1 rescue 2/3/4 multi-user 5 graphical 6 reboot
17.显示文件内容
more/less 分页显示文件内容
head 显示文件内容头部,默认10行 -n 可指定显示行数(从第一行开始记)
tail 显示文件内容尾部,默认10行 -n 可指定显示行数(从最后一行向上记)
tac 行垂直翻转显示内容(从最后一行开始显示)
rev 行水平翻转显示内容(如abcd 显示为 dcba)
18.tr 替换或删除字符
tr "更换后的字符" "要更换的字符" < 文件名
[root@pm.com ~/test]# cat 1.txt
abcdefg
[root@pm.com ~/test]# tr "a" "1" < 1.txt
1bcdefg
[root@pm.com ~/test]# tr "a-g" "1-5" < 1.txt
1234555
19.which 显示命令完整路径
变量PATH(存放所有命令的路径,以分号隔开,按前后顺序查找,找到即停止):
20.whereis 显示命令及其源码、说明文档的完整路径
21.find 查找目录下的文件
查找原理:磁盘遍历,速度慢。
语法格式:find path -option [-exec]
path:查找的路径
-option:查找的选项类型
-name 按名称查找,例:find / -name "he*.txt" 注意,多文件查找要用单引号' '
-type 按类型查找,例:find / -type d
-mtime 按修改时间查找,例:find / -mtime 3 注:-3代表距现在3天以内,3代表距现在第3天,+3代表距现在3天以前
-atime 按文件访问时间查找
-ctime 按文件创建时间查找
-user 按文件属主查找,例:find / -user ‘root’
-group 按文件属组查找,例:find / -user ‘root’
-follow 如果遇到符号链接文件,就跟踪到链接所指的文件
-size 按文件大小查找,例:find / -size +1M 查找大于1M的文件
可以使用*进行模糊查找,如查找hello.txt文件:find / -name "he*.txt"
-exec 对查找的结果再处理,格式为-exec command {} ;,例:
注:{}代表前面查找的内容,分号是结束标志,转义字符(可能分号在别的地方代表某个含义,;就是让其回归本质,就只是分号)
22.xargs 从标准输入执行命令
xargs命令是给其他命令传递参数的一个过滤器。
它能够将标准输入或管道中的数据转换为特定命令的命令行参数。
也可以将单行或多行文本输入转换为其他格式的数据,比如单行变多行或者多行变单行。
xargs的默认命令是echo,默认分隔符是空格或换行。
-n 后面加数字,指定几列显示。
-d 后面加字符串,指定列之间的分隔符。
-i 当标准输入不是作为xargs命令的最后一项使用时,使用参数-i,即用{}代表前面传递过来的数据
-I 可自定义符号,如 xargs -I [] cp [] ~/test 默认-i使用的是{},即xargs -i cp {} ~/test
23.date 显示系统时间
date -s "2020/01/01 00:00:00" 修改时间
24.tar 打包压缩
-z 用Gzip压缩或解压 -c 创建压缩文件 -v 输出打包内容(过程) -x 解压 -C 解压的目录
-h 跟随软链接(打包时对软链接的本体进行打包,而不是打包链接) -P 使用绝对路径(默认相对路径)
--exclude 排除不打包的文件 -X 根据文件内容排除 -t 查看压缩包内容
-f 备份的文件名(一般f放在所有参赛最后面,因为有的参赛放在f后面会报错)
注:后面可跟多个目录,共同打包
查看打包内容: tar -tf test.tar.gz
解压文件包:tar -xf test.tar.gz -C /test
25.stat 查看文件属性
26.ln 创建链接文件
硬链接:ln 源文件 链接文件
软链接:ln -s 源文件 链接文件
27.cut 取列
-d 指定分隔符 -f 指定第几列(1,2,3或1-3)
注:输出内容之间包含分隔符。
-c 按字符取列,如cut -c1-5,10-15 test.txt 即取每一行的第1到第5个字符以及第10到第15个字符
28.install 复制文件并设置属性
-m 设置目标文件权限,不设置的话默认为755
-o 设置目标文件属主 -g 设置目标文件属组
-d 如果只设置路径,则为创建空目录
可同时复制多个文件:
29.dd 创建虚拟系统文件
30.mount 挂载
-t 指定文件系统类型 -a 将/etc/fstab中的信息立即挂载 -o ??
卸载:umount /mnt ===> -lf 允许强制卸载
31.blkid 查看块设备属性
32.检查磁盘并修复
fsck 检查修复ext文件系统 xfs_repair 检查修复xfs文件系统
1.不能对好的磁盘操作,会删除数据
2.使用前先卸载挂载点
33.dumpe2fs 查看ext文件系统细节
dumpe2fs /dev/sdb1
34.mkfs 格式化分区并创建文件系统
-t 指定文件系统类型 -b 指定block数量 -I 指定inode数量
mkfs -t ext4 -b 4096 -I 512 /dev/sdb1 #centos7中支持的单个block最大容量为4k
35.diff 文本比较
或者:
36.rpm 包管理器(基本不用)
rpm -i 包名 安装install
-v 显示安装过程 -h 用#显示安装进度条 -U 升级软件包 -e 卸载软件包 --nodeps 忽略依赖
-q 查询 -a 所有 -l 显示软件包中的所有文件列表 -f 查询文件或命令属于哪个软件包
37.yum 软件包管理器(Yellowdog Updater Modified 解决rpm包之间的依赖关系)
yum [option(选项)] [command(指令)] [package(软件包)]
yum install 包名 安装软件包
yum list 获取所有包列表 yum list installed 获取已安装的包列表 (这两个后面可加包名单独查询)
yum list updated 列出所有可更新的软件包
yum update 更新所有软件包及系统内核 yum upgrade 只升级所有软件包
yum search 包名一部分 模糊查询
yum groupinstall 组包名 安装组包
yum grouplist 获取所有已安装的组包列表
yum remove 包名 移除包和关联包(禁止使用)
yum repolist 列出启用的yum源
yum provides 命令名 查命令的二进制文件路径
yum deplist 命令名 显示软件包的依赖信息
不记得安装包名的话,可以通过yum list | grep *查询,*那里使用正则模糊查询
38.crontab 定时任务
命令对应的服务:crond.service
crontab -e 进入vim编辑模式 crontab -l 显示所有定时任务列表 crontab -r 删除所有定时任务
crontab -i 执行命令前进行确认操作 crontab -u 用户名 对指定用户的定时任务进行编辑(只能root对普通用户)
例:在11月每天6-18点,每3小时执行并在13点单独执行脚本/opt/test.sh
00 06-18/3,13 * 11 * /bin/bash /opt/test.sh &>/dev/null
注:/dev/null是linux中的 ‘无底洞’ ,也就是脚本返回的信息直接丢弃。
39.ps 查看进程瞬时状态(process status)
-A 列出所有进程(同-e) -a 显示终端机下所有进程(包含其他用户的进程) -f 全格式
-l 长格式 -u 查看特定用户的进程,如ps -u root 不写的话代表当前用户 -x显示没有控制终端的进程
F flag 进程的标志,4代表使用者为超级用户
S 代表程序的状态,S静止状态 R运行状态
UID 代表执行者身份
PID 进程的ID号
PPID 父进程的ID号
C cpu使用的资源百分比
PRI 进程执行的优先权(priority),值越小越早执行。
NI nice值,表示进程可被执行的优先级的修正数值。
ADDR
40.history 查看命令行历史记录
-c 清空历史记录 -d 后面跟一个number,清空历史记录指定行
环境变量HISTSIZE设置历史记录的条数,HISTFILESIZE设置~/.bash_history文件中的历史记录条数
echo 'export HISTSIZE=10' >> /etc/profile echo 'export HISTFILESIZE=10' >> /etc/profile
41.netstat 显示网络状态
-a 显示所有选项,默认不显示LISTEN相关 -t 仅显示tcp相关选项 -u 仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字 -l 仅列出有在Listen(监听)的服务状态
-p 显示建立相关链接的程序名 -r 显示路由信息,路由表 -e 显示扩展信息,如uid等
42.lsof 列出打开的文件list open files
lsof filename 显示打开指定文件的所有进程 lsof -a 表示两个参数都必须满足时才显示结果
lsof -c string 显示COMMAND列中包含指定字符的进程所有打开的文件
lsof -u username 显示所属user进程打开的文件 lsof -g gid 显示归属gid的进程情况
lsof +d /DIR/ 显示目录下被进程打开的文件 lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长
lsof -d FD 显示指定文件描述符的进程 lsof -n 不将IP转换为hostname,缺省是不加上-n参数
lsof -i 用以显示符合条件的进程情况
lsof -i [46] [protocol][@hostname|hostaddr][:service|port] 注:中括号代表可选参数
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4地址
service --> /etc/service中的 service name (可以不只一个)
port --> 端口号 (可以不只一个)
43.md5sum md5验证
利用md5值验证文件是否发生改变,只有当文件内容发生变化时,md5才会发生变化
注:图中的 yanzheng.md5 内可放多个验证文件,可使用>>追加,验证时逐行验证。
44.package-cleanup 软件包清理
注:使用此命令需先 yum install yum-utils
--leaves 列出与其他RPM没有依赖关系的软件包
--orphans 列出当前软件仓库中不再提供支持的本地已安装的软件包,等同于 yum list extras
--problems 列出有依赖问题的软件包
--depus 扫描重复安装的RPM软件包
--cleandupes 扫描重复安装的软件包,并删除老版本的软件包