系统信息
命令 功能 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