1.rpm -qa 列出所有已安装的rpm包
rpm -qf /path/command 查询一个命令有什么包提供的
rpm -ql 包名 列出安装的rpm包装了哪些目录及文件
2、宿主机采用了CST时区,CST应该是指(China Shanghai Time,东八区时间)
容器采用了UTC时区,UTC应该是指(Coordinated Universal Time,标准时间)
C:\Users\Administrator>net use * /del /y //删除这些已有记录
再次指定共享目录的用户名及密码,直接写死
C:\Users\Administrator>net use \\192.168.10.85\债券组 888888 /user:xxx
6、ls命令统计大小及按时间排序
ls -lt 按时间顺序排列
ls -lh 以GB为单位显示文件大小
-h:统计文件大小
-t:按时间顺序排列,最新的最上面
-A:查看隐藏文件
-R:递归显示当前目录下的目录的所有文件
-S:以文件大小排序(升序和降序)#默认降序排序 #通过-r参数实现升序排列
7、grep的用法
-w:精确匹配,查找什么就只找什么,不显示包含查找内容的结果
-q 不显示任何信息
-n:顺便输出所在行号
-A:取到关键字后打印前几行
-B:取到关键字后打印后几行
grep "pmon|smon|dbw|lgwr|" #一次过滤过个内容
1. grep -A 1 keyword filename
找出filename中带有keyword的行,输出中除显示该行外,还显示之后的一行。其中,数字可以变。
2. grep -B 1 keyword filename
找出filename中带有keyword的行,输出中除显示该行外,还显示之前的一行。其中,数字可以变。
例:sed -n "$[$BEGIN_LINE-10],$END_LINE p" $PWD|grep -A 3 -B 10 'ORA-'>.mailinfo
[root@localhost ~]# cat wsy.txt aaa bbb cccdfaf fasdfsdfasdf [root@localhost ~]# wc wsy.txt 4 4 29 wsy.txt
10、echo输出换行、不换行
[root@kf_test ims_test_node58]# echo -e "abc\n";echo aaa
abc
aaa
[root@kf_test ims_test_node58]# echo -e "abc\c";echo aaa
abcaaa
[oracle@localhost admin]$ dirname tnsnames.ora
.
[oracle@localhost admin]$ dirname $ORACLE_HOME/admin/network/tnsnames.ora
/opt/oracle/product/11.2.0/dbhome_1/admin/network
15、时间同步
ntpdate ntp1.aliyun.com
16、nohup命令相关解释
https://www.cnblogs.com/zq-inlook/p/3577003.html
17、shell中几个括号的用法
1、 $( )和反引号一样,都是命令替换,去命令的结果
2、$(( ))和$[ ]用法一致,都是用于算数运算
3、双小括号 (( ))命令允许在比较过程中使用高级数学表达式
常使用的双小括号来在 for 循环中实现 C 语言风格的迭代: #!/bin/bash for ((i = 0; i < 10; i++)) do echo -n "$i " done echo "" exit 0
4、中括号 [ ]单个的中括号的功能与 test 命令一样,都是用作条件测试。
#!/bin/bash read -p "please enter a number: " num if [ $num -gt 10 ]; then echo "num > 10" else echo "num <= 10" fi
5、双中括号 [[ ]]
双中括号提供了针对字符串比较的高级特性,使用双中括号 [[ ]] 进行字符串比较时,可以把右边的项看做一个模式,故而可以在 [[ ]] 中使用正则表达式:
#!/bin/bash if [[ hello == hell* ]]; then echo "equal" else echo "unequal" fi exit 0
可参考连接:
https://blog.csdn.net/keep_lcm/article/details/80551435
18、反斜杠 \
反斜杠的作用是将特殊符号字符的特殊含义屏蔽掉,使其还是原字符
A=1234
echo \$A 显示为$A 如果不加\将显示为1234
echo \` 显示为`
echo \" 显示为双引号
echo \\ 显示为\
19、二进制文件需用strings命令来查看,例:
oracle的初始参数文件spfile<$ORACLE_SID>.ora: strings spfile<$ORACLE_SID>.ora
20、发邮件时可在邮件内容之前加上自己需要的内容
例:在邮件内容之前加入邮件信息、IP,主机名等内容
[root@myoracle ~]# echo -e "this is a test message\nip:192.168.214.111\nhostname:myoracle\n`cat /home/oracle/2019-06-21.log`" |mail -s 'mail' wushaoyu@ccxe.com.cn #\n为换行符,一个为一个行
21、若服务器没有交换分区,可以创建交换分区
例:阿里云主机没有swap分区,可以用dd命令来创建
[root@iZ2ze6rm1auwacy4tk6ucaZ ~]# dd if=/dev/zero of=/var/var.swap bs=1M count=4096 #指定创建文件的路径及名称,最终大小为bs和count的乘积
[root@iZ2ze6rm1auwacy4tk6ucaZ ~]# dd if=/dev/zero of=/var/var.swap bs=1M count=4096 #M必须大写 4096+0 records in 4096+0 records out 4294967296 bytes (4.3 GB) copied, 38.5397 s, 111 MB/s [root@iZ2ze6rm1auwacy4tk6ucaZ ~]# mkswap /var/var.swap #创建交换分区 mkswap: /var/var.swap: warning: don't erase bootbits sectors on whole disk. Use -f to force. Setting up swapspace version 1, size = 4194300 KiB no label, UUID=0bde52c7-852b-4f07-b4e2-f700b2eb1eec [root@iZ2ze6rm1auwacy4tk6ucaZ ~]# free -m total used free shared buffers cached Mem: 995 926 69 266 34 414 -/+ buffers/cache: 477 518 Swap: 0 0 0 [root@iZ2ze6rm1auwacy4tk6ucaZ ~]# swapon /var/var.swap #启用交换分区功能 [root@iZ2ze6rm1auwacy4tk6ucaZ ~]# free -m total used free shared buffers cached Mem: 995 929 66 266 34 414 -/+ buffers/cache: 480 515 Swap: 4095 0 4095
可将其写入开机自动挂载的配置文件,服务器重启依然有效:
[root@iZ2ze6rm1auwacy4tk6ucaZ ~]#echo "/var/swap swap swap defaults 0 0" >> /etc/fstab
关闭交换分区:
[root@iZ2ze6rm1auwacy4tk6ucaZ ~]#swapoff /var/var.swap
22、搜索进程,与则kill,没有则会报错,加选项--no-run-if-empty,没有则执行kill
netstat -n|grep 1520|grep -v grep |xargs --no-run-if-empty kill
23、tee命令
常用参数:
1)格式:tee file
输出到标准输出的同时,保存到文件file中。如果文件不存在,则创建;如果已经存在,则覆盖之。
2)格式:tee -a file
输出到标准输出的同时,追加到文件file中。如果文件不存在,则创建;如果已经存在,就在末尾追加内容,而不是覆盖。
3)格式:tee -
输出到标准输出两次。
4)格式:tee file1 file2 -
输出到标准输出两次,同时保存到file1和file2中。
24、wget命令
1)下载文件 到指定目录:(若下载到当前目录则不需要-P选项)
wget -P 指定目录 下载地址
例: [root@iZ2ze6rm1auwacy4tk6ucaZ ~]# wget -P /root/soft http://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
2)下载文件,将其写入到指定文件
例: [root@iZ2ze6rm1auwacy4tk6ucaZ ~]# wget https://www.cnblogs.com/ftl1012/p/9265699.html -O /root/message.html
3)wget -0 filename filename (把什么文件下载到什么路径,另存为什么名字)
[root@redhat yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
25、curl命令
[root@redhat yum.repos.d]# curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo
curl -o 访问什么,然后将其写入那个文件中
26、readlink命令
根据脚本名称,获取脚本的绝对路径或
[admin@data01-001 memsql]$ readlink -f install.sh(或dirname install.sh)
/data/infra/memsql/install.sh
27、linuxl连接终端超时自动断开连接
[root@ecs-3366 ~]#vim /etc/profile TMOUT=180 //以秒为单位 export TMOUT
或 export TMOUT=180
[root@ecs-3366 ~]#source /etc/profile
28、创建秘钥,免密登录
ssh-keygen //创建秘钥
ssh-copy-id root@ip //将生成秘钥传递给其他主机即可
29、启动邮件服务,无法发邮件,查看状态出现以下报错:
Aug 12 00:30:05 web01-001 systemd[1]: Starting Postfix Mail Transport Agent... Aug 12 00:30:05 web01-001 sendmail[26115]: My unqualified host name (web01-001) unknown; sleeping for retry Aug 12 00:31:05 web01-001 sendmail[26115]: unable to qualify my own domain name (web01-001) -- using short name
最终在/etc/hosts文件配置相应解析解决:
192.168.0.3 web01-001 zhkj.mail.com(原因不明)
参考文档:
https://blog.51cto.com/hades02/1734336(只添加此参考中的修改及成功)
https://www.cnblogs.com/linuxzkq/p/4859737.html
30、将写好的脚本上传到git仓库后,再拉下来执行的时候出现报错install_elasticsearch.sh: line 73: syntax error: unexpected end of file
经查询是由于编码引起的,linux下编码是unix,尔传到window时编程了dos类型,故在上传到服务器执行时出现此报错
解决方法:打开脚本输入:set ff 可查看当前类型,若为dos则为window格式,则执行脚本报错,可执行:set ff=unix 再次检查脚本语法及不会报错
参考链接:https://blog.csdn.net/u012453843/article/details/69803244
31、cp命令
cp -i 复制时,若目标文件存在,则会提示是否覆盖
cp -f 强制覆盖,不会提示
cp -a 复制时不改变用户属性
cp -r 复制目录
32、shell脚本中set命令的用处
1) set -u
执行脚本的时候,如果遇到不存在的变量,Bash 默认忽略它。set -u
就用来改变这种行为。脚本在头部加上它,遇到不存在的变量就会报错,并停止执行。
2) set -x
默认情况下,脚本执行后,屏幕只显示运行结果,没有其他内容。如果多个命令连续执行,它们的运行结果就会连续输出。有时会分不清,某一段内容是什么命令产生的。
set -x
用来在运行结果之前,先输出执行的那一行命令。或在执行脚本时,添加-x选项执行脚本 sh -x shell.sh
3) Bash 的错误处理
如果脚本里面有运行失败的命令(返回值非0),Bash 默认会继续执行后面的命令。Bash 只是显示有错误,并没有终止执行。
这种行为很不利于脚本安全和除错。实际开发中,如果某个命令失败,往往需要脚本停止执行,防止错误累积。这时,一般采用下面的写法。
# 写法一 command || { echo "command failed"; exit 1; } # 写法二 if ! command; then echo "command failed"; exit 1; fi # 写法三 command if [ "$?" -ne 0 ]; then echo "command failed"; exit 1; fi
4) set -e
上面这些写法多少有些麻烦,容易疏忽。set -e
从根本上解决了这个问题,它使得脚本只要发生错误,就终止执行。
set -e
根据返回值来判断,一个命令是否运行失败。但是,某些命令的非零返回值可能不表示失败,或者开发者希望在命令失败的情况下,脚本继续执行下去。这时可以暂时关闭set -e
,该命令执行结束后,再重新打开set -e
set +e command1 command2 set -e
上面代码中,set +e
表示关闭-e
选项,set -e
表示重新打开-e
选项。
33、top命令非交互执行服务占用内存CPU
top -bn1 //-b非交互执行、-n几秒执行一次
34、shell脚本变量表示方式:m=${1:-start}
$1代表第二个参数
m=${1:-start}表示
如果$1存在且不为空,m就是$1
如果$1不存在或为空,那么m就是start
35、查看进程的线程数
ps -T -p PID或top 使用H选项
36、parted分区(将4T的硬盘分区一个分区)
选择操作磁盘 parted命令后跟上欲操作磁盘的名字即可选择此设备进行操作。 [root@kvm ~]# parted /dev/sdb GNU Parted 3.1 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands.
新建磁盘标签类型为GPT
因为parted命令只能针对gpt格式的磁盘进行操作,所以这里必须将新建的磁盘标签格式设为gpt。
(parted) mklabel gpt
分区
命令格式
mkpart PART-TYPE [FS-TYPE] START END
- PART-TYPE(分区类型)
- primary
主分区 - logical
逻辑分区 - extended
扩展分区
- primary
- FS-TYPE(文件系统类型)
- ext4
- ext3
- ext2
- xfs
- 其他......
- START
设定磁盘分区起始点;可以为0,numberMiB/GiB/TiB;- 0
设定当前分区的起始点为磁盘的第一个扇区; - 1G
设定当前分区的起始点为磁盘的1G处开始;
- 0
- END
设定磁盘分区结束点;- -1
设定当前分区的结束点为磁盘的最后一个扇区; - 10G
设定当前分区的结束点为磁盘的10G处;
- -1
将/dev/sdb整个空间分给同一个分区
(parted) mkpart primary 0 -1 Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? I (parted) p Model: AVAGO AVAGO (scsi) Disk /dev/sdb: 18.0TB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 17.4kB 18.0TB 18.0TB primary (parted) q Information: You may need to update /etc/fstab.
格式化分区
因为整个/dev/sdb只分了一个区,则这个分区名默认会分配为/dev/sdb1;使用mkfs命令将/dev/sdb1分区格式化为ext4。
[root@kvm ~]# mkfs -t ext4 /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) /dev/sdb1 alignment is offset by 244736 bytes. This may result in very poor performance, (re)-partitioning suggested. Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=64 blocks, Stripe width=64 blocks 274659328 inodes, 4394530311 blocks 219726515 blocks (5.00%) reserved for the super user First data block=0 134111 block groups 32768 blocks per group, 32768 fragments per group 2048 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848, 512000000, 550731776, 644972544, 1934917632, 2560000000, 3855122432 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
创建挂载目录
[root@kvm ~]# mkdir /gfsdata01
临时挂载分区
[root@kvm ~]# mount /dev/sdb1 /gfsdata01 [root@kvm ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/root_vg-lv_root 89G 2.6G 82G 4% / devtmpfs 126G 0 126G 0% /dev tmpfs 126G 0 126G 0% /dev/shm tmpfs 126G 2.0M 126G 1% /run tmpfs 126G 0 126G 0% /sys/fs/cgroup /dev/sda1 976M 216M 694M 24% /boot /dev/sda7 99G 61M 94G 1% /home /dev/sda8 62G 53M 59G 1% /tmp /dev/sda6 99G 61M 94G 1% /app tmpfs 26G 0 26G 0% /run/user/1014 tmpfs 26G 0 26G 0% /run/user/0 /dev/sdb1 17T 20K 16T 1% /gfsdata01
参考连接:https://www.cnblogs.com/wholj/p/10924129.html
35、测试内网直接的网路传输速率
【iperf测试】
1、角色A:新开通的那台云主机(192.168.0.7),角色B:原来4台中的任意一台即可。
2、A和B均安装iperf工具,命令:yum install -y iperf
3、A作为服务端开启iperf,命令:iperf -s
4、B作为客户端测试网速,命令:iperf -c 192.168.0.7 -t 30 -P 10 -b 100M
5、等待测试过程,观察A和B的结果。
36、springcloud 指定本地配置文件启动参数
--spring.config.local=application.yml --spring.profiles.active=local
37、移动云发送邮件到163邮箱,收不到。可使用指定邮件发送的方式来发送邮件来接收
示例使用postfix,在/etc/mail.rc配置文件新增配置,使用指定邮箱发送邮件,添加配置如下:
set from=wushaoyu95@163.com set smtp=smtp.163.com set smtp-auth-user=wushaoyu95 set smtp-auth-password=KYUFYLBUOLIPRWWG #授权码 set smtp-auth=login
重启postfix服务,相关参考连接如下:https://blog.csdn.net/weixin_30386713/article/details/98422327
38、使用vim编辑文件,复制带有#号的文件到文件中时,需修改格式,否则会出现大量#号
set paste
39、ymal 里面,`|2` `|-2` `|` `|-` 区别
1)有没有换行符的区别,带-就没换行符
2)还有一个>- >的区别是空格符,带-的没有换行符
40、dell服务器查看raid信息
安装OMSA 后执行此命令查看raid信息
omreport storage vdisk #执行此命令即可
21、ps命令
一、ps命令
[root@localhost ~]# ps aux|head -1;ps aux|sort -rn -k3|head -10
ps参数的a指代all,表示所有的进程,u指代user id,就是执行该进程的用户id,x指代显示所有程序,不以终端机来区分。
sort命令:r代表reverse,反向比较效果 n:代表根据数值排序 k:代表根据哪一列进行排序,后面的数字3表示按照第3列排序
注:ps -A 显示所有进程
ps -e 此参数的效果和指定"A"参数相同
-f 全部列出,通常和其他选项联用
22、测试网络连通性
不断telnet查看网络是否能通:
while true; do echo "" | telnet 172.23.111.11 22; sleep 0.1; done
或用nc命令测试: nc -vz 10.0.0.3 443