系统信息
命令 | 功能 |
---|
uptime | 打印系统运行时长和平均负载 |
who | 当前登录系统的用户信息 |
last | 显示用户最近登录信息 |
date | 显示和设置系统日期 |
w | 当前登录用户列表及正在执行的任务 |
whoami | 打印当前有效的用户名称 |
uname | 打印当前系统信息 |
cal | 显示日历 |
history | 显示历史操作记录 |
who am i
last | grep -v "wtmp begins" | grep -v "^$" | cut -d ' ' -f 1 | sort | uniq -c | sort -n -r | head -n 1
cat a.log | tr -s -c "a-zA-Z" "\n" | sort | uniq -c | sort -n -r | head -n 5
uname -a
date +"%Y-%m-%d %H:%M:%S"
time1=`date +%s`
time2=`date +%s`
dur=$[ ${time1} - ${time2} ]
SHELL 编程
#!/bin/bash
a='nihao'
a="a:${a}"
a=`pwd`
loacl a
参数变量
$0
当前执行 shell 脚本的路径文件名$n
当前执行脚本的第 n 个参数$*
获取所有参数$@
获取所有参数,并保留空白$#
当前执行参数个数
状态变量
$?
上一指令是否执行成功$$
当前执行进程 pid$!
上一执行进程 pid
输入输出
#!/bin/bash
read -t 2 -p -s "Input pwd:" pwd
echo -e "\n"
printf "%s is %d" "aa" 2
函数
#!/bin/bash
function __printf__() {
echo "$1"
return
}
__printf__ "function"
流程控制 - 选择
#!/bin/bash
if [[ -r ${File} ]];then
elif [[ ]];then
else
fi
case $a in
1)
echo 1
;;
2)
echo 2
;;
esac
流程控制 - 循环
#!/bin/bash
for i in `seq 1 100`;do
touch file${i}.txt
done
for i in `ls`;do
echo $i
done
for ((i=1; i<=100; i++));do
echo $i
done
while [[ $num -lt 100 ]];do
echo ${num}
num=$[ ${num} + 1 ]
done
until [[ ]];do
done
调试
bash -x command
set -x
...
set +x
数组
#!/bin/bash
read -a a
echo ${a[0]}
echo ${a[@]}
echo ${#a[*]}
echo ${!a[*]}
declare -a b
b[1000]=1
d=(1 2 3 4 5 6 7)
d+=(4 5 6)
files=(`ls`)
unset d