BASH学习笔记
以前没有系统学习过Shell,虽然写Shell脚本有两年了。整理一下学习笔记~
1./etc/shells可以看到所有可以用来登陆的Shell。
2.#echo$SHELL看到当前Shell
3.程序在Shell中运行,Shel中可以运行子Shell。exit退出子shell
4.#help可以获得一些常用命令
5.ls-lh看文件占用空间最方便。
6.setuid这个位的作用是拥有这个位的文件在执行时可以以这个文件的拥有者的权限执行一些命令的。若g位有s,则可以以这个文件的组的权限执行一些命令。这个位的设置是在某些管理需求时会用的。suid的加入是用4XXX,guid的加入使用6XXX。
ls-lh/bin|grep'^...s'就可以看到有这个位的常用命令了。
7.t这个位若定义了,那么这个文件在执行时会放入swap内运行,而不会调入内存。加入t为则用7XXX。
8.chown.groupnamefile可以直接改变文件所属组。
9.创建文件的缺省权限是通过umask设置得来的,文件缺省权限是666-umask,目录缺省权限是777-umask。其实是在/etc/profile下修改的。某个特定用户来讲是在其用户目录下的profile文件中进行设置。
10.符号链接:
硬软连接的在应用时软连接比较像Mswindows的快捷方式,常用软连接。
11.Shell的第一行:
#!/bin/bash
第二行一般为shell功能注释
12.定义变量不需要声明,在使用其值时前加$,字符串要用双引号括起来。
13.shell的特性:
别名、管道、命令替换、重定向、后台处理、模式匹配、变量、特殊字符。
14.别名:
aliasll='ls-alh'
其实这些都是保存在$HOME/.bashrc中。
15.命令替换:
ls`catmyfile`-al其中的反引号里的执行结果传递给ls
16后台运行:使用&
find.-namesth&
17管道:
ls|grepsth输出作为另一个的输入
18重定向:
<的尖头表明了数据的流向sort<myfile1>myfile2
19模式匹配:
主要是正则表达式。
20.特殊字符:
双引号:shell无法认出的空格、制表符、其他大多数特殊字符
单引号:shell无法认出的所有特殊字符
反引号:用来替换命令。
反斜杠:转义字符。注意文件名中的空格也需要转义。
分号:允许一行使用多个命令
小括号:创建成组的命令。
大括号:创建命令块。