Linux命令行与shell脚本编程大全读书笔记
读书计划
12.6号开始学习,一共600页,每天20页
到2月6号结束
1. 单纯的cd ,就会进入用户主目录
2. 单点符(.),表示当前目录, 双点符(..),表示当前目录的父目录
3. ls –alF, -a可以输出隐藏文件, -l以行的方式输出, -F:目录加/
4. 问号(?)代表一个字符;星号(*)代表零个或多个字符。ls -l my_scr?pt
5. tree命令查看文件夹所有内容
6.ps -ef -e参数指定显示所有运行在系统上的进程;-f参数则扩展了输 出,这些扩展的列包含了有用的信息
7.top命令跟ps命令相似,能够显示进程信息
8. df -h , du -h *, du -h, du -h | sort -nr
9. grep -v t file1、 grep -n t file1、grep -c t file1
10. 在可移动存储普及的今天,系统管理员常谈到的另一个话题就是挂载存储设备。mount命令 可以将一个物理存储设备挂载到Linux虚拟目录结构上。umount命令用来移除设备。
11. exit命令不仅能退出子shell,还能用来登出当前的虚拟控制台终端或终端仿真器软件。只需
要在父shell中输入exit,就能够从容退出CLI了
12.可以利用type命令来了解某个命令是否是内建的
13. history, ! + 命令id
14. alias li="ls -li"
15. 永久别名:echo alias ""cat=cat -A"" >> ~/.bashrc, source ~/.bashrc
todo:利用别名快速连接跳板机
16. chmod o+r newfile、 chmod u-x newfile
要查看全局变量,可以使用env或printenv命令。
printenv HOME或者echo $HOME
set命令会显示为某个特定进程设置的所有环境变量,包括局部变量、全局变量以及用户定义变量
注意,你定义的局部环 境变量用的是小写字母,而到目前为止你所看到的系统环境变量都是大写字母
在涉及环境变量名时,什么时候该使用$,什么时候不该使用$,实在让人摸不着头脑。
记住一点就行了:如果要用到变量,使用$;如果要操作变量,不使用$。这条规则的一 个例外就是使用printenv显示某个变量的值
1. vim 命令
ctrl + F 下一页
ctrl + B 上一页
G:最后
gg:第一行
num G 定位到第几行
:%s/old/new/g:替换整个文件中的所有old。
:%s/old/new/gc:替换整个文件中的所有old,但在每次出现时提示。
2.
$USER、$UID和$HOME环境变量用来显示已登录用户的有关信息
你可能还见过通过${variable}形式引用的变量。变量名两侧额外的花括号通常用来帮 助识别美元符后的变量名。
使用等号将值赋给用户变量。在变量、等号和值之间不能出现空格
命令替换的两种方式
反引号字符(`)testing='date'
$()格式testing=$(date)
3.
date +%y%m%d 输出140131,输出年月日
重定向输入和输出
最基本的重定向将命令的输出发送到一个文件中。bash shell用大于号(>)来完成这项功能:
$ date > test6
$ ls -l test6
-rw-r--r-- 1 user user 29 Feb 10 17:56 test6
$ cat test6
Thu Feb 10 17:56:58 EDT 2014
重定向操作符创建了一个文件test6(通过默认的umask设置),并将date命令的输出重定向 到该文件中。
如果输出文件已经存在了,重定向操作符会用新的文件数据覆盖已有文件。
有时,你可能并不想覆盖文件原有内容,而是想要将命令的输出追加到已有文件中,
比如你正在创建一个记录系统上某个操作的日志文件。在这种情况下,可以用双大于号(>>)来追加数据
rpm -qa | sort > rpm.list
rpm -qa | less: ctrl +F 向后翻页,ctrl +B 向前翻页
ls -l命令产生了目录中所有文件的长列表
4.
执行数学运算的方法
expr命令
var1=10
var2=20
var3=$(expr $var2 / $var1)
echo The result is $var3
使用方括号
var1=$[1 + 5]
echo $var1
var2=$[$var1 * 2]
echo $var2
bash shell数学运算符只支持整数运算。若要进行任何实际的数学计算,这是一个巨大的限制。
bash计算器实际上是一种编程语言,它允许在命令行中输入浮点表达式,然后解释并计算该 表达式,最后返回结果
要退出bash计算器,你必须输入quit
3.44 / 5
0
scale=4
3.44 / 5
.6880
quit
scale变量的默认值是0。在scale值被设置前,bash计算器的计算结果不包含小数位。在将
其值设置成4后,bash计算器显示的结果包含四位小数。-q命令行选项可以不显示bash计算器冗 长的欢迎信息
除了普通数字,bash计算器还能支持变量。
$ bc -q
var1=10
var1 * 4
40
var2 = var1 / 5
print var2
2
quit
在脚本中使用bc
#!/bin/bash
var1=$(echo "scale=4; 3.44 / 5" | bc)
echo The answer is $var1
基本格式如下:variable=$(echo "options; expression" | bc)
$ cat test12
#!/bin/bash
var1=10.46
var2=43.67
var3=33.2
var4=71
var5=$(bc << EOF
scale = 4
a1 = ( $var1 * $var2)
b1 = ($var3 * $var4)
a1 + b1
EOF
)
echo The final answer for this mess is $var5
$
shell中运行的每个命令都使用退出状态码(exit status)告诉shell它已经运行完毕。
退出状态 码是一个0~255的整数值,在命令结束运行时由命令传给shell。可以捕获这个值并在脚本中使用
Linux提供了一个专门的变量$?来保存上个已执行命令的退出状态码
按照惯例,一个成功结束的命令的退出状态码是0。如果一个命令结束时有错误,退出状态
码就是一个正数值
无效命令会返回一个退出状态码127
Linux可分为以下四部分:
Linux内核
GNU工具
图形化桌面环境
应用软件
看到 93 页了