Linux杂记1

Linux系统
515
0
0
2022-04-11

通配符 * ? [] [^]

命令行光标 home end ctrl+u ctrl+k ctrl+箭头 ctrl+l

echo $HISTFILE, $HISTFILESIZE, $HISTSIZE 
!100  !-5  !!  !$ (esc + .)  !string
$(cmd)   `cmd`
mkdir -pv ./test/{x/m,y}  ./test2/{a,d}_{b,c}

cp复制的文件,属主,属组是当前执行cp的用户本身

复制链接时,默认是复制链接指向的那个文件本身

cp -a /etc /backup/etc-`date +%F`  归档复制

/etc/default/useradd
/etc/skel
/etc/shells
$SHELL
PATH=$PATH:/bin/go
export PATH

suid 特殊权限位,进程的属主为该执行文件本身的属主,如果本身的owner有x,则为小写s,否则大写S

umask 创建文件默认的权限=最大权限-umask

注意:文件一般不给执行权限

umask

umask 027

grep 'umask' /etc/profile /etc/bashrc

bash配置文件

/etc/profile.d/*.sh  /etc/profile  ~/.bash_profile  ~/.bashrc /etc/bashrc

立即生效修改后的配置文件 . file , source file

type set 
set 查看所有变量
set -C  禁止覆盖重定向  (可以使用强制覆盖 >|)
set +C  解除
stdin 0 
stdout 1
stderr 2 

重定向 改变标准输入,输出的设备源

    >  >>  >|
    2>  2>> 
    &>  &>>
    < 
    ls /var > out1 2> out2
    ls /var > out 2> out 
    ls /var &> out
cat < /etc/fstab  接受文件并打印,一般就默认带有stdin重定向
tr a-z A-Z < /etc/passwd

here doc
    cat << END
    ...
    END

    cat >> file << EOF
    ...
    EOF

tee  读取stdin,写到stdout,和文件各一份
    tee file < /etc/file2
    echo xxx | tee file

管道: 前一个命令的标准输出stdout,当前后一个命令的标准输入stdin

    cut -d: -f1 /etc/passwd | sort | tr 'a-z' 'A-Z'
egrep
   egrep -ivo --color pattern file...
   egrep -A|B|C # ...   
   .  单个任意字符
   *  其前面的字符任意次   .*
   ?  其前面的字符0次或1次
   []  [^]
   +  {1,}
   {m,n}
   ^  $  ^$
   \<   \>   \b
   ()   \1  \2 
   a|b   C|cat   (C|c)at