命令提示符
ip a 查询IP ifconfig 查询IP,需装net-tools
[root @ localhost ~ ] # su - 用户名 切换用户
超级管理员用户 主机名 当前用户家目录 超级用户登录提示符 exit 退出普通用户
reboot 或 init 6 重启 poweroff 或 init 0 关机 echo $? 查看命令是否执行成功 *通配符
ctrl+C 终止 ctrl+d 退出 ifup ens33 启动网卡
时间
date 查看系统时间 date -s "年-月-日 时:分:秒" 修改系统时间
timedatectl 查看时区 timedatectl set-timezone Asia/Shanghai 修改时区
hwclock -r 查看硬件时间 hwclock--set--date “年-月-日 时:分:秒” 修改硬件时间 hwclock -w 保存
hwclock --systohc 同步系统时间到硬件 hwclock --hctosys 同步硬件时间到系统
ntpdate ntp.aliyun.com ntpdate time.windows.com 同步网络时间
date +%F 显示时间为年月日 date +%T 显示时间为时分秒
查看文件信息
ll 查看目录下的文件 文件类型\权限 硬链接个数 所有者 所属组 大小 修改时间 名字
ls -lh 查看文件并显示文件大小 ls -a 查看文件包括隐藏文件 ll -d 目录名 单个查找
ll -t 按最新修改时间排序 ll -r 按最早修改时间排序
别名
alias 别名='命令' 设置别名 unalias 别名 取消别名
防火墙与selinux
systemctl start firewalld 开启防火墙 vim /etc/sysconfig/selinux
stop 关闭 SELINUX=enforcing改为disabled 永久关闭,需重启
disable 永久关闭 getenforce 查看selinux状态
status 查看 setenforce 0 临时关闭
修改主机名
hostname 名字 临时修改 hostnamectl set-hostname 名字 永久修改 bash 查看是否生效
切换目录--cd
cd .. 回到上一级目录 cd - 回到上一次目录 cd 回到家目录 pwd 显示当前路径
创建文件--touch
touch 文件名 创建文件 touch 文件名{1..20} 批量创建 touch -d "2 days ago" 文件名 修改时间为俩天前
echo 内容 > 文件名 把之前内容覆盖 touch -d "年月日" 修改文件时间为某年某天
echo 内容 >> 文件名 在文件内容后年追加
创建目录--mkdir
mkdir 目录名 创建目录 mkdir {目录名,目录名} 连续创建俩个目录(同级)
mkdir -p 创建连级目录,一级一级的创建
复制--cp
CP 拷贝文件 cp -r 拷贝目录 \cp -r 强制覆盖
移动--mv
mv /root/file1 /tmp/ 移动file1文件到tmp下 mv /tmp/file1 /tmp/file2 将file1文件改名为file2
删除--rm
rm 删除文件(询问) rm -f 删除文件(不询问)
rm -r 删除目录(询问) rm -rf 删除文件或者目录(不询问)
查看文件内容
cat 查看文件全部内容 head 默认查看前十行 tail 默认查看后十行 tailf
cat -n 查看并显示行号 -A 包括控制字符 head -n 查看前n行 tail -n 产看后n行 动态查看文件尾部
grep 过滤 grep '^--' 过滤以--开头的内容 grep '--$' 过滤以--结尾的内容 /-- 搜索--内容
vim编辑器
yy #复制 yy3 光标所在行复制3遍 3yy #从光标开始复制3行 p #粘贴到本行的下一行
ygg #从当前光标复制到页首 G 回到文件最后一行 大P #粘贴到本行的上一行
yG #从光标开始复制到页尾 Ctrl+r撤销多撤销的一步 x #删除光标所在的字符
dd #删除一行 :x 保存退出 D #从光标处删除到行尾
3dd #从光标开始删除3行 :大X 文件加密 :set key= 取消加密 u #undo撤销
dgg #从光标开始删除到页首 大zz 保存退出 r #可以用来修改一个字符
dG #从光标开始删除到页尾 gg 回到文件页首
d^ #删除当前光标之前的内容 3gg 回到文件第3行
将文件另存为 w 保存
:s/a/b/ 替换光标所在行a为b % 表示替换所有行 :w /opt/ll.txt 将文件另存为/opt/ll.txt
:3s/a/b/ 替换指定行a为b g 表示行内所有关键字 :1,3 w /opt/ll.txt 将1-3行内容另存为/opt/lltxt
:1,5 s/a/b/ 替换1到5行a为b stat 文件名 查看文件基本信息
:%s/a/b/ 替换所有行a为b :set nu 设置行号 :set list 显示控制字符 :set nonu 取消设置行号
:%s/a/b/g 替换行内所有关键字a为b ctrl+v 可视块模式 shift+v 可视行模式
权限设置
chown 用户.组 文件或者目录 修改属主,属组 chown -R 递归修改---针对目录
r(读取) 可以读取文件的内容 可以列出目录的文件(文件名)
u=属主 g=属组 o=其他用户 w(写入) 可以更改文件的内容 可以删除或者创建目录中的任一文件
x(可执行) 可以作为命令执行文件 可以访问目录的内容(取决于目录中文件的权限)
读写执行=rwx=421 chmod 修改文件权限 chmod -R 递归修改--针对目录
where = which 查找命令在系统位置
高级权限
suid 针对二进制命令 chmod u+s /usr/bin/cat 让普通用户可以使用命令和root用户一样
sgid 针对目录 chmod g+s /opt/dir1/ 在此目录下创建的文件会继承目录的属组
sticky 针对目录 chmod O+t /otp/dir/ 当用户在此目录下创建文件,只有该用户和root可以删除
sudo 提权 让普通用户可以和root用户一样执行命令
visudo wheel 当提权用户较多时,添加用户到wheel组里
92 root ALL=(ALL) ALL usermod -G wheel 用户
93 jack ALL=(ALL) NOPASSWD: ALL #添加内容 gpasswd -a 用户 组
setfacl -m u:用户:rwx /opt/dir 针对一个用户对一个文件设置权限,让用户可以执行 getfacl /opt/dir 查看权限
setfacl -m ::rwx /opt/dir 针对所有人对一个文件 setfacl -x u:用户 收回权限
隐藏权限 防止root误删除
chattr +a fire 不允许修改,之允许追加
+i 不允许做任何操作
+A 不允许修改对文件的最后访问时间
用户管理
groupadd + 组名 创建用户组 groupadd ll -g 2000 创建组ll,并指定gid为2000
groudel ll 删除组ll echo "123" |passwd --stdin +用户 改用户密码,无返回
useradd +用户名 创建用户 id +用户名 查看用户的jid uid 和所在组
useradd +用户名 -u 503 指定uid为503 useradd +用户名 -s /sbin/nologin 创建用户并指定shell
useradd +用户名 -G 组 创建用户,指定附加组 userdel -r +用户名 删除用户,同时删除家目录
passwd +用户 给用户设置密码 passwd 给自己设置密码 usermod -u 新id +用户 修改用户uid
usermod -aG 组 用户 添加用户到附属组 gpasswd -M 用户,用户,用户 组 添加多个用户到组
gpasswd -a 用户 组 给组添加用户 gpasswd -d 用户 组 从组删除用户
进程管理 process(进程)
静态查看 ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
a 只能查看系统里正运行的所有终端程序 USER:运行进程的用户
u 显示进程用有者 PID:进程id
x 显示系统内所有进程 %cpu:cpu占用率
%MEM:内存占用率
ps -ef 查看进程 VSZ:进程占用的虚拟内存大小
-e 显示所有进程 RSS:占用的物理内存大小
-l 长格式显示 STAT:进程状态 ?没有占用终端 R运行 S可终端睡眠 D不可中断睡眠 T停止的进程
-f 完整格式 START:进程的启动时间 z僵尸进程 x死掉的进程
TIME:进程占用CPU的总时间
ss -nplt 查看进程 COMMAND:进程文件名
ps aux |grep 服务 top 动态查看进程
lsof -i:端口号 查看进程
kill PID 正常杀死 kill -1 PID 强制杀死 pklii 杀死多个进程(同名)
sleep 500 $ 开始直接挂后台 CTRL+z 暂停 bg %1 挂到后台 fg %1 调处后台 jobs 查看后台进程
uptime 查看CPU负载 free 查看内存 uname -a 查看正在运行的内核版本 rz 上传 sz 下载
管道与重定向
0,标准输出 1,正确输出 2,错误输出 &,正确错误混合输出
输出重定向
date 1> date.txt 正确输出,覆盖 date >> date.txt 正确输出,追加
ls /home/ /aaaaaa/list.txt 2>error.txt 错误输出重定向 $>/dev/null 将正确,错误的输出丢掉
ls /home/ /aaaaaa &>list.txt 混合输出重定向 1>/dev/null 将正确输出丢掉
输入重定向
cat >dire.txt <<EOF 通过输入重定项创建文件
sort -t ":" -k3 -n /etc/passwd 以:分隔,将第三列按字数升序
sort 排序 -t 指定分隔符 -k 指定列 -n 按数值 -r降序
netstat -nplt |awk 'NR==3 {print $4}' |awk -F':' '{print $2}'
过滤 指定地三行,第四列 以:分隔,第二例
cat a.txt | xargs -i useradd {} 将前面的内容展示出来,让后面一个,一个创建用户
du -h /etc 查看目录及目录中的文件大小 du -sh /etc 查看目录总大小 wc -l 统计
存储管理
df +Th lsblk fdisk -l 查看磁盘信息 free -h 查看内存信息
fdisk /dev/sdb 创建分区 mkfs.xfs /dev/sdb 格式化 mkdir /data mount /dev/sdb /data 挂载分区
umount /data 取消挂载 vim /etc/fstab mount -a 自动挂载 blkid /dev/sdb/ 获取UUID
存储管理2
逻辑卷
pvcreate /dev/sdb/ 创建物理卷 vgcreate vg1 /dev/sdb 创建卷组 lvcreate -L 10G -n lv1 vg1 创建逻辑卷
pvs vgs lvs 查询
mkfs.ext4 /dev/vg1/lv1 格式化 mkdir /mnt/data mount/dev/vg1/lv1 挂载逻辑卷
lvextend -L 10G /dev/vg1/lv1 扩容逻辑卷到10G vgextend vg1 /dev/sdc/ 扩展卷组
resize2fs /dev/vg1/lv1 文件系统扩容ext4格式 xfs_growfs /dev/vg1/lv1 文件系统扩容xfs格式
swap 交换分区
free -m 查看交换分区 fdisk /dev/adb 创建分区==> mkswap /dev/sdb/ 格式化 ==> vim /etc/fstab 自动挂载
dd if=/dev/zero of=/swap.txt bs=1000M count=3 ==> mkswap /swap.txt 格式化 ==> vim /etc/fstab 写入
swapon -a 激活swapfenqu(读取/etc/fstab)
[root@localhost~]#pvcreate /dev/sdc ==> Device /dev/sdc excluded by a fiter 报错,因为磁盘已经被分过区
解决方案: parted /dev/sdc ==> mklabel msdos ==> yes ==> quit ==> pvcreate /dev/sdc/ ==> y
磁盘阵列 raid5
添加硬盘 4块
mdadm -C /dev/md1 -l5 -n3 -x1 /dev/sd{b,c,d,e} 创建raid5 mkfs.ext4 /dev/mn1 格式化
-x1 一块热备盘
mkdir /mnt/raid5 mount /dev/md1 /mnt/rain5 挂载
mdadm -D /dev/md1 查看详细信息 watch -n 0.5 'mdadm -D /dev/md1 |tail' 动态查看
mdadm /dev/md1 -f /dev/sdc -r /dev/sdc 模拟损坏并拔除sdc mdadm -a /dev/md1 /dev/sdc 插回硬盘
umount /dev/md1 卸载raid挂载 mdadm -S /dev/md1 停止raid mdadm --misc --zero-superblock /dev/sd{b,d,c,e}
删除raid卷
文件查找 find
查找命令 which +命令 whereis +命令
文件查找 find / -name filename 按文件名查找 find / -size +5M 按文件大小查找,大于5M的文件,在根下
find / -type f 在根下按文件类型查找,f普通文件 d:目录 l:链接 b:块设备
find / -mtime +5 在根下按时间查找,修改时间5天之前 find / -atime +1 在根下按时间查找,访问时间1天之前
find / -mtime -5 在根下按时间查找,修改时间2天之内 -main 分钟
find / -perm 644 在根下按权限查找,权限为644
find /home/ -name test* -exec rm -rf {} \; #{}为前面查找到的内容,\; 格式
find /home/ -name "test*" | xargs -i cp {} /tmp/ #找到之后删除处理xargs 参数传递
打包压缩
tar cf filename.tar 打包文件 tar czf filename.tar.gz 打包压缩 tar xf 解包,解压缩
tar xf filename.tar.gz -C 路径 解压到指定目录-C
gzip filename 压缩 gunzip filename 解压缩 gzip -d 解压缩
bzip2 filename 压缩 gunbzip2 filename 解压缩 bzip2 -d 解压缩
zip -q -r filename 压缩 unzip filename.zip 解压缩
mkdir `date +%F` -filename 创建目录名带时间显示