美文网首页
bash学习

bash学习

作者: CaptainWhite | 来源:发表于2017-12-19 17:22 被阅读0次

1.type [-tpa] name。通常直接不加参数使用.例如:

root@bh-ThinkPad-T560:~# type ls

ls 是 `ls --color=auto' 的别名

2.变量的显示与设置echo,unset

变量显示:echo格式echo $PATH或者echo${PATH}

变量的设置:name=bh

变量的取消:unset变量名称

3.env查看环境变量与常见环境变量说明

随机数RANDOM(随机产生0-32768):root@bh-ThinkPad-T560:~# declare -i number=$RANDOM*10/32768 ;echo $number

set查看环境变量与自定义变量

echo $?显示回传吗0代表正确,非0代表错误 ;export 变量名称   自定义变量转换为环境变量

4.键盘读取、数组、声明

read [- p t]变量;p后面接提示符、t后面接等待的秒数

root@bh-ThinkPad-T560:~# read -p "Please input your name:" -t 30 name

Please input your name:bh

root@bh-ThinkPad-T560:~# echo $name

bh

declare [-aixr]变量 -a定义数组 ;-i定义整数数字;-x把后面变量变成环境变量;-r设置成readonly类型

declare -i sum=100+50+20;declare -x sum变成环境变量;declare +x sum取消环境变量

数组定义:array=(10 20 30) 或者 array[0]=10  array[1]=20  array[2]=30

显示数组:echo${array[i]} ;显示数组所有元素echo${array[@]}或者echo ${array[*]};显示数组长度echo${#array[@]}或者

echo ${#array[*]};删除数组第二个元素 unset array[1] (unset仅仅只清除array[1]的值,并没有将array[1]删除掉)删除数组

unset array ;输出数组的第1-3项echo ${array[@]:0:3} 参考“${数组名[@或*]:起始位置:长度}” 将数组中的0替换成1:echo ${a[@]/0/1}

${数组名[@或*]/查找字符/替换字符

5.变量内容的删除、替代与替换

删除替代 替换

6.别名设置alias rm='rm -i'取消别名unalias rm

7.bash的登录与欢迎信息/etc/issue,/etc/motd。当使用telnet连接到主机,主机的登录页面会显示/etc/issue.net而不是/etc/issue;登陆后用户可以看到的一些信息,可以设置到/etc/motd里

8.组合按键Ctrl+C终止目前命令;Ctrl+D输入结束(EOF);Ctrl+M就是enter;Ctrl+S暂停屏幕输出;Ctrl+Q恢复屏幕的输出;Ctrl+U在提示符下将整行命令删除;Ctrl+Z暂停目前命令

9.数据流重定向

标准输入:代码0 使用<或<<;标准输出:代码1:>或>>;标准错误输出:代码2使用2>或2>>  这里面所有的>都是覆盖模式>>都是累加模式,输入模式中<代表输入流, <<代表结束输入,例如cat>file <<"eof" 当输入eof时候结束输入。

输出例子:ls -l /etc > ~/etcbck;使用输入留代替键盘的输入:cat > catfile <file 这里file作为键盘的输入给catfile

10.与或符

cmd1&&cmd2   若cmd1执行完毕且正确,则cmd2执行;若cmd1执行完毕且错误cmd2不执行

cmd1||cmd2   若cmd1执行完毕且正确执行,则cmd2不执行cmd1执行完毕且错误,则cmd2执行

通常一个判断式为 cmd1 && cmd2 ||cmd3 才可能让正常从左到右执行

11.管道命令

选取命令cut、grep

cut -d '分隔字符' -f fields 例如:echo $PATH|cut -d ':'-f 5这是用:作为分隔符,选取第五个 若想选取范围 则cut -d ':' -f 3,5

cut -c 字符范围 用于选取一个范围内的数据 例如export |cut -c 12-  这个例子选取了export的输出流,找出了字符12个以后的列显示在屏幕上

grep [-acinv] [--color=auto]  '查找字符串' filename  -a:将binary文件以text文件的方式查找数据

-c计算找到'查找字符串'的次数;-i忽略大小写的不同;-n输出行号;-v反向选择,即显示出没有'查找字符串'内容的那一行 例子:last |grep 'root'有root就取出来

排序命令:sort、wc、uniq

sort [-fbMnrtuk] [file or stdin]-f忽略大小写 ;-b忽略最前面空格部分 -M以月份来排序;-n使用纯数字进行排序;-r反向排序;-u就是uniq,相同的数据中,仅出现一行代表;-t分隔符,默认用【Tab】键分隔;-k以那个区间(field)来进行排序

cat /etc/passwd |sort 默认是以“第一个”数据来排序;

uniq[-ic] -i忽略大小写-c进行计数 用于将重复的数据仅列出一个显示

wc[-lwm] -l仅列出行;-w仅列出多少字(英文单字) -m多少字符

双向重定向:tee

tee [-a] file -a以累加的方式把数据加入file中 例如 ls -l /home |tee ~/file 

字符转换命tr、col、join、paste、expand

tr删除一段信息当中的文字或者进行文字信息的替换

tr [-ds] SET1  -d删除信息当中的SET1这个字符串;-s替换到重复的字符

例子:last输出小写转大写 last | tr  '[a-z]'  '[A-Z]'

col [-xb]-x把tab键转换成对等的空格键;-b在文字内有反斜杠(\)时,仅保留反斜杠最后接的那个字符

join 把两个文件当中有相同数据的那一行加在一起  join [-t i 1 2] file1  file2

-t默认以空格符分隔数据,并且对比“第一个字段”的数据,如果两个文件相同,则将两条数据连城一行,且第一个字段放在第一个;-i忽略大小写差异;-1代表第一个文件要用哪个字段来分析;-2代表第二个文件要用哪个字段来分析

paste [-d] file1 file2 -d后面接分隔字符,默认以[tab]键分隔  -如果file部分写成-,表示来自standard input的数据   paste直接把两行粘贴在一起

expand把tab键转换成空格键  expand[-t] file -t后面可以接数字,一个tab可以用8个空格替换

切割命令split

split[-b l ] file PREFIX

-b后面可接欲切割成的文件大小,可加单位 例如b,k.m;-l以行数来进行分割;PREFIX代表前导符   例如:split -b 300k /etc/termcap termcap  

将分割出来的小文件合成一个文件:cat  termcap* >> termcapback

关于-的使用 (stdin与stdout都可以利用-来替代)

tar -cvf - /home | tar -xvf -  这个例子把/home里面的文件打包,打包的数据传送到stdout,通过管道,传送给后面,而后面的-是取用前一个命令的stdout。

相关文章

  • bash 学习

    ctrl + L 清空页面CTRL +C 打断当面页面操作date 调出当前时间cal 日历pwd 当前目录的绝对...

  • bash学习

    1.type [-tpa] name。通常直接不加参数使用.例如: root@bh-ThinkPad-T560:~...

  • 一文精通Linux 命令行

    基础 1. 学习基础的bash用法,具体地说,阅读bash的man手册(man bash 并通读一遍);很简...

  • 20170805bash学习

    bash学习 参考 Linux bash总结(一) 基础部分(适合初学者学习和非初学者参考)Linux 入门公开课...

  • bash学习笔记

    快捷键操作 Ctrl + a:移到行首 Ctrl + b:向行首移动一个字符,与左箭头作用相同 Ctrl + e:...

  • bash shell学习

    Shell 传递参数 参考链接:https://www.runoob.com/linux/linux-shell-...

  • 第11章 认识与学习 bash

    第11章 认识与学习 bash 标签: 鸟哥的linux私房菜 [toc] 11.1认识bash这个shell 什...

  • Linux入门10-bash基础特性

    Linux Bash初体验,学习命令别名,继续学习linux基本命令。

  • Shell学习

    学习地址: https://learnku.com/articles/5932/bash-command-and-...

  • Linux学习日记——BASH

    一、认识BASH BASH是目前Linux系统应用最多的shell,也是大多数Linux系统默认的shell. s...

网友评论

      本文标题:bash学习

      本文链接:https://www.haomeiwen.com/subject/gazvwxtx.html