目录
 
命令解释器-shell-负责解析用户输入的命令
 
分类:
 
type --查看命令是内置命令、外置命名、alias命令
 
注意
 
Linux 中的特殊符号
 
拓展
 
命令别名aliasalias 别名='原命令 - 参数'
 
常用的别名untar,wget,getpass,ping,speed,ipe,c
 
删除别名unalias
 
注意
 
history--查阅命令历史记录
 
注意
 
账户和组管理
 
账户和工作组的分类
 
用户分为三类:
 
工作组分析两类:
 
账户和工作组的配置文件
 
用户账号文件
 
id    查看账户的UID、GID等信息
 
用户密码文件
 
工作组账号文件
 
用户管理
 
添加新用户useradd
 
修改账户信息usermod
 
账号设置密码passwd
 
命令设置密码
 
删除账号userdel
 
账户切换su
 
控制用户对系统命令的使用权限sudo
 
 
 
 
 
命令解释器-shell-负责解析用户输入的命令
 

 
分类: 
 
 
 内置命令 
  (shell 
 内置 
 ) 
 , 
 shell 
 为了完成自我管理和基本的管理,不同的 
 shell 
 内置不同的命令,但是大  
 
 
 部分都差不多  
 
 
 外置命令,在文件系统的某个目录下,有个与命令名称相同的文件 
 
type --查看命令是内置命令、外置命名、alias命令 
 
 
 type  
 - 
 参数 命令名 
 
 
 type -a  
 列出当前命令可以如何执行  
 
 
 type -t  
 仅列出命令按照哪种方式执行  
 
注意
 
1.在命令行中cd可以直接写是因为系统环境可以识别,echo   $PATH
 2.PATH=$PATH:/mnt在原来基础上加/mnt,这个是临时的
 3.两个窗口独立,系统中设定在文件中保存才是永久
 
Linux 中的特殊符号
 
 
 
 ;    可使用分号分隔多条命令     在一行上输入和执行多条较短的命令,可使用分号来分隔命令  
 
 
 *    匹配任意零个或者多个字符    不能用于创建文件  
 
 
 ?  匹配任意单个字符     不能用于创建文件  
 
 
 []    匹配方括号中的任意一个字符,表示范围可以用"-”    不能用于创建文件  
 
 
 [^] 
 或者 
 [!]     匹配方括号中的任意一个字符或数字后进行取反  
 
 
 用于查找和删除文件,不用于创建文件  
 
 
 {string,string}      匹配括号中的任意一个字符串,表示一个范围时,字符串之间个".."  
 
 
 可用于创建、查看、删除文件  
 
 
 \      使\ 
 后面的特殊字符失效  
 
 
 例如:可以在命令行后面加一个 
 \ 
 ,再按回车键时 并不表示执行该命令,而是表示换行,通过此方式 将一个较长的命令分成多行表达,增强命令的可读 性。换行后系统自动显示提示符 >  
 
 
 `      反引号,一般用于引用命令,执行的时候反引号里面的命令会被执行,与$() 作用相同  
 
 
 '       单引号,将单引号内的所有内容都原样输出所有特殊字符在单引号里面都会失去特殊含义  
 
 
 "      双引号,除了几个特殊字符外,将双引号内的几乎所有内容都原样输出  
 
 
        ”$“ 
 和 
 “\” 
 以及 
 “ ` ” 
 在双引号里面仍然保留自己的特殊含义  
 
拓展
 
 空格是一个字符
 [[:alpha:]]字母lower小写,upper大写,digit数字
 punct符号space空格alnum字母或数字,第一个中括号表示集合,两个第二个中括号连起来表示或,模糊匹配
 {a,b,c}三个文件,[a-c]a到c,反选只能用于中括号,{1..5}1连续到5,
 
“”引号。批量转义。单引号-强引用。双引号-弱引用
 单引号引起来先执行
 
命令别名alias
alias 别名='原命令 - 参数'
 
例子
 
 
 [root@server ~] 
 # alias  
 
 
 alias cp='cp -i'  
 
 
 alias egrep='egrep --color=auto'  
 
 
 alias fgrep='fgrep --color=auto'  
 
常用的别名untar,wget,getpass,ping,speed,ipe,c
 
由于 tar 命令的参数太多不好记忆,所以将解压缩设为
 
alias untar='tar -zxvf ' 
 
下载大文件时的断点续连,防止网络异常中断
 
 
 alias  
 wget 
 = 
 'wget -c ' 
 
 
  
  生成 
   20  
  个字符的随机数密码,使用 
   openssl  
  命令,但命令又很长不方便,可以设置别名 
 
 
  
   
   alias  
   getpass 
   = 
   "openssl rand -base64 20"  
  
 
   
    
    ping url 
    时会无限次输出,但其实没多大意义,可以使用 
     -c  
    命令将其限制为 
     5  
    次输出 
   
 
    
    
   
  
alias ping='ping -c 5'
 
 
 speed 测试网速命令speedtest-cli  
 ,为了方便使用可以设置别名:  
 
 
 安装 
 : speedtest-cli 
 是基于 
 python 
 编写的需要使用 
 pip 
 工具下载  
 
 
  
  [root@server ~] 
  # speedtest-cli --list  
 
 
  
   
   ipe  
  
 
   
   公网 
    IP别名设置:  
   alias  
   ipe 
   = 
   'curl ipinfo.io/ip'  
  
 
   
    
    清屏,一般使用 
     ctrl + l  
    快捷键,也可以将 
     clear  
    命令定义得更短,这样使用起来更直接,更粗暴 
   
 
    
    alias  
    c 
    = 
    'clear'  
   
 
    
   
  
 删除别名unalias
 
  
  unalias  
  别名  
 
 
 注意
 
  
   
   1.在命令行中使用 
   alias 
   命令设置的别名仅在该次登入有效,如果重新开启一个 
    Shell 
   ,或者重新登录系  
  
 
   
   统,则这些 
   alias 
   将无法使用。  
  
 
   
   2.在 
   linux 
   中提供 
   alias 
   永久化的方法:  
  
 
   
   将别名命令写入到 
   ~/.bashrc 
   和 
   /etc/bashrc 
   文件中  
  
 
   
   执行 
    source ~/.bashrc  
   和 
    source ~/etc/bashrc  
   生效 
  
 
   
   3.alias   ping='ping   -c1    -w1'别名,代替,每次使用ping(实际上是执行带有-c 1 -W 1参数的ping)时,就只会发送一个 ICMP 请求包并且等待 1 秒获取响应,而不是像原始ping命令那样一直发送请求直到手动停止。 
  
 
  history--查阅命令历史记录
 
   
   history  
   - 
   参数  
  
 
   
   number 
   :显示最近 
   number 
   条命令历史  
  
 
   
   -c 
   :清空当前历史命令  
  
 
  注意
 
  历史在bash.history里,清空文件里的历史
 
  账户和组管理
 
  账户和工作组的分类 
 
  用户分为三类: 
 
   
   超级账户 
   —— 
   账户名为 
   root 
   ,它具有一切权限,只有进行系统维护 
   ( 
   例如:建立用户等 
   ) 
   或其他必要情形下才用超级用户登录,以避免系统出现安全问题。  
  
 
   
   系统账户 
   —— 
   是 
   Linux 
   系统正常工作所必需的账户,主要为了满足相应的系统进程对文件属主的要求而建立的,如:bin 
   、 
   daemon 
   、 
   adm 
   、 
   sshd 
   等,注意:系统账户不能登录。  
  
 
   
   普通用户 
   —— 
   是为了让使用者能够使用 
   Linux 
   系统资源而建立的,大多数用户属于此类。 
  
 
  工作组分析两类: 
 
   
   基本组 
   ( 
   私有组 
   ) 
   :新建立账户时,若没有指定账户所属的工作组,会建立和账户名相同的组  
  
 
   
   扩展组 
   ( 
   公有组 
   ) 
   :可以容纳多个用户,组中的账户都具有组所拥有的权利。 
  
 
  账户和工作组的配置文件
 
   
   用户账号文件     /etc/passwd  
  
 
   
   用户密码文件     /etc/shadow  
  
 
   
   工作组账号文件   /etc/group  
  
 
   
   工作组密码文件    /etc/gshadow  
  
 
   
   
  
 
 用户账号文件 
 
  
  /etc/passwd  
  是一个文本文件,用于定义系统的账号,由于所有账户都对 
  passwd 
  有读权限,所以该  
 
 
  
  文件中只定义用户账号,而不保存口令。 
 
 
  
   
   [root@server ~]# ll /etc/passwd  
  
 
   
   -rw-r--r--. 1 root root 2083 4月 26 14:39 /etc/passwd  
  
 
   
    
    账号名 
    : 
    密码 
    :UID:GID: 
    个人资料 
    : 
    主目录 
    :Shell  
   
 
    
     
     UID 
     :账户的 
     ID 
     值,是一个数字标识,相当于账户的 
     “ 
     身份证编号 
     ” 
     ,具有唯一性  
    
 
     
               root 
     账户 
     UID——0  
    
 
     
               系统账户的 
     UID——1 
     ~ 
     999  
    
 
     
               普通账户的 
     UID—— 
     ≥ 
     1000  
    
 
     
               注意:普通账户从 
     1000 
     开始编号,连续编号,即使系统管理员某些账户号码未使用,普  
    
 
     
     通账户也不可使用  
    
 
     
     GID 
     :基本组的 
     ID 
     值,用来区分不同的工作组,相同的组具有相同的 
     GID 
     。  
    
 
     
     个人资料:注释信息,可以记录账户的完整姓名、地址、办公室电话、家庭电话等个人信息。  
    
 
     
     家目录:类似 
     Windows  
     的个人目录,通常是 
     /home/ 
     账户名  
    
 
     
     Shell 
     :定义用户登录后激活的 
     Shell 
     ,默认是 
     Bash Shell  
    
 
     
     id    查看账户的UID、GID等信息 
 
      
      id  
      账户名 
     
 
      
      用户密码文件 
 
       
       /etc/shadow 
       存储密码加密后的密文 
       ,该文件为了保证了账户密码的安全性只有 root 账户拥有读权限,注意:若该文件权限发生变化,需要留心恶意攻击  
      
 
       
        
        /etc/shadow 
        文件中的每行 
        9 
        个字段的含义为 
       
 
        
        登录名 
        : 
        加密口令 
        : 
        最后一次修改时间 
        : 
        最小时间间隔 
        : 
        最大时间间隔 
        : 
        警告时间 
        : 
        不活动时间 
        : 
        失效时间 
        : 
        标志  
       
 
        
        工作组账号文件 
 
         
         /etc/group 
         文件存储每个组工作组信息  
        
 
         
          
          Groupname     组的名字  
         
 
          
          Passwd           组的加密口令  
         
 
          
          GID                 是系统区分不同组的ID 
          ,在 
          /etc/passwd 
          域中的 
          GID 
          字段是用这个数来指定账户的基本组  
         
 
          
          Userlist            是用“ 
          , 
          ” 
          分开的账户名,列出的成员以该组为附加组  
         
 
          
          用户管理 
 
          添加新用户useradd
 
           
            
            useradd  
            - 
            参数 账户名 
           
 
            
             
             -c  
             注释信息:设置相关的说明信息,如 
             , 
             :真实姓名、邮箱地址等。  
            
 
             
             -d 
             :目录:设定账户的家目录 
             ( 
             默认为 
             /home/ 
             用户名 
             ) 
             。  
            
 
             
             -e  
             YYYY-MM-DD 
             :设置用户的失效日期 
             , 
             此日期后将不能使用该账号。  
            
 
             
             -f  
             天数:指定密码到期后多少天账号被禁用 
             , 
             若指定为 
             0, 
             则表示账号到期后被立即禁用 
             ; 
             若指定 为 
             -1, 
             则表示账号过期后不被禁用( 
             即密码永不过期 
             ) 
             。  
            
 
             
             -g  
             组名或 
             GID 
             号:为账户指定所属的基本组 
             , 
             该组在指定时必须已存在。  
            
 
             
             -G 
             :组名或 
             GID 
             号列表:为账户指定所属的扩展组 
             , 
             各组在指定时已存在 
             , 
             附加组可以有多个 
             , 
             组之间用 
             “,” 
             分 隔。  
            
 
             
             -M 
             :不创建账户家目录。  
            
 
             
             -N 
             :不创建与账户名同名的基本组。  
            
 
             
             -p 
             :密码:指定账户的登录密码。  
            
 
             
             -s  
             shell 
             名:指定账户登录后使用的 
             Shell, 
             默认是 
             bash 
             。  
            
 
             
             -u  
             用户号:设置账号的 
             UID, 
             默认是已有账户的最大 
             UID 
             加 
             1 
             。如果同时有 
             -o 
             选项 
             , 
             则可以重复使用其他用户的标识号 
            
 
             
             修改账户信息usermod
 
              
              usermod  
              - 
              参数 账户名  
             
 
              
               
               常用参数 
                -c,-d,-m,-g,-G,-s,-u  
               等 
               , 
               意义与 
               useradd 
               命令中的参数相同  
              
 
               
               -l  
               新账户名:更改账户的名称 
               , 
               必须在该用户未登录的情况下才能使用  
              
 
               
               -L 
               :锁定 
               ( 
               暂停 
               ) 
               用户账户 
               , 
               使其不能登录使用  
              
 
               
               -U 
               :解锁用户账户 
              
 
               
               账号设置密码passwd
 
                
                passwd  
                -  
                参数 账户名 
               
 
                
                Linux 
                的账户必须设置密码后,才能登录系统  
               
 
                
               
              
              -d 
              :清空指定用户的口令,与未设置口令的账户不同 
              , 
              未设置口令的账户无法登录系统 
              , 
              而口令为空的账户可  
             
 
              
              以。  
             
 
              
              -e 
              :使用户的账号密码立即过期,强迫用户下次登录时必须修改口令。  
             
 
              
              -i 
              :口令过期后多少天停用账户。  
             
 
              
              -l 
              :锁定 
              ( 
              停用 
              ) 
              用户账户。  
             
 
              
              -n 
              :指定口令的最短存活期。  
             
 
              
              -x 
              :指定密码的最长使用期限。  
             
 
              
              -u 
              :解锁用户账户 
             
 
              
               
               密码不能为空  
              
 
               
               密码不要写成回文  
              
 
               
               只有 
                root  
               用户才能指定用户名  
              
 
              命令设置密码
 
               
               echo  
               密码  
               | passwd  
               --stdin  
               用户名  
              
 
               
               echo  
               密码  
               | passwd  
               --stdin  
               用户名  
               > /dev/null  
               #  
               无信息提示  
              
 
               
               删除账号userdel
 
                
                userdel  
                账户名 
               
 
                
                参数  
               
 
                
                -r 
                :在删除该账户的同时,一并删除该账户对应的家目录  
               
 
               账户切换su
 
               su   账户名
 
                
                su 
                和 
                su -  
                命令区别  
               
 
                
                区别:加载的配置文件不一样  
               
 
                
                su  
                切换方式加载的文件:  
                ~/.bashrc 
                , 
                /etc/bashrc  
               
 
                
                su -  
                切换方式加载的文件:  
                /etc/bashrc 
                , 
                /etc/profile 
                , 
                ~/.bashrc 
                , 
                ~/.bash_profile  
               
 
                
                注意: 
                su -  
                相当于重新建立环境,若全局变量需要继续使用则不能使用 
                su -  
                命令  
               
 
                
                注意  
               
 
                
                从 
                root 
                用户切换到任何用户不需要密码验证,而从普通用户到 
                root 
                或其他普通用户均需要输入目标  
               
 
                
                用户的密码且验证成功后才可切换。  
               
 
               控制用户对系统命令的使用权限sudo
 
                
                作用  
               
 
                
                使用  
                sudo  
                命令可以提高普通用户的操作权限,使用前需要 
                root 
                进行配置  
               
 
                
                 
                 sudo 
                 的执行流程如下:  
                
 
                 
                 当执行 
                 sudo 
                 提权时,需要输入自己密码来确认( 
                 root 
                 执行 
                 sudo 
                 时不需要输入密码)  
                
 
                 
                 若密码输入成功,系统会去 
                 /etc/sudoers 
                 文件中查找该用户是否有执行 
                 sudo 
                 的权限  
                
 
                 
                 若用户具有执行 
                 sudo 
                 的权限,便开始 
                 sudo 
                 后续接的命令;  
                
 
                 
                 配置 
                 /etc/sudoers 
                 文件方式  
                
 
                 
                 执行 
                 visudo  
                 或 
                  vim /etc/sudoers  
                
 
                 
                  
                  [root@server ~]# vim /etc/sudoers
# 定位100行输入:
fox ALL=(ALL) ALL
# 需要wq!强制保存退出
[root@server ~]# su fox
[fox@server root]$ cd /root
bash: cd: /root: 权限不够
[fox@server root]$ sudo cd /root
[sudo] fox 的密码:
[fox@server root]$ pwd
/root