您的位置:首页 > 运维架构 > Shell

Linux之认识和学习bash

2015-07-19 21:58 441 查看
1.学习shell的主要原因:1.文字接口的shell在各大distribution都一样,2.远程管理时文字接口速度较快3.linux内很多控制都是shell写的

2.系统合法的shell都写在/etc/shells中

3.用户默认登入取得的shell记录于/etc/passwd的最后一个字段

4.bash的主要功能:1.命令的编修能力2.命令与档案的补全功能3.命名别名的设定4.工作控制,前景背景控制5.程序化脚本6.通配符

5.type可以用来找到执行命令为何种类型,也用于与which相同的功能

type [tpa] name

type 不加任何参数时会显示出name是内部命令还是外部命令

-t:将name以file(表示外部命令),alias(该命令为命令别名所设置的名称),builtin(bash内置的命令功能)显示意义

-p:name为外部命令时才会显示完整文件名

-a:由PATH变量定义的路径中将所有含name的命令都列出来,包含alias

6.echo:变量的显示

unset:取消变量的方法

locate:列出所有的相关文件名

7.用env查看环境变量与常见环境变量的说明 env

用set查看所有变量(含环境变量与自定义变量)set

用export将自定义变量转成环境变量 export 变量名

8.$?也是变量,是前一个指令执行完之后的回传值,0表示成功

9.locale:影响显示结果的语系变量

10.read:让用户由键盘输入变量的值

read [-pt] variable

-p:可以接提示符

-t:接等待的秒数,不会一直等待用户

11.declare:声明变量的类型

declare [-aixr] variable

-a:定义为数组类型

-i:定义为整数类型

-x:与export一样,将变量变为环境变量

-r:将变量设为只读类型,不可更改不可重置

12.ulimit:限制用户使用资源的情况

ulimit [SHacdfltu] [配额]

-H:严格限制

-S:警告的设置

-a:列出所有的限制额度

-f:可以创建的最大文件容量

13.bash的配置文件主要分为login shell和 non-login shell

login shell 主要读取/etc/profile与~/.bash_profile

non-login shell 仅读取~/.bashrc

14.通配符:*,?,[]

*:代表0到无穷多个任意字符

?:代表一定有一个任意字符

[]:一定有一个在中括号内的字符

15.数据流重导向:

标准输入:代码为0,使用<或<<

标准输出:代码为1,使用>或>>

标准错误输出:代码为2,使用2>或2>>

16.连续命令的下达

cmd1;cmd2:不考虑命令相关性的连续命令执行

cmd1&&cmd2:若cmd1执行完且正确,则开始执行cmd2

若cmd1执行完却错误,则不执行cmd2

cmd1||cmd2:若cmd1执行完且正确执行,则不执行cmd2

若cmd1执行完且为错误,则开始执行cmd2

17.管道命令:|

管道命令仅会处理standard output,对于standard error output会予以忽略

管道命令必须要能够接受来自前一个指令的数据成为standard input继续处理才行

18.管道主要命令:

(1)cut:将一段信息的某一段切割出来

cut -d ‘分隔符’ -f fields

cut -c 字符范围

(2)grep:分析一行信息,将想要的信息拿出来

grep [-acinv] [–color=auto] ‘查找字符串’ filename

-a:将binary文件以text文件的方式查找数据

-c:计算找到字符串的次数

-i:忽略大小写的不同

-n:顺便输出行号

-v:反向选择

(3)排序命令sort:

sort [-fbMnrtuk] [file or stdin]

-f :忽略大小写地 差异

-b:忽略最前面空格符的部分

-M:以月份的名字来排名

-n:以纯数字进行排名

-r:反向排名

-u:相同数据中仅出现一行代表

-t:分隔符,默认用【tab】

-k:以那个区间进行排序

(4)uniq:排序完成后将重复的数据仅列出一个显示

uniq -i:忽略大小写字符的不同

uniq -c:进行计数

(5)wc:计算输出的信息的整体数据

wc -l:仅列出行

wc -w:仅列出多少字

wc -m:多少字符

tee:双向重定向,将数据流送与文件与屏幕

tee [-a] file:以累加的方式将数据加入到file当中

(6)tr:用来删除一段信息中的文字,或者进行文字信息的替换

tr [-ds] SET1…

-d:删除信息当中SET1这个字符串

-s:替换掉重复的字符

(7)col [-xb]

-x:将【tab】键转换成对等的空格键

-b:在文字内有反斜杠(/)时,仅保留反斜杠最后接的那个字符

(8)join 将两个文件当中有相同数据的那一行加在一起

join [-ti12] file1 file2

-t:默认以空格分割数据并且对比第一个字段的数据

-i:忽略大小写

-1:代表第一个文件要用哪个字段来分析

-2:代表第二个文件要用哪个字段来分析

(9)paste:直接将两行贴在一起,且用【tab】键隔开

paste [-d] file1 file2

-d:后接分隔符,默认以tab分隔

-:若file部分写成-,表示来自standard input的数据的意思

(10)expand:将tab按键转成空格键

expand [-t] file

-t:后接数字,一般来说一个tab键可以用8个空格键来替换

(11)split:将一个大文件依据文件大小或行数切割成小文件

split [-bl] file PREFIX

-b:后接欲切割的文件大小可加b,k,m单位

-l:以行数来进行切割

PREFIX:代表前导符,代表切割文件的前导文字

(12)xargs:可以读入stdin的数据,并以空格符或断行字符进行分辨,将stdin数据分割成arguments

xargs [-0epn] command

-0:若输入的stdin含有特殊字符可以将其还原成一般字符

-e:EOF,xargs分析到这个字符串时将会停止工作

-p:执行每个命令的参数时会询问用户的意思

-n:后接次数,每次command执行时,要使用几个参数的意思
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: