linux命令行
sudo 已管理员的身份运行
关机启动
shutdown now
shutdown -r 重启
文件命令
linux 文件目录
/etc 系统配置
/dev 驱动
/mnt 挂载目录
/usr 用户安装的软件
cd path
mkdir dir
touch filename 新建文件
cat > file1 修改文件1的 ctrl + d 结束编辑
mv source target
rm source [-rf] 递归强制删除
文件内容查看
cat file
head file
tail file
文件查找
locate
find
ls
-a 显示所有的文件包括隐藏文件
-i 文件的节点
ln 文件链接 ,链接的用途 ?
ln sourcedest
ln -s source dest 软连接相当于快捷方式
$# 添加到Shell的参数个数
cd `dirname $0` 这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录
if [ -z "$iSAP_HOME" ] -z 是否为空字符串
f[ -f " "] 当file存在并且是正规文件时返回真
test -r filename 测试文件是由具有可读的属性
$ id 显示用户 uid=1001(rbt) gid=100(users) groups=16(dialout),33(video),100(users)
tr 当tr发现与string1中有匹配的字符时,它将使用string2中对应的字符来替换输入中的字符 replace all
$ echo 'uid=(rbt) rbt (d' | tr '(' ' ' uid= rbt d
xyzabd
awk 以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
USERNAME=`id | tr '(' ' ' | tr ')' ' ' | awk '{print $2}'`
uid=1001 rbt gid=100 users groups=16 dialout ,33 video ,100 users
rbt
ps -f -u username 显示某个用户的进程
-f 全格式
pwd 当前目录
ps -ef | grep java
kill -9 3099
df 查看磁盘空间
du -h 目录的大小
环境变量
全局变量
echo $HOME
testvar=localvar
unset testvar 删除环境变量
环境变量使用数组
mytest=(one two)
echo ${sd[*]}
/etc/profile
source 配置文件生效
权限管理
用户管理
软件管理
yum install 名称
yum update 名称
yum remove 名称
yum repolist 库的地址
shell 脚本
第一行
#!/bin/bash 说明使用bin/bash 下面的脚本执行
#!/bin/sh
# the first line tell where sh will execute
echo -n the date and time are :
date
变量
username="Mr li"
today=`date`
echo "hello $username , $today"
`date` 表示使用 date 的日期值,而不是时间
重定向输入或者输出,管道 | 给另外一个方法
date > test1
会将日期的值保存到test1文件中
date >> test1
在 test1 文本后面追加内容
管道
cat first.sh | grep echo
算术
expr 5 + 2
var1=2
var2=3
var3=$[$var1 * $var2]
计算浮点数
在控制台 bc
var4=`echo "scale=4; $var1 / $var2" | bc` 在脚本中
控制符
if [condition]
then
commod
fi
数值比较 [ 5 -gt 3 ]
字符串比较 = > -n 非空 -z 空字符串 [ -n $val1 ]
文件比较 -e 目录文件 -d -f 权限 -r -s -w -x 所有 -O -G 文件日期new old 比较 -nt -ot
条件 逻辑运算 && || !
数值高级(()) if (( 5 ** 2 > 13 )) 字符高级[[]] 模式匹配 [[ "s1"=s*]]
循环
for color in red blue green
do
echo the color is $color
done
while (( j++ < 20))
do
if (( j % 2 == 0 ))
then continue
fi
echo "the next nmber is $j"
done
continue , break
获得参数
$1 第一个参数 $9 第九个参数 ${10}
$# 参数的个数
$@ 所有的参数
$* 所有的参数
shift 删除参数
getopts 参数选项和参数
read name
read -p " enter your name" name
read -s 隐藏输入 -t 时间限制
cat file | while read line 读取文件
信号
ctrl + c 终结线程
ctrl + z 停止信号
trap 捕捉信号
./sign.sh & 后台运行脚本
nohup ./sign.sh & 将输出保存到nohup.out 中
jobs
at -f sign.sh 11:12 定时执行脚本
atq 待执行的job
atrm 删除job
crontab -e 编辑
*/1 * * * * echo date > /home/xumeng/shell/a.txt
corntab -l 列出 -r 删除
开机时启动 不同系统配置不同
函数
引用参数 $1 ,返回值 echo ,局部变量 local var
function factorial(){
if [ $1 -eq 1 ]
then
echo 1
else
local temp=$[ $1 -1 ]
local result=`factorial $temp`
echo $[ $result * $1 ]
fi
}
read -p "enter number :" number
result=`factorial $number`
echo "the factorial of $number is : $result"
文本处理
sed
echo "this is a test" | sed 's/test/big test/'
echo "this is a test" | sed 's/test/big test/; s/this/that/'
gawk