第二章
access访问时间
modify修改文件时间
change修改文件属性及信息时间
cut -d : -f 1 anaconda-ks.cfg 提取以:为间隔符的第一列的信息
cut -d : -f 1,4 xxx 提出第一行和第四行
diff a.txt b.txt 详细结果
diff --biref a.txt b.txt 结果
ctrl +l 清屏
touch haha 创建haha
touch -d "08:14" haha 修改文件最后被修改时间
mkdir -p a/b/c/d/e/f/g/h/i 存在嵌套关系且不存在创建文件夹
cp abc def 把abc复制成def
mv abc ccd 把abc该名称ccd
rm -f def 删除不用确认
rm -rf 目录 直接删除目录
if/of (input file/ouput file)
dd if=initial-setup-ks.cfg of =hehe bs=20 count=1 把a文件的前20输入到b文件
file + 文件名 查看文件属性
tar czvf 文件名称 打包
c:打包归档
z:gzip压缩格式
g:bzip压缩格式
v:打包解压的过程
f:文件名称
tar xzvf 解压
grep -n xxx 文件名 选取文件中的xxx并且找出行
grep -v xxx 文件名 反选文件中的xxx并且找出行
find / -name "host" 全盘搜索(长格式)
find / -user mj -exec cp -rf {} /root/results/ \; -rf,强制复制若有同名文件直接复制不去提醒,fnd不支持管道符。{}代表所有搜索到的结果。
unzip解压 .zip
free -h 自动调节大小
kill all 全部进程结束
who 当前登陆用户(user表示终端个数)
sosreport 导出基本信息
第三章
重定向:1,输入<。将文件输入到一个命令里。
2,输出>。将输入的屏幕的数据输入到文件中。
标准输出1>(1可以省略掉)
错误输出2>
覆盖写入和追加写入
覆盖写入:清空原有内容。
追加写入:保留原始内容。
&>将标准和错误同时输入到
将命令原先输入到屏幕的文件,经过重定向修改到文件里。
管道符(命令和命令)将命令原先要输出到屏幕的内容交由给后面的命令再来处理。
命令A | 命令B
no loginin 不能登陆系统,只能被某个服务调用。
passwd
echo “123456” | passwd --stdin root 通过管道符更改密码
echo "hahahaha" | mail -s"hahahahah"(标题)写邮件
通配符:
*空值,无穷多的值。
?单个字符。
[0-9][a-z][A-Z]单个的英文字母
{1,3,5,7,9}
[0-9][0-9]匹配两位数
[0-9]正常输出匹配内容,没有不显示。
{0-9}正常显示匹配内容,没有报错。
“xxx”把里面的字符串作为一个整体
'xxx'把里面的字符串整体做转义
`xxx`执行里面的命令
\转义符
echo "price is \$ $price"输出价钱,如果不输入转义则会输出pid号
1:路径
2:alias别名。 alias ff= ""cut -d :
3:bash内部命令
4:外部命令 90%
$HOME保存家目录
$SHELL提取使用终端的值
$HISTFILESIZE提取追踪记录
$RANDOM 随机数字
export WORKDIR 提升为全局变量
5 dd删除
5 yy复制
p粘贴
u还原
/ 搜索
n下一个搜索位置
:wq!强制保存退出
主机名称地址↑
网卡名称↑
yum仓库↑
echo "">haha.txt 把haha清空
第四章
1:脚本声明 #!/bin/bash
2:脚本注释 脚本的功能/作用或对某一行参数进行解释说明的。
3:脚本命令
$#参数个数
$* 参数具体值
[ -e /dev/sda/ ]判断语句,前后必须有空格
[ -d /dev ]判断是否目录
[ -r /etc/fstab ]判断是否可读
[ -w /etc/fstab ] && echo "OKOKOK" 判断是否有写入权限
[ -d /etc/fstab ] && echo "OKOKOK" ||echo "NONONO"判断是否是目录,成功ok,失败no。
[ $USER = ROOT ] &&echo "USER“
[ !$USER=ROOT ] &&eco "USER"
与 &&
或 ||
非 !
数字判断用操作符
[ 5 -eq 5 ] 等于
[ 5 -lt 5 ]小于等于
[ 10 -ge 5 ]大于等于
[root@localhost mj]# HAHAHA=`free -m | grep Mem: |awk '{print $4}'`
[ $HAHAHA -lt 1024 ] && echo "less hahahah"
[ -z HAHAHA ]判断一个变量是否等于空值echo $?
if
(单分支)
(双分支)
(多分支)
DIR ="/media/hahaha"
if [ !-e $DIR ] #是否不存在
then
mkdir -p $DIR
fi
#!/bin/bash
#
ping -c 3 -i 0.2 -w 3 $1 &> /dev/null
if [ $? -eq 0 ]
then
echo "$1 is on-line"
else
echo "$1 is off-line"
fi
read -p "Enter score (0-100):"GRADE
if [ GRADE -ge 85 ] && [ $GRADE -le 100 ] ; then
echo "$GRADE is Excellent"
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ] ; then
echo "$GRADE is Pass"
else
echo "$GRADE is Fail"
fi
else除条件以外的其他所有情况
for有范围的循环语句 do xxxx done
while若条件成立则无限循环
#!/bin/bash
read -p "enter your users password:" PASSWD
for UNAME in `cat users.txt`
do
id $UNAME &> /dev/null
if [ $? -eq 0 ]
then
echo "already exists"
else
useradd $UNAME &> /dev/null
echo "$PASSWD" | passwd --stdin %$UNAME &> /dev/null
if [ $? -eq 0 ]
then
echo "$UNAME ,Create success "
else
echo "$UNAME ,Create failure"
fi
fi
done
&>把对的和错的同时输入到一个文件里
#!/bin/bash
#ping hosts
HLIST =` cat ip.txt ` #HLIST =$(cat ip.txt)
for IP in `cat ip.txt`
do
ping -c 3 -i 0.2 -w 3 $IP &> /dev/null
if [ $? -eq ] ;then
echo "HOST" $ IP is on-line"
else
echo "HOST $IP is off-line"
fi
done
#!/bin/bash
#``````
PRICE=$(expr $RANDOW % 1000 )
TIMES=0
while true
do
read -p "NUMBER :" INT
let TIMES++
if [ $INT -eq $PICE ]; then
echo " good!"
echo "TIMES :$TIMES"
exit 0
elif [ $INT -ge $PRICE ]; then
echo "high"
else
echo "less"
fi
done
#!/bin/bash
#
#
read -p "enter :"KEY
case "$KEY" in
[a-z]|[A-Z]) #格式要求必须一个括弧
echo "zimu"
;;
[0-9])
echo "shuzi"
;;
*)
echo "error"
;;
esac