系统相关命令

目录

Linux中pts/0的讲解

当我们在vm终端输入who命令时,会出现pts/0那么它是什么意思呢?
首先要知道who命令是用来干嘛的。
who:查看目前有谁在线
pts是所谓的伪终端或虚拟终端,具体表现就是你打开一个终端,这个终端就叫pts/0,如果你再打开一个终端,这个新的终端就叫pts /1。

如何理解 cat > text << "eof"

cat 打印多行内容

[root@tomcat tomcat]# cat
123 回车
123 结束,打印上一行
qwe 回车 
qwe 结束,打印上一行
ctrl +d  退出

> 输出到某文件,>>追加到某文件

[root@tomcat tomcat]# cat > test
123
134
              
Ctrl +d 保存退出      
[root@tomcat tomcat]# cat test
123
134
ca
Ctrl +梠保存退出

cat > test <<eof 输出多行到指定文件

<<eof 直到出现eof 字符时结束(用什么字符都行)

[root@tomcat tomcat]# cat >test <<eof 
> 123
> 亚麻
> eof
[root@tomcat tomcat]# cat test
123
亚麻
[root@tomcat tomcat]# cat >>test<<jiajun
> 456
> 789
> jiajun
[root@tomcat tomcat]# cat test
123
亚麻
456
789

Linux 命令more和less的区别

more: 顾名思义显示更多
less: 由于more不能后退,就取more的反义词less加上后退功能
所以Linux里流传着这样一句话:"less is more".

总结下more 和 less的区别:

  1. less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示
  2. less不必读整个文件,加载速度会比more更快
  3. less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内

版权声明:本文为CSDN博主「你好xyz」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jctian000/article/details/80805824

grep

grep -c

输出匹配行的行数

[root@kvm02 opt]# virsh dumpxml web05 |grep -c "vcpu"
1

grep -C __

显示匹配内容上下距离几行内容

[root@kvm02 opt]# virsh dumpxml web05 |grep -C 3 "vcpu"
  <uuid>13c2fe9e-c885-4084-bbd4-58c5af3442ad</uuid>
  <memory unit='KiB'>1048576</memory>
  <currentMemory unit='KiB'>245760</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <resource>
    <partition>/machine</partition>
  </resource>

grep -i

忽略大小写

grep -rl 找出当前目录下包含 127.0.0.1 关键字的文件?

grep -Rl '127.0.0.1' ./   
-r 递归查询
-R 与-r 类似 只不过多了可以处理软连接
-l (小写字母 L)只显示 grep 查找出来的文件名

history

修改保存历史命令最大行数

查看当前系统历史记录数量,默认是1000,修改在 /etc/profile中

[root@docker01 ~]# echo $HISTSIZE 
1000
[root@docker01 ~]# vim /etc/profile
[root@docker01 ~]# source /etc/profile     ##修改完配置,加载生效
[root@docker01 ~]# echo $HISTSIZE    ##修改成功
1500

保存历史命令文件

系统使用过的命令保存在/root/.bash_history文件下

[root@docker01 ~]# head -3 .bash_history    ## 简单看三行
vim /etc/sysconfig/network-scripts/ifcfg-eth0 
vi /etc/sysconfig/network-scripts/ifcfg-eth0
systemctl restart network

history -a

将当前会话中的命令追加到 /root/.bash_history,来不及整理,可以记录下重要命令

history -c

清空存在内存中的命令记录,不清空~/.bash_history中的记录

[root@docker01 ~]# history -c
[root@docker01 ~]# history
    1  history
[root@docker01 ~]# head -3 .bash_history   
vim /etc/sysconfig/network-scripts/ifcfg-eth0 
vi /etc/sysconfig/network-scripts/ifcfg-eth0
systemctl restart network

!sys 执行历史命令中以关键字开头的命令

[root@hdss7-11 vsftpd]# !sys
systemctl restart vsftpd

du 文件夹按大小排序

du -h

人类可读方式 (带单位)

du -sh

显示目录或文件总使用大小

文件夹按大小排序

 du -s * | sort -nr 排序但显示是KB   
 du -sh * | sort -nr 不排序 显示g或mb

比较两个文件 vimdiff /vim -d ,windows是fc

vimdiff /vim -d

跳转到下一个diff点:(带颜色部分)
请使用 ]c 命令
跳转到前一个diff点:
请使用 [c 命令

两文件切换 ctrl +w 在加 ← → 键

左右文件互换 ctrl-w +r

1582798121834

tcpdump ,wireshark ,nc ,nmap

tcpdump

1588684574565

A发往B的数据包,C想收到需要开个镜像端口

混杂模式下的网卡能够接收一切通过它的数据,而不管该数据目的地址是否是它

tcpdump  网络嗅探器
-i interface
-w  file 
 --nn 将IP和端口显示为数字格式
-XX link level  header
-X   hex and  ascii 以16进制和ASCII格式分别显示
-A  (link level  header)显示内容ASCII 格式
-v  详细信息
-vv 更详细
-r  file
expression:
  	关键字:
		type: host ,net ,port ,portrange
 		direction:src ,dst ,src or dst , src and dst 
 		protocol:ether ,ip ,arp ,tcp ,udp , wian
 	组合条件:
		and 
        or 
        not 
tcpdump -i eth0 tcp port 80 -nn   
tcpdump  udp 
tcpmdump src 192.168.1.1
强大功能组合
tcpdump tcp src 192.168.1.1 and port 1100
tcpdump  not port 80

wireshark

安装包 wireshark , 图形化包wireshark-gnome
tshark 命令行版
wireshark  图形化版

https://www.wireshark.org/

https://wiki.wireshark.org/

交换机环境

1.端口镜像 SPAN端口镜像 (正规)

2.ARP欺骗

3.MAC泛洪

nc

nc :由nc 提供
   另一个实现: ncat ,由nmap提供
文件传输方案:
监听者为传输方
nc -l  PORT  < /path/from/somefile
nc  IP PORT  >/path/to/somefile
监听者为接收方
nc -l  PORT  > /path/to/somefile
nc  IP PORT  <  /path/from/somefile
注意:传输目录先归档;
-p  PORT :指明连接监听的服务器使用的端口;
web客户端:
 nc  WEBSERVER PORT 
nc  -v -w 1  IP  port
扫描器:
-v 详细信息
-w  连接超时时间
nc -v -w 1 IP -z  PORTRANGE
nc  -w 1  10.0.0.7  1-1022
聊天器
nc -l PORT 
nc  IP  PORT 
其他选项:
 		-s  SOURCE-IP

nmap​

端口扫描器

rename 批量从命名

​ 格式: rename 要改的 改成的 改动的文件

[root@k8s-node-1 rename]# ll
total 12
-rw-r--r-- 1 root root 4 Feb 29 11:26 nginx_1.yml
-rw-r--r-- 1 root root 5 Feb 29 11:27 nginx_2.yml
-rw-r--r-- 1 root root 5 Feb 29 11:27 nginxproxy_1.yml
[root@k8s-node-1 rename]# rename     nginx      httpd      *yml   
                            ###     把nginx   改成httpd      把以yml结尾的文件都替换了
[root@k8s-node-1 rename]# ll
total 12
-rw-r--r-- 1 root root 4 Feb 29 11:26 httpd_1.yml
-rw-r--r-- 1 root root 5 Feb 29 11:27 httpd_2.yml
-rw-r--r-- 1 root root 5 Feb 29 11:27 httpdproxy_1.yml

cp -a 复制整个目录内容

[root@k8s-node-1 ~]# ls
anaconda-ks.cfg  docker_alpine.tar.gz    rename
[root@k8s-node-1 ~]# cp -a rename  heihei
[root@k8s-node-1 ~]# ls
anaconda-ks.cfg  docker_alpine.tar.gz  heihei  rename
[root@k8s-node-1 ~]# ls rename heihei
heihei:
httpd_1.yml  httpd_2.yml  httpdproxy_1.yml
rename:
httpd_1.yml  httpd_2.yml  httpdproxy_1.yml

vim中删除行尾^M 换行符

1.sed 替换

1.用sed命令删除

# sed -i 's/\r//g' 文件名 


2、用vim,vi打开文件后,切换至命令行模式

:1,$s/\r//g  

2.Linux下安装包

yum install -y 	dos2unix  
##执行 dos2unix * 解决换行^M

-maxdepth

查看目录或文件,对应层级下的所有文件

find /etc -maxdepth 1  -type f |xargs -i cp {} /mnt 
## 查找 /etc 下的 第一层目录下的文件 复制到/mnt下
## xargs -i 
正常默认参数传到最后,用 -i 可以把前面的参数一行一行传到管道后用{}先代替,在接着执行命令.

管道的实现是将前面的输出stdout作为后面的输入stdin,狠多命令不接受管道传参;所以引进xargs

locate 根据文件名搜索文件命令 ,搜索文件无需指定路径

一、安装
##   yum install mlocate -y
locate  *.doc
二、介绍优缺点
1.快于find  
2.结果显示绝对路径
注: 1)本身有个数据库,位于/var/lib/mlocate/mlocate.db  包含系统里所有文件索引,每天早上由cron自动更新一次
2)正因为注1)的原因,所以无法搜索当天的创建的新文件
3) 为解决问题,可以用updatedb 命令手动更新数据库
    ##   sudo updatedb
  三、 演示
[root@hdss7-200 ~]# ls /var/lib/mlocate/ -l
total 2856
-rw-r----- 1 root slocate 2922917 Jun 21 23:10 mlocate.db
[root@hdss7-200 ~]# locate ca.pem
/opt/certs/ca.pem
[root@hdss7-200 ~]# echo 'sds' > ca.pem
[root@hdss7-200 ~]# locate ca.pem
/opt/certs/ca.pem
[root@hdss7-200 ~]# updatedb
[root@hdss7-200 ~]# locate ca.pem
/opt/certs/ca.pem
/root/ca.pem

xargs

1.处理管道传来的stdin;

2.将管道处理的数据传递到正确位置;

其实就完成两个操作

1.对数据的分割;

2.对数据的分批;

xargs后面的命令默认是echo

$ xargs
# 等同于
$ xargs echo
-i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替。

ln 创建软链接

ln –s 源文件 目标文件

1583307218647

查询命令对应哪个包

yum provides */  跟命令

rpm -qf

root@zabbix ~]# which vmstat 
       usr/bin/vmstat
root@zabbix ~]# rpm -qf    /usr/bin/vmstat 
       rocps-ng-3.3.10-23.el7.x86_64

vim 中搜索忽略大小写

:set ignorecase

rpm

查看一个包安装了哪些文件rpm -ql

[root@zabbix-server ~]# rpm -ql zabbix-server-mysql 
/etc/logrotate.d/zabbix-server
/etc/zabbix/zabbix_server.conf
/usr/lib/systemd/system/zabbix-server.service
/usr/lib/tmpfiles.d/zabbix-server.conf

rpm -qf 查看服务安装包

rpm -qc 查看配置文件

安装 rpm包 rpm -ivh

i表示安装,v表示显示安装过程,h表示显示进度。

rpm 包安装不需要配置环境变量

rpm -ivh jdk-8u121-linux-x64.rpm 

yum

yum localinstall 安装本地rpm包,自动解决依赖关系

用于安装本地已存在的rpm包,自动联网解决rpm包可能存在的依赖关系.

yum localinstall *.rpm -y

yum history list 列出yum安装历史

[root@oldboy ~]#  yum history list
Loaded plugins: fastestmirror
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------  
     4 | root <root>              | 2020-03-13 11:55 | Install        |    2   
     3 | root <root>              | 2019-04-19 12:38 | Install        |   12   
     2 | root <root>              | 2019-04-19 12:38 | Install        |    1   
     1 | System <unset>           | 2019-04-19 12:16 | Install        |  473  
  • yum history info +序号 查看某个具体安装明细

  • yum history undo +序号 回滚 (好比指定回到哪关,之前安装的软件也没了)

​ 回滚会删除依赖

  • yum makecache 建立一个缓存,下回install ,先找缓存
yum clean all   ##定期清理缓存
配合yum -C search xxx使用不用上网检索就能查找软件信息

GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Percona

vim /etc/yum.repos.d/percona-release.repo
enabled = 1  ##注意下载失败,改成1
gpgcheck = 0 ##校验改成0

linux报错Loading mirror speeds from cached hostfile解决方法

cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum 开启缓存 /etc/yum.conf

存放路径 /var/cache/yum/x86_64/7/....

遇到国外源,建议修改成清华源

yum info haproxy 查看自带安装软件信息

yum repolist 查看启用的源列表/yum repolist disabled 查看禁用源列表

yum list docker-ce --show-duplicates 列出所有版本

后台执行

screen

拷贝大文件 4G~10G手滑关闭xshell 任务就结束了,使用screen
screen             #创建会话,没名字
screen -S NAME     #创建指定名字的会话
screen -list       #查看存在会话列表
screen -r pid|name #进入某个会话
注意:在screen窗口中不能执行ctrl+d操作

在会话中
ctrl +a ,d  将会话移到后台
ctrl +a ,k  直接杀死会话
exit  # 退出
一般使用步骤:

screen或者screen -S name建立一个新会话,然后开启job或者其他什么需要长时间运行的东西,启动成功后就可以 ctrl+a,d了,然后随便断开连接,都不会影响job睡眠的执行~~

下次进入查看时,先screen -ls,然后screen -r进入该会话,就可以查看进度或者其他操作了,不需要了就进入该会话,然后ctrl +a ,k

[root@wulijiajun ~]# screen -S test  #开启一个新窗口

[root@wulijiajun ~]# while true; do echo heihei ;sleep 5;done
heihei
heihei

Connection closed.

Disconnected from remote host(10.4.7.38:22) at 21:42:25.

Type `help' to learn how to use Xshell prompt.
[e:\~]$ 

Connecting to 10.4.7.38:22...
Connection established.

[root@wulijiajun ~]# screen -S test
[detached from 8126.test]
while true ;do echo rrr ;sleep 5 ;done
[root@wulijiajun ~]# screen -list
There are screens on:
	8222.aaa	(Attached)
	8126.test	(Detached)

[root@wulijiajun ~]# screen -r test  #进入
还在执行 
rrr
rrr
ctrl +a+d  #临时退出,还可以进入

将命令放后台运行 & (常用)

[root@zabbix-server ~]# sleep 60 &
[root@zabbix-server ~]# jobs
[1]+  Running                 sleep 60 &

查看后台运行情况 jobs

将命令放到后台暂停 ctrl +z

例1:ctrl+z 丢到后台 jobs 查看后台 fg+序号 提到前台 kill %序号 干掉后台

例2:前台 后台有一个技巧贼好用 用vi等写程序的时候想要回到终端,按Ctrl+z 挂回后台,然后输入fg就能回到vi界面

bg (Background)让进程在后台执行

fg (Foreground) 让进程在前台执行

+表示是当前进程, - 下一个进程选手 (bg 默认运行+的进程)

[root@zabbix-server ~]# jobs
[2]-  Stopped                 ping qq.com
[3]+  Stopped                 sleep 100
[root@zabbix-server ~]# bg
[3]+ sleep 100 &
[root@zabbix-server ~]# jobs
[2]+  Stopped                 ping qq.com
[3]-  Running                 sleep 100 &

指定运行某后台进程 bg/fg +% 序号 (序号jobs可查)

[root@zabbix-server ~]# jobs
[2]-  Stopped                 ping qq.com
[4]+  Stopped                 sleep 300
[root@zabbix-server ~]# fg %2
ping qq.com
64 bytes from 58.250.137.36 (58.250.137.36): icmp_seq=4 ttl=128 time=88.4 ms
64 bytes from 58.250.137.36 (58.250.137.36): icmp_seq=5 ttl=128 time=87.0 ms
^Z
[2]+  Stopped                 ping qq.com

jobs -l 可查进程号PID

[root@zabbix-server ~]# jobs -l
[2]+ 12925 Stopped                 ping qq.com
[4]- 14868 Stopped                 sleep 300
[root@zabbix-server ~]# ps -ef |grep  sleep
root      14868  10161  0 09:04 pts/1    00:00:00 sleep 300
root      16300  10161  0 09:16 pts/1    00:00:00 grep --color=auto sleep

杀死顽固进程

ctrl +z

kill %序号

fdisk -l 查看系统上的硬盘大小

seq 指定增量,从首位打印到尾数

[root@oldboy ~]# seq  5
1
2
3
4
5

w 哪个在用户登录,在使用那个命令

压缩系

zcat 查看包文件 属于gzip包

压缩比

gzip xxx.gz unzip 解压

bzip2 -9 xxx.bz2 速度快点 解压 -d

xz xxx.xz 压缩比高点,速度慢

查看系统监控负载内存

CPU

top

负载高,特别卡
所谓的负载 :等待cpu处理的任务数 (判断高不高需要看CPU核数)

按 1 监控每个逻辑CPU

 root@zabbix ~]# top
      top - 20:22:49 up 5 min,   2 users,       load average: 0.01, 0.19, 0.13
 #        当前时间    系统启动时间   用户登录数(w也可查看) 负载    平均1分钟   5  1 5  
       Tasks: 112 total,   1 running, 111 sleeping,   0 stopped,   0 zombie
#       进程    总数          正在运行     休眠        停止            僵尸进程
 #      杀不死的 进程就是僵尸进程;干掉僵尸进程的父进程,僵尸进程变成孤儿进程.即可杀死僵尸进程.
 #       僵尸进程的产生 由代码bug 
       %Cpu0  :  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,   0.0 st
#      CPU使用率  用户态    内核态    优先级    空闲    io等待   硬件中断(win7  ,插入u盘。发现新硬件)  软件中断(来电话优先处理电话)  虚拟机占用物理CPU使用率
 #     一般减掉用户态 +内核态剩下的就是空闲

htop

升级版top 花花绿绿 f1 更多帮助

uptime

top 第一行参数

vmstat

vmstat 查看系统占用资源 比较中和的命令

 root@zabbix ~]# which vmstat 
       usr/bin/vmstat
       root@zabbix ~]# rpm -qf  /usr/bin/vmstat 
       rocps-ng-3.3.10-23.el7.x86_64
       root@zabbix ~]# vmstat
       rocs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
       r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
       2  0      0 512848   2076 358820    0    0    65    29   75  163  0  1 99  0  0

内存

free 查看内存 -h / -g

[root@oldboy ~]# free -gh
             total        used        free      shared  buff/cache   available
Mem:           972M         82M        769M        7.5M        120M        745M
Swap:          2.0G       

ps aux 查进程,内存使用率

[root@oldboy ~]# ps aux
进程拥有者  进程号 使用率  占虚拟内存多少 占内存大小,实际物理内存  STAT进程状态
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.4  43900  4268 ?        Ss   09:32   0:01 /usr/lib/systemd/systemd --switched-root
root          2  0.0  0.0      0     0 ?        S    09:32   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    09:32   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   09:32   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    09:32   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    09:32   0:00 [rcu_bh]

查看内存信息 cat /proc/meminfo

磁盘

df

df    查看硬盘   -h  
      如果硬盘满了 ,有些程序会崩溃 ,开机有些程序需要写日志.
	  df -ih -i(inode)  block 满了 删些文件  
	  当磁盘容量或inode容量任意一个不足时就都会提示No space left on device
	   进入100%的目录删除无用的文件即可,比如日志...
	   文件夹按大小排序,进入空间要满的目录  du -s * | sort -nr 排序但显示是KB  
           du -sh * | sort -nr 不排序 显示g或mb
       [root@oldboy ~]# df -h
        Filesystem      Size  Used Avail Use% Mounted on
        /dev/sda2        48G  5.2G   43G  11% /
        devtmpfs        476M     0  476M   0% /dev
        tmpfs           487M     0  487M   0% /dev/shm
        tmpfs           487M  7.6M  479M   2% /run
        tmpfs           487M     0  487M   0% /sys/fs/cgroup

iotop

查看磁盘利用率

Total DISK READ :	0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:	0.00 B/s | Actual DISK WRITE:       0.00 B/s
   TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                 1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd --switched-roo~system --deserialize 22
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]

iostat

​ 磁盘输入输出统计

[root@oldboy ~]# iostat
Linux 3.10.0-957.el7.x86_64 (oldboy) 	03/15/2020 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.24    0.00    0.35    0.15    0.00   99.27

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.69        27.11         7.28     211610      56812
    ##      设备每秒传输次数	每秒读取数据量 每秒写入数据量   读取总数据量   写入总数据量

网卡

iftop

​ 查看网络 精确到IP地址占用流量
​ 100KB 字节 kb 比特 1B=8b 100Mbps =12.5MB/s
​ 家用宽带 : 100Mbps 上传 10 1:9下载 9 (有很多是拨号)
​ 企业宽带; 100Mbps 对等 运营商会给静态公网IP

1584243449626

nethogs

查看进程占用流量

1584243709964

xxx.release.xxx.rpm 是某服务的源

文件名乱码 ,利用iNode删除

[root@oldboy ~]# stat 2.txt 
  File: ‘2.txt’
  Size: 445       	Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d	Inode: 33645131    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-03-15 15:05:40.418312099 +0800
Modify: 2020-03-15 15:05:32.715264561 +0800
Change: 2020-03-15 15:05:32.715264561 +0800
 Birth: -
[root@oldboy ~]# find . -inum 33645131
./2.txt
[root@oldboy ~]# find . -inum 33645131 -delete
[root@oldboy ~]# ll
total 4
-rw-------. 1 root root 1392 Apr 19  2019 anaconda-ks.cfg

dd 搬运数据

dd if=/dev/zero of=/tmp/gao.raw bs=1024K count=100000

if 从哪导出

of 导入到哪

bs 单次输出数据块大小

count 总共复制次数

/dev/zero 无限取

/dev/null 无限填

/dev/urandom 随机数设备 比/dev/random 速度更快

[root@linuxlinux]# tr -dc “[a-zA-Z0-9]” </dev/urandom |head -c 10

X7pMRLOPxP

tr -dc[a-zA-Z0-9] # a-z和A-Z 0-9 随机字符

-c 筛选的字符取反

-d 删掉筛出的字符

head -c 10 取错多少字节 ,用于定义密码长度

查看iNode ll -i / stat 文件

存放系统启动文件的配置/usr/../system/和 /etc/../system/

/usr/lib/systemd/system/ 
/etc/systemd/system  ##存放系统启动的默认级别及启动的unit的软连接,优先级最高。

selinux 关闭 firewalld关闭

[root@wulijiajun ~]# getenforce # 查看当前模式
Disabled
##setenforce 命令只能让 SELinux 在 enforcing 和 permissive 两种模式之间进行切换
#0: 切换成 permissive(宽容模式);
#1: 切换成 enforcing(强制模式);
[root@wulijiajun ~]# vim /etc/selinux/config 
SELINUX=disabled              ##关闭需修改配置文件

systemctl stop firewalld

科普selinux

安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。

SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。

SELinux 的结构及配置非常复杂,而且有大量概念性的东西,要学精难度较大。很多 Linux 系统管理员嫌麻烦都把 SELinux 关闭了

ssh 主机间免密登录

rm -rf /root/.ssh 
ssh-keygen
一路回车
[root@db01 opt]# ll /root/.ssh/
total 12
-rw-r--r-- 1 root root  391 Mar 31 06:16 id_rsa.pub  ##公钥
-rw------- 1 root root 1675 Mar 31 06:16 id_rsa      ##私钥
-rw-r--r-- 1 root root  513 Mar 31 06:43 known_hosts
cd /root/.ssh 
mv id_rsa.pub authorized_keys
scp -r /root/.ssh  10.0.0.52:/root  ##推送到个节点

vim /etc/ssh/sshd_config
#   StrictHostKeyChecking ask    -->  打开注释改成no     连接时,不提示yes/no
另一种免密:
yum install -y epel-release
yum install -y sshpass
 sshpass -p123456  ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.31 # -p 密码

推送错误:

[root@wulijiajun ~]# sshpass -p123456  ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.32/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"  ##没安装sshpass或重装一遍

linux 命令 uname -r uname -a

1、uname -r : 显示操作系统的发行版号
2、uname -a :显示系统名、节点名称、操作系统的发行版号、内核版本等等

[root@web ~]# uname -r
3.10.0-957.el7.x86_64
[root@web ~]# uname -a
Linux web 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
系统名:
Linux
节点名称:
web
操作系统的发行版号:
3.10.0-957.el7.x86_64
命名规则:
       主版本号:3
       次版本号:10【奇数为开发版本,偶数为稳定版本】
       修订版本号:0【修改的次数】
      此次版本的第N次修改:957
       el7:redhat enterprise linux 7
       x86_64:编译框架(64位)
内核版本:
#1 SMP Thu Nov 8 23:39:32 UTC 2018
硬件平台:
x86_64
机器硬件名:
x86_64
系统处理器的体系结构:
x86_64
操作系统:
GNU/Linux

tmpfs

1.tmpfs是一个独立的文件系统,不是块设备,只要挂载,就可以立即使用

2.由于tmpfs是构建在内存中的,存放在 tmpfs 中的所有数据在卸载或断电后都会丢失

[root@web ~]# mkdir /gao
[root@web ~]# mount -t  tmpfs  -o size=200M  tmpfs /gao
[root@web ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        48G  6.2G   42G  13% /
devtmpfs        476M     0  476M   0% /dev
tmpfs           487M     0  487M   0% /dev/shm
tmpfs           487M  7.6M  479M   2% /run
tmpfs           487M     0  487M   0% /sys/fs/cgroup
tmpfs            98M     0   98M   0% /run/user/0
tmpfs           200M     0  200M   0% /gao
# 从新挂载  mount -t tmpfs -o remount tmpfs {mount_point}

##开机 自启
# cat /etc/fstab
tmpfs                   /tmp    tmpfs   defaults,size=25M        0 0

DNS网络解析

nslookup 用于查询DNS的记录,查询域名解析是否正常,在网络故障时用来诊断网络问题

[root@hdss7-11 ~]# nslookup www.qq.com
Server:		10.4.7.254
Address:	10.4.7.254#53

Non-authoritative answer:
Name:	www.qq.com
Address: 220.194.111.148
Name:	www.qqs.com
Address: 220.194.111.149
www.qq.com	canonical name = public-v6.sparta.mig.tencent-cloud.net.
Name:	public-v6.sparta.mig.tencent-cloud.net
Address: 2408:8711:10:10::24
Name:	public-v6.sparta.mig.tencent-cloud.net
Address: 2408:8711:10:10::30

dig 域名解析 ,从域名服务器查询主机地址信息

~]# dig -t A harbor.od.com +short
10.4.7.200   -t 指定查询的记录类型  +short 显示简短信息

tee 从标准输入取数据,内容输出到控制台的同时,也可以将内容输出到其他的文件中

ping baidu.com | tee ping-baidu.log #输出到控制台的同时,将内容保存到ping-baidu.log文件

防火墙

iptables 备份,还原规则

redhat7中更改了默认为firewalld,也可继续使用iptables
##备份当前规则
##iptables-save  >iptables-services
禁用FireWallD,安装&启用iptables-services
systemctl stop firewalld
systemctl mask firewalld
yum install iptables-services -y
systemctl enable iptables
#清空规则
#iptables -F 
#iptables -X 
#iptables -Z
##将备份还原
##iptables-restore iptables.rules
然后再在/etc/rc.local中强制加上
/etc/rc.local  
iptables-restore /etc/iptables.rules

打开端口

nc -lp 23 &(打开23端口,即telnet)

netstat -| grep 23 (查看是否打开23端口)

 iptables -I  INPUT -ptcp --dport 22 -j ACCEPT  ##开放22端口
iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:55
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22

关闭端口

iptables -A INPUT -p tcp --drop 端口号-j DROP

iptables -A OUTPUT -p tcp --dport 端口号-j DROP

firewalld 打开关闭端口

 firewalld: 打开单个端口:firewall-cmd --zone=public --add-port=80/tcp --permanent
                 打开多个端口:firewall-cmd --zone=public --add-port=20000-29999/tcp --permanent   --permanent  为永久生效,不加为单次有效(重启失效)
                查看开启端口: netstat -ntlp 或:firewall-cmd --list-ports
 关闭端口:       firewalld: 关闭端口命令:firewall-cmd --zone= public --remove-port=80/tcp --permanent
                 查看端口是否打开  firewall-cmd --zone= public --query-port=80/tcp

挂载光盘有什么用呢?虚拟机上就是安装的CentOS系统镜像,为啥还有挂载镜像

挂载光盘之后可以读取光盘内的文件,因为安装系统时候的选项不同,比如你按照的是没有桌面的系统,现在需要使用桌面,要安装软件包才可以,有2种安装方式,1网络安装,从网络共享上获取安装包,进行安装,2使用本地安装包进行安装桌面,iso光盘内有很多基本的安装包,其中包括桌面安装包,将光盘挂载到本地,配置本地yum源仓库,就可以安装需要的应用软件的安装包。说的有点麻烦了,简单来说,就是安装的系统里只是iso光盘内的一部分。

lsattr 与 chattr (锁定文件)

有时候用root用户不能修改某文件,大部分原因是用chattr锁定了文件,显示被设置的文件属性用lsattr.(比如 有 i 权限,文件不能被删除,改名,设置链接关系,同时不能写入或新增内容)

这两个命令是用来查看和改变文件、目录属性的,与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。

chattr +i anaconda-ks.cfg
[root@wulijiajun ~]# lsattr anaconda-ks.cfg
----i----------- anaconda-ks.cfg

"anaconda-ks.cfg" E212: Can't open file for writing
E37: No write since last change (add ! to override)
:q!

用户系列

useradd && userdel

useradd  -m  makepsdata    -m 自动创建用户登录目录
# 普通创建: 输入  passwd  

#非交互创建密码
echo "123456" |passwd --stdin hehe   

ubuntu  echo "hehe:123456" |chpasswd (普通给下权限chmod 4755 /usr/sbin/chpasswd;)


userdel  -r  hehe     -r  回把用户相关的目录一块删除,不加后删除/home/hehe  再次创建用户会提示用户已存在。原因是并没有删除mailbox里的文件

usermod

usermod -a表示在原来所属组的基础上追加
groupadd group1
groupadd group2
useradd user1
usermod -G group1 user1
id user1
uid=1006(user1) gid=1014(user1) 组=1014(user1),1013(group1)
usermod -G group2 user1
id user1
uid=1006(user1) gid=1014(user1) 组=1014(user1),1010(group2)
useradd user2
usermod  -G group1 user2
id user2
uid=1007(user2) gid=1015(user2) 组=1015(user2),1013(group1)
#usermod -a -G group2 user2
id user2
uid=1007(user2) gid=1015(user2) 组=1015(user2),1010(group2),1013(group1)

压缩与解压

tar

tar -zxvf 用于解压  .tar.gz 后缀结尾的

tar -xvf 用于解压   .tar后缀结尾的
zxvf是tar后面的参数。

.tar.gz是一个压缩包,.tar只是打包而没有压缩。

z	通过gzip支持的压缩或解压缩。还有其他的压缩或解压缩方式,比如j表示bzip2的方式
x	解压缩
v	在压缩或解压缩过程中显示正在处理的文件名
f	f后面必须跟上要处理的文件名。

zip

unzip  xxx.zip   
upzip xxx.zip   -d 指定目录

scp远程拉取推送

参数
-P:指定端口,默认22可不写(P大写)
-r:递归拷贝目录
-p:属性不变
-l:限制速度 (如 -l 1024 默认单位M)
一般常用 -rp 组合

目标主机:192.168.0.142
scp -rp  /database/redis4/redis_6379/dump.rdb root@192.168.0.142:/database/redis/redis_6380/ 
posted @ 2020-08-08 11:20  gaojiajun  阅读(455)  评论(0)    收藏  举报