Centos 7系统常用指令
CentOS 常 用 命 令
wget -c http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm |
CentOS 7 安装EPEL源 |
||||
sudo yum install epel-release-latest-7.noarch.rpm |
|||||
sudo yum install -y epel-release && sudo yum install -y ansible |
安装ansible |
||||
用 户 管 理 |
|||||
[ctrl]+[alt]+[F1-6] 六个terminal |
id user 查看用户信息 |
||||
groupadd 添加组 |
visudo wanglq ALL=(ALL) ALL %sudo ALL=(ALL) NOPASSWD: ALL #允许用户使用sudo -i 且不输入密码 |
||||
hostnamectlset-hostname host 修改计算名立即生效且重启也生效 |
su - wanglq #切换到账号wanglq |
||||
useradd 添加用户 |
who(w) #谁在线 |
||||
文 件 管 理 (linux命令区分大小写) |
|||||
nano test.txt 使用文本编辑器创建txt文件 |
mkdir -m /var/test 直接设置文件权限,不看默认umask mkdir -p /home/wanglq/var/test 创建多层目录,p=parent父母亲 |
||||
rmdir -p /var/test 一次性删除所有目录,目录必须为空 |
|
||||
mv /bin/ls /root 移文件若多个源文件,最后一个必须是目录,-u测试新旧文件 |
ls -li 显示文件block信息 ls -lid / /home /boot 查询三个目录的inode号码 ls -l /lib/modules/$(uname -r) /kernel/fs 查询支持的文件系统 ls -al a是全部文件,d仅目录,l长数据串 ls -alF --color=never --color=never(always,auto)颜色设置;
ls -al --full-time --full-time完整时间模式;
--time={atime,ctime}输出访问时间或改变权限属性时间而非内容更改时间
|
||||
|
cat /proc/filesystems 已加载到内存中支持的文件系统 cat -n /etc/test.txt 显示文件及行号,-b显行号仅对非空白行 cat /etc/fstab #查看开机挂载,实际写到/etc/mtab和/proc/mounts中 |
||||
cp filename filename.bak #复制文件连同文件属性与权限,-i询问; -p复制目录;-u有差异才复制;-d复制连接文件的属性 |
rm -fir bashrc* f是force,忽略不存在的文件; i互动模式,删除会问;r递归删除 |
||||
chmod 777 test.txt # 更新test文件权限,r:4 w:2 x:1 owner=rwx=7 group=rwx=7 others=rwx=7 chmod a(u,g,o)-x test.txt a=all chmod 6755 test # 加入具有SUID SGID的权限 |
|
||||
chgrp -R users /var/log/install.log 递归更改目录和文件的用户组 |
chown root:root install.log 将所有者和用户组改为root |
||||
|
tac 反向显示 |
||||
nl /etc/issue 显行号且打印,-b空白行也显行号;-w行号占用的位数 |
more /etc/issue 翻页显示 |
||||
less /etc/issue 一页一页显示 |
head -n 20 /etc/issue 默认10行,查看20行 |
||||
tail -n 20 /etc/man.config 取后面几行,默认10行,-f持续检测,+100显示100行后的 |
od -t c /usr/bin/passwd 以ASCII方式输出 |
||||
|
touch -d "2 days ago" test 将文件日期调整为2天前 touch testtouch #创建新文件或修改时间,modification time=mtime status time=ctime(无法被复制) access time=atime |
||||
umask -S 文件的默认权限,umask 002重新设置权限 |
chattr +i test.txt 只在ext2/ext3系统生效, 设置文件隐藏权限,-i不能被改名、删除、连接、更改数据, -a只能增加数据,不能删除数据 |
||||
lsattr +aij test 显示文件隐藏属性,-a显示隐藏属性 |
|
||||
Set UID=SUID=4=u+s:针对二进制程序,不能用在脚本; SUID=2=g+s针对目录或文件;Sticky Bit=SBIT=1=o+t只对目录有效-将A目录加上SBIT则甲只能对自己创建的目录或文件进行删除移动重命名; |
file /var/lib/mlocate/mlocate.db 查看文件类型 |
||||
which -a ls 查找命令位置 |
whereis ifconfig 查找特定文件, -b二进制; -m找说明文件manual路径下的文件, -s查看source文件, -u找不在前项的其它特殊文件 |
||||
locate passwd 在/var/lib/mlocate里查找数据,有时需要更新updatedb |
find / -mtime 0 列出系统24小时内被改动过的文件 find / -nouser 查看系统中不属于任何人的文件 find / -name passwd 查找文件名为passwd的这个文件 find / -mtime 3 列出3天前的24小时内被改动过的文件-书190页 find / -perm +7000 查找文件中含有SGID SUID SBIT属性的文件 find / -size +1000k 找出系统中大于1MB的文件
find / -perm +7000 -exec ls -l {} \;
-exec后面可接其它命令来处理查找到,
一直到“\;”是关键字,代表find额外命令的开始-exce到结束(\;),
{}代表的是由find找到的内容放置到{}中,
|
||||
ln -sf 源文件 目标文件 不加任何参数是hard link; -s是symbolic link(类windows快捷方式),-f如果目标文件存在时,就主动将目标文件直接删除后创建 |
d:表示目录; -:表示普通文件(regular file); l:表示连接文件; b:表示设备文件; c:表示串行端口设备(鼠标键盘); .:表示隐藏文件; ASCII:纯文本文件; binary:二进制文件; data:数据文件 |
||||
文件或目录最大文件名为255个字符,完整路径及目录文件为4096个字符 |
|||||
压 缩 与 打 包 |
|||||
yum install ncompress | compress 文件或目录 | uncompress 文件或目录 |
gzip -d删除gz文件 文件名 | zcat filename.gz |
||||
bzip2 文件名 |bzcat 文件名.bz2 |
tar -f -jcv压缩 -jtv查询 -jxv解压缩 -C欲解压缩的目录 tar -jcv -f /backups/backup-system-20190721.tar.bz2 \ #系统备份 |
||||
restore -t(查看备份数据内容) -f /root/boot.dump #-C比较dump与实际文件,-i进入互动模式,-r还原整个系统 restore -C -f /root/boot.dump /boot #文件比较 |
dump -S/dev/hdc1 #查看备份需要多大容量 dump -W #查看文件系统有没有备份过,level 0-9差异备份(0为完整备份) dump -0u(记录时间) -f /root/boot.dump/boot #将完整备份的文件名改为boot.dump,并更新记录文件 dump -0j(支持bzip2) -f /root/etc.dump.bz2 /etc #完整备份etc |
||||
|
|
||||
|
|
||||
|
mkisofs -r -V 'linux-file' -o /tmp/system.img \ #制作镜像文件 |
||||
-m /home/lostfound -graft-point /root=/root /home=/home /etc/=/etc |
cdrecord -scanbuSdev=ATA #查询刻录机 cdrecord -v dev=ATA:x,y,z -format #格式化dvd+rw
cdrecord -v dev=ATA:x,y,z blank=[fast|all] #排除重复读写片
cdrecord -v dev=ATA:x,y,z file.iso
|
||||
|
|
||||
|
dd if=/etc/passwd /tmp/passwd.back #备份etc dd if=/dev/hdc1 of=/dev/hdc9 #直接进行扇区表面复制 dd if=/dev/hdc of=/tmp/mbr.back bs=512 Count=1 #备份第一扇区 dd if=/dev/zero of=/home/bigfilename bs=1M count=512 # 创建大文件 |
||||
cpio -ovcB备份 -ivcdu还原 -ivct查看 |
rpm -ivh # 安装软件 rpm -ql # 查询安装路径 rpm -e # 卸载软件 |
||||
远 程 管 理 |
|||||
ssh openssl version 查看版本 |
scp /root/shutdown.sh root@192.168.1.51:/root/ # 互相传输文件 |
||||
磁 盘 管 理 |
|||||
fdisk /dev/hdc #m为帮助信息 |
du -sh text.txt # 查看文件大小 du -sm /* # 查看根目录下所有目录所占用空间 df -ah # 列出所有文件格式及名称 |
||||
blkid #查看分区格式 |
|
||||
dumpe2fs /dev/hdc2 #查询superblock信息 |
|
||||
partprobe #强制内核重新找一次分区 |
mkfs -t ext3 /dev/hdc6 #磁盘格式化 |
||||
mke2fs -j -L "wanglq" -b 2048 -i 8192 /dev/hdc6 #将卷标设置为wanglq,指定block大小为2048,每8192bytes分配一个inode |
fsck -C -f -t ext3 /dev/hdc6 #检验/dev/hdc6,实际调用e2fsck这个软件 |
||||
badblocks -sv /dev/hdc6 # 检查硬盘有没有坏轨 |
mount -t vfat -o iocharset=cp950 /dev/sda1 /mnt/flash # 挂载U盘 mount --bind /home /mnt/home # 将目录挂载到其它目录 mount -o loop /root/centos5.2.iso /mnt/centos-dvd mount -L "label名" /mnt/hdc6 # 不必知道硬盘名挂载 mount -o remount,rw,auto/ # 重新挂载根目录与不确定目录 mount -n -o remount,rw / # 单用户模式,只读状态才使用 |
||||
mknod /dev/hdc10 b 22 10 #设备代码22 10 |
e2label 设备名 新的label名 |
||||
tune2fs -l /dev/hdc6 #列出superblock信息,此命令可将ext2转成ext3 |
hdparm -i /dev/hdc #针对IDE接口硬盘,Tt测试硬盘访问性能(SATA可用) |
||||
|
parted /dev/hdc print #以parted列出分区表,2TB以内使用fdisk parted /dev/hdc rm 8 #将新建的分区删除
parted /dev/hdc mkpart logical ext3 19.2GB 19.7GB # 新建一个512M的逻辑分区
|
||||
swap |
|||||
mkswap /dev/hdc7 # 创建swap空间 |
swapon /dev/hdc7 swapon -s # 列出目前使用的swap设备 swapoff /dev/hdc7 # 关掉swap file |
||||
|
free -hm # 查看内存信息 |
||||
进程管理 |
|||||
ps -ef |
ps -aux |
||||
服 务 管 理 |
|||||
systemctl sshd status # 查看服务状态 systemctl try-restart sshd.service # 重启否则不做任何操作 systemctl is-active sshd # 服务查看 systemctl unmask sshd # 取消禁止 systemctl mask sshd # 禁止手动或自动启动 syttemctl is-enabled sshd # 查看服务是否开机启动 systemctl list-units -t service # 查看所有激活的服务 |
|||||
防 火 墙 管 理 |
|||||
service iptables status #查看iptables当前状态。
service iptables start # 开启
service iptables stop # 关闭
service iptables restart # 重启 |
chkconfig iptables on # 开机启动 chkconfig iptables off # 关闭开机启动 |
||||
systemctl restart firewalld # 重启 |
iptables -I INPUT -p TCP --dport 80 -j DROP # 拒绝所有包 iptables -I INPUT -s 46.166.150.22 -p TCP --dport 80 -j ACCEPT # 只允许固定IP iptables -L -n |grep 21 # 检视21端口策略 |
||||
firewall-cmd --get-active-zones # 查看区域信息 firewall-cmd --state # 显示状态 firewall-cmd --panic -on # 拒绝所有包 firewall-cmd --panic -off # # 取消拒绝 firewall-cmd --complete-reload # 更新防火墙规则 firewall-cmd --query-panic # 查看是否拒绝 firewall-cmd --zone=public --add-interface=eth0 # 将接口添加到区域 firewall-cmd --get-zones # 显示支持的区域列表 firewall-cmd --zone=public --list-all # 查看所有公共区域 firewall-cmd --query-service ftp(ssh,samba,http) # 查询服务启动状态 firewall-cmd --zone=dmz --list-ports # 查看所有打开的端口 firewall-cmd --add-service=http # 开启http服务 firewall-cmd --zone=public --add-service=ftp --permanent # 永久开放ftp服务 firewall-cmd --zone=public --add-port=80/tcp --permanent # 端口永久开启 firewall-cmd --enable service=ssh #允许SSH服务 firewall-cmd --zone=public --remove-service=ftp --permanent # 永久关闭 firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.0.1 # 将80端口的流量转发至192.168.0.1 firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080 # 将80端口的流量转发至192.168.0.1的8080端口 firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 # 将80端口的流量转发至8080 |
|||||
网 络 管 理 |
|||||
iwlist |
netstat -a #显示网络联机状态 |
||||
mtr |
nmap |
||||
fping |
hping |
||||
ip l a r # 查看路由信息-IP=ifconfig+trace |
nmtui # 网卡配置神器 /etc/sysconfig/network-script/ifcfg-cardname # 网卡位置 |
||||
ifconfig # 网络信息 |
route -n # 路由信息 |
||||
日 志 管 理 |
|||||
logwatch |
auditctl audit 系统管理工具,获取状态,增加删除监控规则 auditctl -a exit,never -S mount auditctl -a entry,always -S all -F pid=1005 auditctl -w /etc/passwd -p war -k password_file auditctl -w /tmp -p e -k webserver_watch_tmp -w 监控文件路径 /etc/passwd -p 监控文件筛选 r(读) w(写) x(执行) a(属性改变) -k 筛选字符串,用于查询监控日志 -S 监控系统调用 -F 给出更多监控条件(pid/path/egid/euid等) -k 利用auditctl指定的key查询 -x 执行程序 |
||||
aureport # 输出audit系统报告 |
ausearch # 查询audit log工具 ausearch -f /etc/passwd -x rm #命令查看日志,设置了监控后,会在/var/log/audit/audit.log里出现日志。 ausearch -ts today -k password-file ausearch -ts 3/12/07 -k password-file -ts 指定时间后的log (start time) -te 指定时间前的log (end time) |
||||
监 控 工 具 |
|||||
zabbix |
nagios |
||||
服 务 管 理 |
|||||
chkconfig # 默认对3,4,5 level有效;服务脚本存放在/etc/ini.d/ chkconfig -list #显示所有运行级系统服务运行状态 chkconfig -add sshd #添加服务 chkconfig -list mysqld #列出mysql服务设置情况 chkconfig -level httpd 2345 on chkconfig -del sshd #删除服务 |
|||||
配 置 QQ 邮 箱 |
|||||
yum install -y mailx vim /etc/mail.rc set from=test@qq.com set smtp=smtp.qq.com set smtp-auth-user=test@qq.com set smtp-auth-password=QQ授权码 set smtp-auth=login echo test |mailx -v -s "shuter" 345583594@qq.com |
|||||
打 印 管 理 |
|||||
|
|
||||
其 它 |
|||||
ulimit -a 列出目前身份的所有限制 -f 10240限制用户只能创建10M以下容量的文件 |
echo $LANG # 显示系统语言,locale -a查看系统支持多少语系 echo $PATH # 显示变量 echo $LANG # 查看系统语言 |
||||
PATH="$PATH":/root # 将root加入到PATH |
|
||||
LANG=en_US # 修改系统语言 |
source # 读入环境配置文件 |
||||
type ls |
date # 日期与时间 |
||||
cal # 日历 cal 10 2019 #日历 |
timedatectl list-timezones # 列出所有时区 timedatectl set-local-rtc 1 # 将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间 timedatectl set-timezone Asia/Shanghai # 设置系统时区为上海 |
||||
bc #计算器 |
|
||||
man (1-7) man #在线求助 |
init 0-6 #0关机、3纯命令行、5图形界面、6重启 shutdown -h 17:25 # 定时关机 -c 取消 halt # 强行关机 -p=poweroff -r=reboot poweroff # 强行关机 reboot # 重启电脑 |
||||
man -f man #取得更多与man相关信息 man -f = whatis #root下使用makewhatis,创建whatis数据库 man -k = apropos |
stty -a # 列出所有按键与按键内容 |
||||
info info # 命令行模式的网页显示 |
/etc/issue /etc/motd # 登录与欢迎 |
||||
|
last | cut -d '' -f 1 # -d接分隔字符与-f一起使用, -f依据-d分隔字符将信息切割成为数段,用-f取出第几段的意思; -c以字符的单位取出固定字符区间 last |grep -v 'root' # 没有root就显示出来 last |tee last.list |cut -d "" -f1 # tee双向重定向 338页 |
||||
|
|
||||
sync #数据写入硬盘 |
grep --color=auto 'wanglq' /etc/pass.conf grep 'temporary password' /var/log/mysqld.log # 查看mysql密码 |
||||
|
cat /etc/passwd |sort -t ':' -k 3 #为账号从第3列进行排序 |
||||
lsb_release -a;uname -r #查看系统版本 |
uniq #将重复的数据列出一个显示 |
||||
alias rm=‘rm -i’ | unalias |
wc -l列出有多少行 -w列出有多少字 -m列出有多少字符 |
||||
history -cnarw |
|
||||
curl https://www.jianshu.com/p/07c4dddae43a curl -# -O https://www.baidu.com # 显示下载进度 |
getconf LONG_BIT # 查看系统位数 |
||||
|
who -r # 查看运行级别 |
||||
|
|
||||
df -h # 查看硬盘使用情况 |
cat /etc/os-release # 查看系统版本 cat /etc/redhat-release # 查看系统版本 cat /proc/filesystems # 查看kernal支持的系统分区格式 cat /etc/passwd # 查看密码本 cat /proc/cpuinfo # 查看硬件信息 cat /proc/meminfo # 查看内存条 |
||||
lvscan # 想看分区 |
|
||||
lsblk # 查看硬盘信息 |
|
||||
blkid # 显示系统分区格式 |
lspci # 查看主板信息 |
||||
fdisk -l # 查看所有硬盘 |
|
||||
|
|
||||
lastb #查看登录信息 |
hostname && env && uptime # 计算机名、环境变量、开机运行时间 |
||||
chkconfig --list #开机列表 |
history #命令历史记录 |
||||
firewall-cmd --state #防火墙状态 |
|
||||
netstat -an #查看所有端口信息 |
|
||||
ps -aux #查看进程 |
|
||||
入 侵 排 错 |
|||||
端口查检 netstat -an |
发现被攻击怎么办? 1、立马修改密码。 2、通知网络工程师,调整网络防火墙策略。 3、开启本服务器防火墙。 4、修改ssh默认端口号。 ssh端口总是有人在扫描,这个还是觉得不太安全,得修改。 将SSH终端服务的端口由22修改为别的端口 以防攻击黑客直接猜解您的服务器密码 |
||||
进程查检 ps -ef 或 top |
首先修改配置文件,vim /etc/ssh/sshd_config 找到#Port 22一段,这里是标识默认使用22端口,修改为如下: |
||||
系统是否被rootkit 同版本可信操作系统命令进行md5sum校验 |
2、编辑/etc/ssh/sshd_config文件: 现在编辑防火墙配置:vi /etc/sysconfig/iptables 启用50000端口。 |
||||
查看系统登录日志 more /var/log/secure |grep Accepted |
5、netstat -ntlp检查端口及对应进程,关闭没用的端口 |
||||
查看系统密码文件 more /etc/shadow |
6、cat /etc/passwd 关闭没有用的账户 |
||||
查看其它系统日志 /var/log/messages /var/log/wtmp |
7、ps -ef检查所有进程,普通用户如果弱密码也可以被执行蠕虫脚本,不断发包用尽带宽。 |
||||
进入内存目录,查看对应PID目录下的exe文件的信息 /mnt/bin/ls /proc/22765/exe #进程的完整路径就找出来了 |
8、检查httpd日志 |
||||
/mnt/bin/ls -al 显示所有文件及目录 |
9、可以用tcpdump -nn -i eth0检查相应网卡发包 |
||||
.bash_history 用户操作命令的历史记录 |
|
||||
查找被攻击的原因,了解下服务器的软件环境,查看相应软件的日志文件 |
|