一.简单命令
1.创建文件(vi)
vi hellowold.txt
2.创建目录(mkdir)
mkdir linux_bash
3.删除文件(rm)
rm helloworld.txt
4.复制文件(cp)
cp src des
5.移动文件或重命名(mv)
mv oldname newname
6.脚本中打印(echo)
echo "some print str"
7.文件中搜索字符串(grep)
grep 'searchworld' filename
8.指定输出文件中字符长度(cut)
cut -b 5-9 filename
9.输出文件内容到屏幕上(cat)
cat filename
10.得到文件类型(file)
file fimename
11提示用户输入。并将输入赋值给变量(read)
read var
12.对文件中的行进行排序(sort)
sort filename
13.删除文本文件中出现的行列(uniq)
sort filename | uniq
14.进行数学运算(expr)
add 2 and 3 expr
15 搜索文件(find)
find . -name filename -print
16 将数据输出到屏幕或文件中(teee)
somecommand | tee outfile
17 回返不包含路径的文件名(basename)
basename /bin/filename 返回filename
18 返回文件所在路径(dirname)
dirname /bin/filename 返回bin
19 打印文件开头几行或者末尾几行
head filename
tail filename
20 查找替换 可以从标准输入(如命令管道)读入文本,并将结果输出到屏幕
sed 's/linuxfocus/LinuxFocus'(待定)
21 从文本文件中提取字段awk
cat filename | awk -F,'{print $1 "," $3}' 使用","作为字段分割符,同时打印第一个和第三个字段
eg: srouce: Adam Bor,33,IndiaKerry Miller,22,USA
dest: Adam Bor,Indiakerry Miller,USA
23
管道 | 将一个命令的输出作为另一个命令的输入
eg: grep "hello" file.txt | wc -l
在file.txt从搜索包含有"hello"的行并计算其行数
重定向 >写入文件并覆盖旧文件
>>加入文件的尾部,保留旧文件内容
将一个命令的输出作为另外一个命令的一个命令行参数
find . -mtime -1 -type f -print
用来查找过去24小时(-mtime -2则表示过去48小时)内修改过的文件,
tar -zcvf lastmod.tar.gz 'find . -mtime -1 -type f -print'
打包查找的文件
二:流程控制语法
1.流程控制if else
if [-f "somefile"] ;then
echo "somefile 是一个文件"
elif [-x "/bin/ls"] ;then
echo "/bin/ls有权限"
else
echo "if fi为固定格式"
fi
“if” 表达式,如果条件为真则执行then后面的部分
[-f "somefile"] 判断是否是一个文件
[-x "/bin/ls"] 判断/bin/ls是否存在并有可执行权限
[-n "$var"] 判断var变量是否有值
["$a"="$b"] 判断$a $b是否相等
2.流程控制 case 可以用来匹配一个给定的字符串而不是数字
ftype='file "$1"'
case "$ftype" in
"$1:Zip archve"*)
unzip "$1";
"$1: gzip compressed"*)
gunzip "$1";
"$1: bzip2 compressed"*)
bunzip2 "$1";
*) echo "File $1 can not be uncompressed with smartzip";
esac
3.流程控制 select表达式是一种bash的扩展应用,擅长于交互式使用,用户可以从一组不同的值中进行选择
echo "what is your favourite OS?"
select var in "Linux" "Gnu Hurd" "Free BSD" "Other";do
break
done
echo "You have selected $var"
如果你输入 1 ,输出 You have selected Linux
4 流程控制loop
4.1 while-loop 将运行直到表达式测试为真
while ...;do
...
done
4.2 for-loop 表达式查看一个字符串(字符串用空格分隔)然后将其赋给一个变量
for var in ....;do
.....
done
for var in A B C do
echo "var is $var"
done
3.简单脚本
#! /bin/sh
a="hellowold,boy!"
echo "A is"
echo ${a}