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

学习shell 与shell脚本 学习笔记

2010-07-16 19:06 323 查看
一般模式:
编辑模式:
命令行命令模式: 一般模式下输入:/ ?都会进入命令行模式
我们写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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息