1.||、&& 和&、|的区别
||和&&的执行是从左到右,而&和|的执行是两边到中间的(未实际测试,只能确认它不是按顺序执行的)
||和&&的执行时,只要结果确定就停止,而&和|的执行是计算所有值后才停止
||一般用来判断条件满足则执行。例如 [[ $UID == 0 ]] || mkdir /test ---只有root用户才执行mkdir /test
2.设置用户新文件或文件夹的默认权限
umask
umask其实是一个掩码。
也有umask这样一个命令,它是对用户建立的文件的默认属性的定义。
该定义为:
假设umask为022.
则对于一个文件夹的话,它的默认属性为 777-022=755,这也就是我们平时建立文件夹的权限。
而对于一般的文件的话,则是用 666-022=644.
例如,在.bashrc 或者 .bash_profile中设置 umask 066
这样用户登录后建立新文件夹的权限是 rwx--x--x-,新文件的权限为 rwx------
3.设置用户新文件或文件夹的默认组
vi /etc/passwd 或者 vi passwd
修改用户的组ID为默认的组,
如:
修改linfengfeiye:x:1009:1001::/home/user/liukejian:/bin/bash
将 1001改为100,则默认组从1001对应的组变为100对应的组
4.1>&2,2>&1,1>dev/null,2>/dev/null的意义
在Linux中,shell命令一共有3个标准输入输出,stdin,stdout,stderr,其中stdin默认为键盘,其他的默认为显示器。
其中 stdin对应为0,stdout对应为1,stderr对应为2
1>/dev/null表示输出关闭,2>/dev/null表示输入关闭
1>&2,表示将输出合并到错误输出,2>&1表示将错误输出合并到标准输出
5.Linux计算表达式的方法
方法一 :A=$[ 1 + 2 ]
方法二 :A=$((1+2))
方法三 :A = 'expr 1 + 2' 注意:A='expr 3 /* 4'
方法四 :let A=1+2
6.修改Linux shell提示符
在.bashrc中导出PS1
例如:export PS1='/u@/h:/w /$ ' 显示为 linfengfeiye@node2:~ $
其中以/开始的字符的意义如下:
/d :代表日期,格式为weekday month date,例如:"Mon Aug 1"
/H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
/h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
/t :显示时间为24小时格式,如:HH:MM:SS
/T :显示时间为12小时格式
/A :显示时间为24小时格式:HH:MM
/u :当前用户的账号名称
/v :BASH的版本信息
/w :完整的工作目录名称。家目录会以 ~代替
/W :利用basename取得工作目录名称,所以只会列出最后一个目录
/# :下达的第几个命令
/$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$
7.bash中 $#,$0,$1....$@ 的意义
#!/bin/sh
echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
$#:表示参数个数
$0:表示命令本身
$1:表示命令的第一个参数