Centos 7系统常用指令

CentOS 常 用 命 令

CentOS 7.6.1810脑图

其他博客一

其它博客二

Linux命令大全

yum命令详解。

yum下载的rpm包离线安装

用yum将安装包及依赖包下载到本地的方法

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

监控脚本

打 印 管 理

print

 

其 它

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端口,修改为如下: 
Port 22 
Port 50000 
然后保存退出 

系统是否被rootkit 同版本可信操作系统命令进行md5sum校验

2、编辑/etc/ssh/sshd_config文件: 
vim /etc/ssh/sshd_config 
将Port 22改为50000,并找到PermitRootLogin,将后面的yes改为no,这样root就不能远程登录了 
执行/etc/init.d/sshd restart 
这样SSH端口将同时工作与22和50000上。

现在编辑防火墙配置:vi /etc/sysconfig/iptables 

启用50000端口。 
执行/etc/init.d/iptables restart 
现在请使用ssh工具连接50000端口,来测试是否成功。 
如果连接成功了,则再次编辑sshd_config的设置,将里边的Port22删除,即可。 
之所以先设置成两个端口,测试成功后再关闭一个端口,是为了方式在修改conf的过程中,万一出现掉线、断网、误操作等未知情况时候,还能通过另外一个端口连接上去调试,以免发生连接不上带来更多的麻烦。

查看系统登录日志 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 用户操作命令的历史记录

 

查找被攻击的原因,了解下服务器的软件环境,查看相应软件的日志文件

 

posted @ 2019-08-26 16:15  让未来到来  阅读(605)  评论(0编辑  收藏  举报