学习shell 与shell脚本 学习笔记

  1. 云栖社区>
  2. 博客>
  3. 正文

学习shell 与shell脚本 学习笔记

科技小先锋 2017-11-07 15:26:00 浏览639
展开阅读全文

一般模式:

编辑模式:

命令行命令模式: 一般模式下输入:/ ?都会进入命令行模式

我们写vi命令中最常用的方法:

一般模式:

0 移动到这一行的最前面字符处

$移动到这一行的最后面字符处G 移动到这个文件的最后一行

gg移动到这个文件的第一行

n n为数字 光标向下移动n行

/word 从光标位置开始向下搜索一个名为word的字符串

:n1. n2s/word1/word2/g n1 n2 为数字,在n1与n2行之间寻找word1,然后替换成word2

1.$s/word1/word2/g 从头到尾搜索并替换

1.$s/word1/word2/gc 替换的时候需要确认

x X :x是向后删除一个字符,X是向前删除一个字符

dd 删除光标所在的那一行

ndd :n为数字 从光标位置开始,删除向下n列

yy:复制光标所在的那一行

p,P:p是贴在光标的下一行,P是贴在光标的上一行。

u 复原上一个操作

[ctrl]+r 重做上一个操作

. 这个是小数点,意思是重复前一个操作,如果想重复删除,重复粘贴,按下小数点就可以

一般模式:

:set nu 显示行号

变量设置的规定:

1. 变量与变量内容以=来连接

2. 等号两边不能直接接空格符

3. 变量名称只能是英文字母或者数字,但数字不能是开头字符

4. 若有空格,可以使用双引号或者单引号将变量内容结合起来,注意:苏昂引号的特殊字符可以保持变量特性,单引号内的特殊字符仅为一般字符

5. 必要时需要以转义字符\将特殊字符变成一般符号

6. 命令中套命令,用反引号

7. 若变量需要扩展变量内容可以这样:$PATH:/home/staid这样的形式扩展

8. 若改变两需要在其他子程序中执行,则需要用export使变量变成环境变量,如export PATH

9. 通常大写字符为系统默认变量,自行设置的变量可以使用小写字母

10. 取消变量的方法为:unset 变量名称

env列出当前shell环境下的所有变量及其内容

随机数:RANDOM, 这个变量的内容介于0~32767之间

declare –i 申明一个整型的数

[root@staid ~]# declare -i number=$RANDOM*10/32767;echo $number

除了env里面的变量,还有可以用set列出来的变量。set的变量是当前shell下有效

$? 上一个命令执行的状态返回值,成功就是0,不成功就是不同的数,反正不会是0

自定义变量转变为环境变量:export

declare

r 将变量配置为只读。 
x 指定的变量会成为环境变量,可供shell以外的程式来使用。 
i 将后面的变量定义为整数数字。

语系设置:locale

变量键盘读取,数组 与声明:read array declare

read 读取来自键盘输入或者文件的变量

read

-p:后面可以接提示符

-t:后面可以接当代的秒数

[root@staid ~]# read -p "keyin your name:" -t 30 named;echo $named

与文件系统及程序的限制关系:ulimit

ulimit

-H 必定不能超过设定的值

-S:可以超过,发警告信息

[root@staid ~]# vbird="/home/staid/testing/test.x.sh"

[root@staid ~]# echo ${vbird}

/home/staid/testing/test.x.sh

[root@staid ~]# echo ${vbird##/*/}

test.x.sh

[root@staid ~]# echo ${vbird#/*/}

staid/testing/test.x.sh

[root@staid ~]# echo ${vbird%%/*}

[root@staid ~]# echo ${vbird%%/*/}

/home/staid/testing/test.x.sh

[root@staid ~]#

有个图在这儿插入

history命令

history 5

history –c

环境设置文件:bashrc ~/.bashrc ~/.profile profile…., /etc/inputrc source

/etc/sysconfig/i18n 设置语系

/etc/profile 设置变量

个人设置值(~/.bash_profile ~/.bash_login ~/.profile)

~/.bashrc

~/.bash_history

source /etc/profile 来让新加入的变量生效

ls -lda /etc/*[35]*

ls –lad /etc/[!a-z]*

cut命令

[root@staid ~]# echo $PATH|cut -d ":" -f 5

/sbin

[root@staid ~]# echo $PATH|cut -d ':' -f 5

/sbin

[root@staid ~]#

-d分隔符 –f 第几段

last看看这个月的登录者的信息

grep

-c 统计搜索字符串的次数

-i忽略大小写

-n顺序输出行号

-v反向选择

sort

-f 忽略大小写

-n使用纯数字排序

-r反向排序

-u 就是相同的数据中,仅出现一行

-k 按照那个字段来进行排序

uniq

-i忽略大小写

-c 统计计数

wc

-l 仅显示多少行

-w 仅显示多少字

-m多少字符

tee [–a](累加) file 既显示到屏幕上又打印到file文件里

tr 可以用来删除一段消息中的文字,或者是进行文字消息的替换 、

tr –d SET1

-d 删除消息中的SET1字符串

tr –s

替换重复的字符

[root@staid ~]# last |tr '[a-z]' '[A-Z]' 小写字母全部大写

将DOS文件的换行符^M符号删除:

[root@staid ~]# cat /home/test/dostxt|tr -d '\r'

\r指的是DOS换行符。

tar –cvf - /home |gra –xvf –

将home的文件爱你打包但是打包的数据不记录到文件,而是传送到stdout。



本文转自guoli0813 51CTO博客,原文链接:http://blog.51cto.com/guoli0813/350989,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论