基于云计算的Linux系统命令汇总

来源:互联网 发布:数据库副本 编辑:程序博客网 时间:2024/06/07 01:39
用户管理: 
useradd  
指定用户家目录 -d  
创建系统用户  -r(redhat)
指定shell  -s
不创建家目录   -M
 
权限管理
chmod  给用户添加权限   #chmod 755 user 
chown  设置文件或目录的所有者和所属的组,只有文件主和 root用户才能使用该命    
          令。该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变所属的
          组。
su - 用户   登陆时切换,切换env
su 用户    登录时不切换 env
   例: 不切换用户,以目标用户执行命令
                 [root@momo01 ~]# su - yhy -c "whoami"
                  yhy
                 [root@momo01 ~]# whoami
                 root


chown -R user1.user1 /home/user1  修改用户的属主
例:思考题  
 删除yhy用户家目录,如何还原(root用户重新创建yhy的家目录,拷贝/etc/skel/.bash* 的三个文件到/home/yhy/下即可)
[root@momo01 ~]# useradd yhy
[root@momo01 ~]# rm -fr /home/yhy
[root@momo01 ~]# su - yhy
su: 警告:无法切换到目录/home/yhy: 没有那个文件或目录
[root@momo01 ~]# mkdir /home/yhy
[root@momo01 ~]# ll /etc/skel/.bash*
[root@momo01 ~]# cp  -a /etc/skel/.bash*  /home/yhy
cp:是否覆盖"/home/yhy/.bash_logout"? y
cp:是否覆盖"/home/yhy/.bash_profile"? y
cp:是否覆盖"/home/yhy/.bashrc"? y
[root@momo01 ~]# ll -a /home/yhy
总用量 20
drwxr-xr-x. 2 yhy  yhy  4096 8月  10 13:20 .
drwxr-xr-x. 4 root root 4096 8月  10 10:50 ..
-rw-r--r--. 1 root root   18 7月   9 2013 .bash_logout
-rw-r--r--. 1 root root  176 7月   9 2013 .bash_profile
-rw-r--r--. 1 root root  124 7月   9 2013 .bashrc
[root@momo01 ~]# chown -R yhy.yhy /home/yhy         
[root@momo01 ~]# ll -a /home/yhy
总用量 20
drwxr-xr-x. 2 yhy  yhy  4096 8月  10 13:20 .
drwxr-xr-x. 4 root root 4096 8月  10 10:50 ..
-rw-r--r--. 1 yhy  yhy    18 7月   9 2013 .bash_logout
-rw-r--r--. 1 yhy  yhy   176 7月   9 2013 .bash_profile
-rw-r--r--. 1 yhy  yhy   124 7月   9 2013 .bashrc


umask  权限遮罩码  022


install  复制文件并设置文件属性 跟copy一样,但可以指定属主和属组以及权限  
            #install 1.txt -m 755 1.txt.new  将文件1.txt复制到文件 
                        1.txt.new并设置755的权限
       设定文件的属主  -o (只适用于root用户)
       设定文件所属组  -p (自行设定所属组,而不是进程目前的所属组)
       创建目录         -d (#install -d data  与mkdir相似)




通配符
   假设某个目录中有以下几个文件 file1.sh,file2.sh ,file3.sh...file12.sh ,file.txt
     *  匹配0个或多个任意字符   rm file*.sh  匹配file.1.2...12, 但不匹配file.txt
                         rm file1*.sh  匹配10、11、12
                         rm  *     匹配所有的文件
     ?  匹配单个字符           rm file1?.sh  匹配10、11、12
                         rm file?.sh    匹配1、2、...8、9
                         rm file?.*    匹配1、2、...8 、9以及file.txt
      []   匹配一组单个字符,或者匹配用连字符(-)指定的某一范围内的字符
                         rm file1[12].sh  匹配到 11、12
                         rm file1[0-2].sh  匹配 10、11、12
                         rm file[12].sh    匹配到 12
      [^]  匹配指定范围外的任意单个字符
                          rm file1[^2]  匹配到 10、11


 
grep文本处理工具   是一个文本过滤工具,基于正则表达式进行模式匹配
     
     使用格式:grep [选项] 匹配模式 file对象
选项说明:
    –color=auto:对匹配到的文本着色,高亮显示  [root@momo01 ~]# alias
                             [root@momo01 ~]#  alias grep='grep --color=auto'
                               [root@momo01 ~]# ls /etc/ |grep yum
                                         


    -i:忽略字符大小写
    -o:仅显示匹配到的字符串本身
    -v:方向匹配,匹配到的文本行不显示,不能匹配到的行显示
    -E:表示支持使用扩展的正则表达式,等同于egrep
    -q:静默模式,不输出任何信息到标准输出
    -A(after):显示匹配到的行和其后面的行,给一个数字
        grep -A 1 root /etc/passwd
    -B(before):显示匹配到的行和其前面的行,给一个数字
        grep -B 1 root /etc/passwd
    -C(center):显示匹配到的行和其前后的行,给一个数字
        grep -C 1 root /etc/passwd


  字符匹配
 
       . :匹配任意单个字符
       [ ]:匹配指定范围内的任意单个字符
      [^ ]:匹配指定范围外的任意当个字符 


  匹配次数     用在要指定其出现的次数的字符的后面,用于限制其前面字符出现的次数,默认为贪婪模式
 
         *:表示匹配其前面的字符任意次,0,1,多次 
        .*:匹配任意长度的任意字符
        \?:匹配其前面的字符0次或一次,即其前面的字符是可有可无的
        \+:匹配其前面的字符一次或多次,即其前面的字符要出现至少一次
      \{m\}:精确匹配到其前面字符的m次
      \{m,n\}:匹配其前面的字符至少m次,至多n次 
      \{0,n\}:至多n次
      \{m,\}:至少m次


   位置锚定


         ^:行首锚定,用于模式的最左边
         $:行尾锚定,用于模式的最右边
       ^pattern$:用于pattern来匹配整行 
         ^$:空白行
       ^[[:space:]]$:空行或空白字符的行
         单词:非特殊字符组成的连续字符都称为单词
         \< 或 \b:词首锚定,用于单词模式的左侧
         \> 或 \b:词尾锚定,用于单词模式的右侧
       \<pattern\>:匹配完整单词


egrep    egrep==grep -E  使用扩展正则表达式做模式匹配


   扩展正则表达式的元字符 


  1:字符匹配 
            . :匹配任意单个字符
            [ ]:匹配指定范围内的任意单个字符
            [^ ]:匹配指定范围外的任意当个字符 
        [[:digit:]] [[:lower:]] [[:upper:]]  [[:alpha:]] [[:alnum:]]         
                                 [[:punct:]] [[:space:]] 
  2:次数匹配 
           *:任意次,0,1或多次
           ?:0次或1次,其前的字符是可有可无的
           +:其前字符至少1次
         {m}:其前的字符m次
         {m,n}:至少m次,至多n次 
         {0,n}
 




  3:位置锚定 
          ^:行首锚定
          $:行尾锚定
          \< 或 \b:词首锚定,用于单词模式的左侧
          \> 或 \b:词尾锚定,用于单词模式的右侧


  4:分组及引用 (分组和引用,也就搞定了Python的正则表达式)
          ( ):分组,括号内的模式匹配到的字符会被记录到正则表达式引擎的内部变量中后向引用:/1, /2


             [root@7 yhy2]# cat yhy
              wo love wo
              ni love ni
              ta love ta 
             [root@7 yhy2]# egrep "(w.).*\1" yhy 
              wo love wo


               a | b:表示a或者b ---> grep "a|b" yhy
               c|Cat:c或者cat
               (c|C)at:cat或者Cat
               attern  图案,模式
  例:    1:显示/etc/passwd文件中不以/bin/bash结尾的行 
             grep -v “/bin/bash” /etc/passwd


           2:找出/etc/passwd文件中的两位数或三位数的行 
              egrep “[0-9]{2,3}” /etc/passwd


           3:找出/etc/rc.d/rc.sysinit(centos 6)或/etc/grub2.cfg(centos 7)文件
               中,以至少一个空白字符开头,且后面有非空白字符的行 
                     grep “^[[:space:]]+[^[:space:]]+” /etc/grub2.cfg


           4:找出”netstat -tan”命令的结果中以’LISTEN’后跟0、1或多个空白字符结尾的行 
                     netstat -tan | grep “LISTEN[[:space:]]*$”


sort命令    sort排序是在内存中进行排序的,默认的排序规则是将文件的内容基于行的首字符进行排序,
              如果第一个字符相同,那么就比较第二个字符,以此类推,实现快速排序
    
        格式: sort [选项] 文件名
              常用的选项
                -t:指定字段分隔符,便于指定排序的字段
                -k:用于排序比较的字段
       sort -t: -k3 -n /etc/passwd  基于用户的uid的大小进行排序
                -n:基于数值大小排序  
                cut -d: -f3 /etc/passwd | sort  按字符进行排序
                cut -d: -f3 /etc/passwd | sort -n  按数值大小进行排序
                -r:逆序进行排序
       sort -t: -k3 -n -r /etc/passwd
                -f:忽略字符大小写            (这里是由于ASCII码的原因, 因为A的ASCII码
                                                        为:65,a的ASCII码为97 )
   
                -u:重复的行只保留一份




diff 和 patch 命令


   diff:逐行比较文件的不同,并且显示出来。
   patch: 打补丁工具,将补丁打到老文件里面,也就是diff左边的那个文件,使得老文件和新文件一样


    格式:diff [选项] 老文件 新文件
    格式:patch [选项] 老文件 




vim 编辑器
 末行模式
   地址定界 
         .: 当前行
         $:最后一行
       m,n:指定行范围,左侧为起始行
       n,n+:指定行范围,右侧为左侧行的偏移量 ,例如:3,+7
         %:全文
       /pattern/:第一次被模式所匹配到的行
    查找并替换
           格式:地址地接符s/要查找的内容/替换为的内容/修饰符 
                 要查找的内容:可以使用正则表达式
                 替换为的内容:不能使用正则表达式,但是可以引用 
                     如果使用了分组,也就是在要查找的内容中使用了( )话,可以使用后向引用, \1表示
                     引用第一个括号匹配的内容, \2表示第二个括号匹配的内容,也可以直接引用查找模式
                    匹配到的整个文本,直接使用匹配模式的全部文本:用&符号引用整个模式匹配到的文本


1 . 复制/etc/grub2.cfg文件至/tmp目录中,用查找替换命令删除/tmp/grub2.cfg文件中以空白字符开头的行的行首的空白字符
   :%s/^[[:space:]]\+//
2 :复制/etc/rc.d/init.d/functions文件至/tmp目录中,用查找替换命令为/tmp/functions文件的每一个空白字符开头的行的首行加上#
  :%s/^[[:spade:]]\+/\#&/
3 . 为/tmp/grub2.cfg文件的前三行的行首加上#号
    :1,3s/^./\#&/
4 . 将/etc/yum.repos.d/CentOS-Base.repo文件中所有的enabled=0替换为ennabled=1,所有的gpgcheck=0替换为gpgcheck=1
     :%s/\(enabled\|gpgcheck\)=0/\1=1/














































vim编辑器
编辑模式   输入模式   末行模式
末行模式  :.,$ d 从当前行到最后一行删掉
模式匹配系统默认之匹配一个,如何全文匹配?
 

原创粉丝点击