id username
:可以判断系统上面是否有此账号;
SUID:用户在此目录下的有效用户组(effective group)将会变成该目录的用户组。Ok,懂了!
dumpe2fs命令
dumpe2fs -h /dev/...
显示当前的磁盘状态
su -:加上"-"代表使用login-shell的变量文件读取方式来登录系统。
chage
修改与密码相关的数据 P415页
繁体中文转简体中文
繁体中文的utf8转成简体中文的utf8编码 iconv -f utf8 -t big5 filename(文件名) | iconv
-f big5 -t gb2312 | iconv -f gb2312 -t utf8 -o
dstfilename(目标文件名)
繁体中文的big5转成简体中文的utf8编码 iconv -f
big5 -t gb2312
**
在一个变量前面加上$用来引用这个变量的值
重定向:
- 标准输入(stdin)
:代码为0,使用<或<<; - 标准输出(stdout)
:代码为1,使用>或>>; - 标准错误输出(stderr):代码为2,使用2>或2>>.
command
&>filename
command >&2
scriptname
>>filename
[i]<>filename
将正确与错误数据输出到一个文件:
例:find /home -name .bashrc > list
2>&1
或:fine /home -name .bashrc &>
list
\<,\> 单词边界
使用grep+\<,\>可以严格的筛选单词
echo -n 不输出换行符
cd - 将会回到先前的工作目录。它使用了$OLDPWD环境变量。
~ home目录[波浪号,即~].相当于$HOME内部变量.~bozo是用户bozo的home目录,并且ls
~bozo将列出其中的内容.~/就是当前用户的home目录,并且ls ~/将列出其中的内容.
被一对双引号( " " )括起来的变量替换是不会被阻止的. 所以双引号被称为 部分引用, 有时候又被称为"弱引用". 但是如果使用单引号的话(' ' ), 那么变量替换就会被禁止了, 变量名只会被解释成字面的意思, 不会发生变量替换. 所以单引号被称为全引用, 有时候也被称为"强引用".
使用let赋值
let a=16+5 # a=21
a=16+5
a=`ls
-l`
echo
$a
echo
"$a"
即:引用可以改掉echo不换行的“毛病”.
. "点"字符匹配. 当用作匹配字符的作用时, 通常都是作为正则表达式的一部分来使用, "点"用来匹配任何的单个字符.
去掉路径名,剩下文件名:`basename $0`
位置参数
$*
代表"$1c$2c$3c$4",其中c为分割字符,默认为空格键,所以代表"$1 $2 $3
$4",表示传入的所有的位置参数;
$# 代表后接的参数个数,表示传入的位置参数的个数;
$@ 代表"$1"、"$2"、"$3"、"$4"之意,每个变量是独立的(用双引号括起来);
{}
args=$# #位置参数的个数
lastagr=${!args} 或 lastarg=${!#}(注:在Fedora 14下不行)
echo "The last argument is $lastarg!"
shift命令会重新分配位置参数,其实就是把所有的位置参数都向左移动一个位置.
$1 <--- $2, $2 <--- $3, $3
<--- $4, 等等.