linuxprobe笔记

第二章

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

猜你喜欢

转载自blog.csdn.net/sherlockmj/article/details/86515718