bash内置命令:
1、help
2、echo
3、printf
4、cd
5、pwd
6、: --用途:什么都不做,传回真值(即传回0)。 例如,利用:,建立空文件。 : > test.txt
7、. (半角句号) 用途:在现行的SHELL环境中执行SHELL程序
8、source :用途在现行的shell环境中执行shell程序。
10、alias:用途:显示、设定程序别名。
11、unalias
12、exit
13、logout
14、umask 用途:显示或设定:文件、目录创建时,文件权限的屏蔽值。
通常在linux/bsd等系统建立新的文件时,默认的权限值是0666;在建立新的目录时,默认的权限值是777.
不过这样的权限制并不安全,为了让文件管理者能方便的开设文件及目录,又不必担心权限的安全性问题。因此才有了umask机制
umask 022:
表示新的文件建立时,其真正的权限应该是0666-0022=0644
表示新的目录建立时,其真正的权限应该是0777-0022=0755
15、history 用途显示过去曾经执行过的shell指令
与history有关的三个变量:
HISTFILE:历史脚本文件(执行过的命令存储的位置).bash_history
HISTFILESIZE:历史脚本文件的行数大小。
HISTSIZE:设定在一个互动模式的SHELL中,可记住的历史指令数。
16、fc 列出登录主机后,最近执行过的指令。 fc -l
17、type 用途:判断BASH对某一指令如何解释。
18、set;用途设定bash shell的属性;若不加任何选项和参数,它会显示所有的shell
变量和函数的内容。
开启某一个属性:如:set -o |grep emacs
关闭某一个属性:如:set +o emacs
19、shopt用途设定bash shell的行为模式;
shopt -s 启用选项
shopt -u 关闭选项
20、time用途在script 或指令执行结束后,显示real,user,cpu 3种耗用时间的统计。
21、read用途由标准输入读取一行数据
read -a arr < <(echo 123 45 97 88 102) 是一种进程替换的用法
提前数组方法: echo ${arr[2]}
IFS=':' IFS是字段分隔字符变量。
read f1 f2 f3 f4 f5 f6 f7 < /etc/passwd
22.exec 用途执行指定的程序,取代原来的shell;或是转向操作生效。
23、eval 读取参数,结合成一个新指令,在进行变量替换时,予以执行。
例如:listlog="ls -la /var/log/*.log"
eval $listlog
bash命令行程序:(外部命令)
命令行程序是单独存在的执行文件,执行前,shell会先在程序的搜寻路径$PATH中寻找。
1、which 用途在搜寻路径中,找出某一命令行程序的文件位置。
2、locate 用途由文件名数据库中,找出包含有关键字的文件路径。
3、date 用途显示、设定系统的日期和时间。
常用的时间格式代码:
%d:日(01-31)
%D:日期(月/日/年)如02/17/09
%e:日(不足二位数的部分,以空白补齐)
%m:月(01-12)
%Y:年
%F 同于%Y-%m-%d
4、who 用途显示现在谁登录主机
5、whoami 用途显示自己的登录账户
6、ls 列出目录内容
7、cat 连接文件内容并显示出来
8、head 用途输出文件的前面一部分。
9、tail 用途输出文件的后面一部分。
10、wc 用途计算文件内含的总字数或行数。
11、ln链接文件
12、mkdir
13、rmdir
14、rm 备份,备份、备份
15、find 在分层目录中寻找文件。
find . -name '*.txt' -exec rm -f {} \; 由现在的目录开始往下寻找扩展名是.txt的文件,找到以后
执行(-exec)删除文件的命令。其中,-f 代表强制删除, {}代表找到的文件, ;是执行命令
(-exec)的终止符号。由于他是bash shell的特殊符号,所以要用\转义掉特殊的含义。
16、tar 将文件或目录包成一个文件(也可以反向解开),并保留目录结构和文件属性。
tar cvzf etc.tgz /etc c代表建立tar文件,v表详细显示过程,z代表呼叫gzip压缩tar文件
f指定文件名。
tar tvzf etc.tgz t表示列出打包内容
备份A到B: tar cvf - . | tar xvf - -C $B
-代表把打包结果往标准输出丢,接着通过管道,由tar xvf -解包, -C把解包内容放到¥B目录
17、basename 用途取得路径名称中最后的文件名部分。
18、dirname 取得路径名称中的目录部分。
19、sort 对文本文件的每一行做排序。
sort -n +2 dataf3 跳过前两栏,以dataf3中的第三栏做排序,且以字符串的数值大小为比较的标准。
sort -nr +2 -t: /etc/passwd -t改用:为分隔符,+2是说跳过前两栏,以/etc/passwd中的第三栏
做降序排序。
20、uniq 用途对已排序好的文件删除重复行。 uniq -d 挑出重复行 uniq -c 统计每一行重复的次数。
21、cut 用途对文件的每一行抽取某一部分。
cut -c2 dataf1 抽取文件中每一行的第2个字符。
cut -c3-10 dataf1 抽取文件中每一行的第3到第10个字符。
cut -c1-3,33- dataf1
cut -d: -f1 /etc/passwd 抽取/etc/passwd各行的第一个字段。
22、paste 用途对文件以行和行的方式合并。
paste dataf1 dataf2 默认以tab分隔
paste -d'#' dataf1 dataf2 以#分隔
23、tr 转换或删除字符。
tr k K <dataf1
tr ',' '\n' <ttt
tr -d k k字符全删除。
24、grep 显示符合样式的行
grep -A 200 -e 'MAIL FROM: .*jack@mail.tnc.edu.cn' /var/log/mail.log
-e表示后面接的时欲比较的样式。 -A 200 表示找到该样式行后,再显示接下来的200行数据。
25、tee 读取标准输入,然后由标准输出显示,并且把这些数据存在指定的文件。
tee -a 文件附件的方式
26、diff 比较两个文件之间的差异。
27、comm 以列和列的方式,比较两个已经排序好的文件。
28、xargs 用途由标准输入,安排要执行的命令和参数。
find . -name '*.txt' | xargs -n 2 diff
由现在的工作目录,寻找扩展名是.txt的文件,然后给xargs处理,
xargs -n 2 表示执行指令的参数至多有2个,也就是说把找到的.txt文件,以两个一组的方式丢给diff
去比较差异。
执行多命令的方法:
- 使用;分号分隔。 ./configure; make; make install
- 在每个命令之间用&&分隔 :./configure && make && make install
- 命令1 || 命令2 || 命令3
- 数个命令弄成一组,然后整组去执行 (命令1;命令2;命令3;。。。) ()会开启一个子shell环境执行此括号中的命令组。
- { 命令1;命令2;命令3;。。。。 }命令组在现行的shell中执行,特别注意在{的右边 和}的左边,至少要间隔一个以上空格,而且每个命令都是;分隔。