Bash基础
cat < file1 > file2 # 相当于cp file1 file2
cd ~ # 移动到当前用户目录
ls -a *.txt # 显示当前目录下包含隐藏文件的所有正则匹配文件
sort < sort.txt -n # 按照字符串数值排序,默认按照字符串顺序排序,可能出现10<4的情况 -g按照数值排序
cat file | more # 当文件太长时,分屏显示
lp file # 打印文件
常用unix过滤功能
cat 复制到输出
grep 检索字符串
sort 按行排序
cut 抽取列
sed 编辑操作
tr 将输入字符替换成其他字符
#管道机制
#多个命令按照顺序执行,一个命令行通过“|”分隔多个命令。
nice -5 command # 降低当前命令运行优先级 renice -n pid 修改进程优先级。
#优先级的数值为-20~19,其中数值越小优先级越高,数值越大优先级越低,-20的优先级最高,19的优先级最低
#普通用户只能在0~19之间调整应用程序的优先权值,只有超级用户有权调整更高的优先权值(从-20~19)。、
echo 2 * 4 > 6 is ddd # 会将 2 4 is ddd 作为字符串 以及*匹配的所有文件名 输出到 6文件中
echo 2 \* 4 \> ... 作为字符串输出控制台
echo '222' # 会作为字符串输出到控制台
echo 后面字符没有特殊含义则不需要''或者\转义符号
“ 弱引用 ‘ 强引用
find . -name '*.txt' # 查找当前目录下名称匹配的所有文件
多行命令输入--续行 使用’\‘结尾或者’开头(只有echo语句或代表字符串能使用),后面不能有空格或tab
fc -l # 显示命令历史记录,默认显示16个
fc -s 1 # 重新执行编号1 的命令
fc -ln command > file # 将从command 命令开始的所有命令输出到文件中,隐藏命令编号
alias name=command # 起别名,注意等号两边不能有空格,可用在指定文件夹,或替换错词
$alias # 引用别名格式
脚本正常情况运行于子shell
. scriptfile | ./scriptfile | bash scriptfile |source scriptfile #可以执行脚本文件中的命令
chmod +x scriptfile # 给脚本添加可执行权限
定义函数
function functname{
command
}
或
functname(){
command
}
declare -f # 找到定义的函数
declare -F # 找到函数名
type -all keyword # 查询命令或函数或文件 -type 查询类型
脚本参数 $0 $1 $2 $# $@ # 依次为 脚本名称和 第n个参数 参数个数 所有输入(包括脚本名称)
#只有脚本名会在函数和脚本内都已知
${10} # 更好判断参数位置