系统相关命令
- ln 创建软链接
- 查询命令对应哪个包
- vim 中搜索忽略大小写
- rpm
- yum
- yum localinstall 安装本地rpm包,自动解决依赖关系
- yum history list 列出yum安装历史
- GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Percona
- linux报错Loading mirror speeds from cached hostfile解决方法
- yum 开启缓存 /etc/yum.conf
- 遇到国外源,建议修改成清华源
- yum info haproxy 查看自带安装软件信息
- yum repolist 查看启用的源列表/yum repolist disabled 查看禁用源列表
- yum list docker-ce --show-duplicates 列出所有版本
- 后台执行
- fdisk -l 查看系统上的硬盘大小
- seq 指定增量,从首位打印到尾数
- w 哪个在用户登录,在使用那个命令
- 压缩系
- 查看系统监控负载内存
- xxx.release.xxx.rpm 是某服务的源
- 文件名乱码 ,利用iNode删除
- dd 搬运数据
- tr -dc[a-zA-Z0-9] # a-z和A-Z 0-9 随机字符
- 查看iNode ll -i / stat 文件
- 存放系统启动文件的配置/usr/../system/和 /etc/../system/
- selinux 关闭 firewalld关闭
- ssh 主机间免密登录
- linux 命令 uname -r uname -a
- tmpfs
- DNS网络解析
- tee 从标准输入取数据,内容输出到控制台的同时,也可以将内容输出到其他的文件中
- 防火墙
- 挂载光盘有什么用呢?虚拟机上就是安装的CentOS系统镜像,为啥还有挂载镜像
- lsattr 与 chattr (锁定文件)
- 用户系列
- 压缩与解压
- scp远程拉取推送
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的区别:
- less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示
- less不必读整个文件,加载速度会比more更快
- 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

tcpdump ,wireshark ,nc ,nmap
tcpdump

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 图形化版
交换机环境
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 源文件 目标文件

查询命令对应哪个包
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

nethogs
查看进程占用流量

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/

浙公网安备 33010602011771号