Linux Shell脚本常用功能记录集

简述

这是一篇记录集,后续将持续记录工作中所遇到的Linux shell相关问题。



IF中判空操作方法

if [ ! -n $1]; then  
  echo "IS NULL"  
else  
  echo "NOT NULL"  
fi  

常用的 -z -e -o -a 说明

表达式说明
-z字符串为空
-o逻辑或,SC2166 中推荐更友好的 && 替代,e.g [ “$1” = “test” -a -z “$2” ] 修改为 [ “$1” = “test” ] && [ -z “$2” ]
-a逻辑与,SC2166 中推荐更友好的

常用的文件比较运算符说明

表达式说明
-x filename如果 filename 可执行,则为真
-e filename如果 filename 存在,则为真
-d filename如果 filename 为目录,则为真
-L filename如果 filename 为符号链接,则为真
-r filename如果 filename 可读,则为真
-w filename如果 filename 可写,则为真
filename1 -nt filename2如果 filename1 比 filename2 新,则为真
filename1 -ot filename2如果 filename1 比 filename2 旧,则为真

数字变量的运算

假设有变量 a="1"

方法说明
双括号运算符$((a+1))
let 声明let b=a+1 或 let a+=1 或 let b=`expr a+1`

变量内容截取操作(##*,%%*)

假设有字符串变量a

表达式说明
${a#*/}删除掉第一个’/'及其左边的字符串
${a##*/}删除掉最后一个’/'及其左边的字符串
${a%*/}删除掉第一个’/'及其右边的字符串
${a%%*/}删除掉最后一个’/'及其右边的字符串
Tips:其中‘/’可以是其他需要的字符

Vim查找小技巧

  1. 命令模式下敲斜杆( / )这时在状态栏(也就是屏幕左下脚)就出现了 “/” 然后输入你要查找的关键字敲回车就可以了。
    如果你要继续查找此关键字,敲字符 n 就可以继续查找了。
    敲字符N(大写N)就会向前查询;
  2. 命令模式下输入":nu"显示当前行号;输入":set nu"显示所有行号

Linux部分服务器信息查看

linux查看CPU信息

grep "model name" /proc/cpuinfo | cut -f2 -d:

linux查看机器内存大小

grep MemTotal /proc/meminfo | cut -f2 -d:

linux查看当前系统版本

more /etc/redhat-release

linux查看CPU位数

getconf LONG_BIT

linux查看磁盘空间

df -hl

补充说明:df是以磁盘分区为单位来查看文件系统。/dev/hdb2 75G 75G 0 100% /, 以此为例。就是HD硬盘接口的第二个硬盘(b)上,里面的第二个分区(2),容量是75G,用了75G,可用是0,因此利用率是100%, 他被挂载到根分区目录上(/)。
查看单个目录磁盘占用空间
du -bs dir_name

linux查看机器硬盘信息

lsblk
在这里插入图片描述

Linux下基于SSH服务的登录转接命令

ssh -p 端口 ip

查看进程运行的线程数

根据进程号进行查询

pstree -p 进程号
top -Hp 进程号

根据进程名字进行查询

pstree -p `ps -e | grep server | awk '{print $1}'`

pstree -p `ps -e | grep server | awk '{print $1}'` | wc -l

补充说明:上述两条命令利用了管道和命令替换,关于命令替换,就是用``括起来的命令会优先执行,然后以其输出作为其他命令的参数。

Linux运行脚本出现 “ /bin/bash^M: bad interpreter: 没有那个文件或目录”异常

问题分析
linux和windows之间的不完全兼容,我在windows下编辑的脚本,所以有可能有不可见字符。脚本文件是DOS格式的, 即每一行的行尾以 来标识, 其ASCII码分别是0x0D, 0x0A.
验证是否包含隐藏字符,操作如下
vi test.sh
进入命令模式->:set ff?
如果出现fileforma=dos那么就可以确定是兼容问题
修复方法
:set fileformat=unix 或者 :set ff=unix
:wq

Linux 查看用户Home目录

echo ~username

查看Linux各个句柄数限制配置

ulimit -a

查看指定端口连接数

netstat -n | grep tcp | grep 侦听端口 | wc -l

linux之间文件传输命令scp

复制本地文件目标服务器:
命令格式:
scp local_file remote_username@remote_ip:remote_folder
or
scp local_file remote_username@remote_ip:remote_file
or
scp local_file remote_ip:remote_folder
or
scp local_file remote_ip:remote_file
复制整个目录到目标服务器:
命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
or
scp -r local_folder remote_ip:remote_folder
带端口复制命令:
scp -P 65422 1.txt winupon@remote_ip:/opt/1.txt

Shell脚本中的变$开头的变量说明

变量名说明
$$Shell本身的PID(ProcessID)
$!Shell最后运行的后台Process的PID
$?最后运行的命令的返回值
$-使用Set命令设定的Flag一览
$*所有参数列表。如"$*“用「”」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@所有参数列表。如"$@“用「”」括起来的情况、以"$1" “ 2 " … " 2" … " 2""n” 的形式输出所有参数。
$#添加到Shell的参数个数
$0Shell本身的文件名
$1~$n添加到Shell的各参数值。$1是第1参数、$2是第2参数…。

查看Linux系统日志

cat /var/log/messages
一般搭配grep命令使用,一般用于查看系统活动,例如排查Redis无故宕机。如图在这里插入图片描述

Linux 上传下载工具

上传命令:rz -be
下载命令:sz file1 file2 .....
补充:
使用yum安装rz sz工具
yum install -y lrzsz

Memcache 通用启动命令

ps -ef|grep "memched"
kill -s 9 Pid
/usr/local/memcached/bin/memcached -d -m 100 -u root -p 11212

列举挂载目录

df -Th

在文件夹的所有文件中查找某字符

grep -r -e string directory

时间校正同步

/usr/sbin/ntpdate time.nist.gov >>/root/t.log && /sbin/clock --systohc
其中time.nist.gov为时间同步源

Linux中 sda, sdb, sdc, sda1, sda2科普

sda-sdc分别对应系统第一到第三块硬盘,sda1sda2对应的第一块硬盘sda的两个分区,详细如下:
第一个软驱 /dev/fd0.
第二个软驱 /dev/fd1.
第一块硬盘 /dev/sda.
第二块硬盘 /dev/sdb, 以此类推.

Linux版本信息查看

查看版本当前操作系统内核信息
uname -a
查看当前操作系统版本信息
cat /proc/version
查看当前操作系统发行版信息
cat /etc/redhat-release
查看cpu相关信息,包括型号、主频、内核信息等
cat /proc/cpuinfo

Linux重启指令

  1. 立即重启
    reboot
    shutdown -r now

统计指定文件夹下文件数[find | wc]

统计当前目录下文件数量

find -type f|wc -l

统计指定文件夹下指定文件数量

find 文件夹路径 -name 文件名 | wc -l


路漫漫其修远兮,吾将上下而求索。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李逸汐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值