linux shell 笔记

vi的使用

h左,l右,j下,k上

dd删除行,dG从当前删除到最后

:2定位到第二行,:G定位到文档最后

:/good搜索good,:%s/good/bad/g把good全部换成bad

:!执行shell命令,:r!把shell命令执行结果读入文档

:set nu设置行号,:set nonu取消行号,:1,10s/^/#/g在1到10行前加上#注释,:1,10s/#/^/g,:1,10>>把1到10行向右移两个TAB,<<向左移,:1,10d把1到10行删除

r替换单个字符,R替换多个字符,u撤销上次操作,ctrl+y恢复上次操作。

:w  a.txt另存为a.txt

bash shell

Tab自动补全、历史命令、命令别名、标准输入输出、重定向操作和管道功能。

history,history -c,!加字母。

alias,unalias查看别名,设置别名,取消别名。

1>,2>分别是正确输出和错误输出。

查看变量:echo $变量, Env用于查看全局变量,set所有变量

双引号,单引号注意一下:

  1. [root@xiaoqi bin]# echo "111 $a 000" 
  2. 111 1000 000 
  3. [root@xiaoqi bin]# echo '111 $a 000' 
  4. 111 $a 000 

键盘键入变量

  1. [root@xiaoqi date]# read -p "please keyin your name:" -t 30 named 
  2. please keyin your name:xiaoqi 
  3. [root@xiaoqi date]# echo $named 
  4. xiaoqi 

环境变量配置文件/etc/profile我们可以通过path增加环境变量路径,将该路径下变量变为全局变量

  1. [root@xiaoqi etc]# PATH=$PATH:/root 
  2. [root@xiaoqi etc]# echo $PATH 
  3. /usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/root 

 1、一个键盘交互的脚本

  1. #!/bin/bash 
  2. #test1.sh 
  3.  
  4. read -p "please input your name:" name 
  5. read -p "please input your name:" age 
  6. echo -e "\n your name and age:$name $age" 
  1. [root@xiaoqi date]# chmod 755 test1.sh 
  2. [root@xiaoqi date]# ./test1.sh 
  3. please input your name:xiaoqi 
  4. please input your name:25 
  5.  
  6.  your name and age:xiaoqi 25 

2、数值运算,()

  1. read -p "first number:" first 
  2. read -p "second number:" second 
  3. total=$(($first*second)) 
  4. echo -e "\n the result of $first X $second is ==> $total" 
  1. [root@xiaoqi date]# chmod 755 test2.sh 
  2. [root@xiaoqi date]# ./test2.sh 
  3. first number:8 
  4. second number:9 
  5.  
  6.  the result of 8 X 9 is ==> 72 

3、每隔三天对数据库做一次备份,并记录磁盘信息

  1. #!/bin/bash 
  2. DAY='date+%Y%m%d' 
  3. SIZE='du -sh /var/lib/mysql' 
  4. echo "Date: $DAY">> /tmp/dbinfo.txt 
  5. echo "Date Size: $SIZE">> /tmp/dbinfo.txt 
  6. cd /opt/dbbak 
  7. tar zxvf mysqlbak-${DAY}.tar.gz /var/lib/mysql /tem/dbinfo.txt 
  8. rm -f /tmp/dbinfo.txt 

没环境,没运行结果

经典命令

dd

  1. [root@xiaoqi date]# dd if=test1.sh of=test2.sh bs=1M count=1 
  2. 记录了0+1 的读入 
  3. 记录了0+1 的写出 
  4. 142字节(142 B)已复制,0.0002068 秒,687 kB/秒 
  5. [root@xiaoqi date]# vi test1.sh  
  6.  
  7. [7]+  Stopped                 vi test1.sh 
  8. [root@xiaoqi date]# vi test2.sh  
  9.  
  10. [8]+  Stopped                 vi test2.sh 
  11. [root@xiaoqi date]#  

用刚才的test1.sh和test2.sh,运行后2的文件跟1一样了。

把test2.sh里的东西都删掉,运行下面命令

  1. [root@xiaoqi date]# dd if=test1.sh of=test2.sh bs=1M conv=ucase 

然后test2.sh里的内容是test1.sh里的大写的内容。

备份

  1. dd if=test1.sh of=test1.sh.bak1 bs=1k 

恢复

  1. [root@xiaoqi date]# dd if=test1.sh.bak1 of=test1.sh 

wc

统计行数

  1. [root@xiaoqi date]# wc -l test1.sh 
  2. 1 test1.sh 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章