Linux容易忘记或忽略的基础细节(二)

时间:2022-01-23 16:43:40

密码管理 :

       passwd : 修改自己的密码;

       passwd USERNAME : 修改指定用户的密码

       passwd

               -l : 锁定用户账户

               -u : 解锁用户

               --stdin : Standard Input 标准输入,避免用户交互方便写脚本 。

例 :echo pass123| passwd --stdin USERNAME  :意思是直接把USERNAME的密码修改为pass123

       密码安全策略:

               足够复杂:

                       1、密码长度至少5位;

                       2、包含大写字母、小写字母、数字和特殊字符至少三类;

                       3、定期更换 ;不要重复使用此前用过的密码;


改变文件权限 (mode):

       chmod : change mode

               chmod [选项] 权限  文件

                       权限定义方式:

                           同时修改三类用户的权限 r读权限 w写权限 x执行权限 :

                               1、8进制数字方式:

                               r=4 w=2 x=1 -=0  rwxr-xr-x=755 r--r--r--=444 rw-r--r--=644

                               例:chmod test.sh 755

                               2、修改某一类或某些类用户的权限 : u,g,o,a  u:属主 g:属组 o:其它 a:全部

                                       u=rw

                                       u=rw,g=r

                                       ug=rw

例:chmod ug=rwx test.sh

                               3、只操作某类用户的某位或某些位权限 :u,g,o,a

                                       +/-

                                       u+w

                                       +x

                                       -x

                                       g-rw

                                       例:chmod u+w test.sh  : 给

                       选项:

                               -R :递归修改权限;

                               --refernce=/path/to/somefile FILE

修改文件的属主和属组:

       chown [选项] 用户 文件

       chgrp [选项] 组 文件

       选项 :

                -R :递归修改权限;

               --refernce=/path/to/somefile FILE

       chown 用户:组 文件

       chown 用户.组  文件


管理员和普通用户创建文件或目录的默认权限;

umask : 遮罩码

默认情况下的root用户umask值是022(umask命令查看),普通用户umask值是002

[root@localhost ~]# umask0022

文件用666减umash值 目录用777减umash值

666-022=644

777-022=755

这时建立的文件默认权限是644(6-0,6-2,6-2),建立的目录的默认权限是755(7-0,7-2,7-2)

# umask :不输入参数显示当前值

# umask [mode] :设定umask,例:umask 022;生效范围为当前shell,如果想全局生效则把命令写入/etc/bashrc 或当前用户家目录的~/.bashrc


bash命令行中的快捷键

      tab    : 自动补全

       Ctrl+a : 跳到命令行首

       Ctrl+e : 跳到命令行尾

       Ctrl+u : 删除命令行首至当前光标所在首的内容

       Ctrl+k : 删除当前光标所在外至命令行尾的内容

       Ctrl+l : 清屏,相当于clear命令

       Ctrl+c : 取消或终止 ;

       Ctrl+z : 将当前命令挂起送至后台,在命令输入fg恢复;

       例:当你vi一个文件是,如果需要用shell执行别的操作,但是你又不打算关闭vi,因为你得
存盘推出,你可以简单的按下CTRL-Z,shell会将vi进程挂起~,当你结束了那个shell操作之后,你可以用fg命令继续vi你的文件。


sort : 排序

       -f : 忽略字符大小写;

       -n : 按数值大小进行排序;

       -r : 降序;

       -u : 移除重复行,具有相同内容的行只保留一个;

       -t : 指定分隔符;

           -k : 指定按第几项排序;

       -R : 随机排序;

uniq :

       -c : 统计每行重复的次数

       -u : 只显示没有重复的行

       -d : 只显示重复过的行;


Linux I/O重定向,管道

标准输入 : 0

标准输出 : 1

错误输出 : 2

将默认数据流为其它设备,就称作IO重定向;

输出重定向:

       > :    覆盖重定向

               set -C : 避免覆盖已经存在的文件中的内容

                       强制覆盖: >|

               set+C: 关闭上述功能

       >> :追加重定向:

       /dev/null : 数据黑洞,bit bucket

错误输出重定向:

       2> : 覆盖重定向;

       2>> : 追加重定向;

同时重定标准输出和错误 输出:

       COMMAND > /path/to/stdout 2> /path/to/error

       COMMAND 1> /path/to/stdout 2> /path/to/error

标准输出和错误输出定向至同一个文件:

       &>

       &>>

       COMMAND &> /path/to/stdout

       COMMAND > /path/to/somewhere 2>&1

输入重定向:

       <

               COMMAND < /from/somewhere


       <<: Here Document,此创建文档

           cat > /path/to/somefile << EOF

           abc

           hello

           EOF

           通常用于脚本中生成文档

           cat << EOF

           abc

           hello

           EOF

           通常用于脚本 中向用户输出大段信息;


管道:

COMMAND1 | COMMAND2 | COMMAND3 | ...

管道的最后一个命令是在当前shell的子shell中执行;

多道输出:

       tee : 显示器和文件同时输出,既显示的显示,又保留一份到日志供后期查看。

       COMMAND | tee /path/to/somewhere

   例如过滤IP:

[root@localhost ~]# ifconfig | grep "inet addr:" | grep -v ”127.0.0.1“ | cut -d: -f2 | cut -d' ' -f1 | tee ip.txt192.168.1.202192.168.0.202127.0.0.1[root@localhost ~]# cat ip.txt192.168.1.202192.168.0.202127.0.0.1


本文出自 “不知所措的运维” 博客,请务必保留此出处http://osrun.blog.51cto.com/608651/1344491