Linux 系统基本操作 - 3


系统信息

命令功能
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 #2s内输入,静默输出
echo -e "\n" #强制转义
printf "%s is %d" "aa" 2

函数

#!/bin/bash
function __printf__() {
    echo "$1"
    return
}

__printf__ "function"

流程控制 - 选择

#!/bin/bash
if [[ -r ${File} ]];then # 可使用 test 表达式 man test 查询
	#
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 #调试每一步
#!/bin/bash
# 指定代码块调试
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 # 清空数组或变量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值