Linux基礎知識系列之二

經常使用命令

alias(別名)

Linux基礎知識系列之一中提到ls -l=ll,這個就是Linux中的別名,使用alias能夠查看系統默認的別名。
shell

[root@hadoop001 ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

複製代碼

使用alias 別名=命令字符串就能夠在當前session會話中生效,若是你想要一直生效,請在環境變量文件末中增添上述命令,有關環境變量的請看下一節。centos

[root@hadoop001 ~]# alias ul='cd /usr/local'
[root@hadoop001 ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias ul='cd /usr/local'   <-- 新增的
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@hadoop001 ~]# ul
[root@hadoop001 local]# pwd
/usr/local
複製代碼

環境變量

  1. 全局環境變量 Linux中/etc/profile就是全局變量,不管你用哪一個用戶登陸均可以使用該文件裏的全部變量。承接上一節如何在全局環境變量中設置alias,在文件末尾增添如下代碼。
#env
alias ul='cd /usr/local'
複製代碼

固然光增添代碼是不夠的,必定要使全局變量生效,使用如下命令都可bash

. /etc/profile
或者
source /etc/profile
複製代碼
  1. 我的環境變量 只針對我的用戶,存放的路徑就在 ~/.bash_profile 中,打開該文件你會發現它其實還涉及到另外一個文件 ~/.bashrc 。因此若是你要設置alias,也是在兩個文件末尾添加上述代碼。
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

#env
alias rc='cd /root/xxx'
複製代碼

使其生效也是上述兩種。session

. ~/.bash_profile    . ~/.bashrc
或者
source ~/.bash_profile    source ~/.bashrc
複製代碼

rm(刪除)

通常都是使用 rm -rf 文件名,這種方式會強制刪除文件或者文件夾,-f表示強制,-r表示能夠文件夾。常常聽到就是 rm -rf /*,也就是刪庫跑路。固然通常人都不會這樣直接運行,可是可能會在shell腳本出現這種錯,如下場景就致使這種狀況。oop

shell腳本可能會這樣
xxxpath=xxx/xx
...(邏輯部分)
rm -rf $xxxpath/*    這裏就是個坑

若是一空值賦予給了xxxpath,那麼不就成了rm -rf /*
因此在生產上凡是遇見rm -rf強制刪除文件夾的,路徑必定先判斷存在不,不存在 就skip;就存在就rm
複製代碼

history(命令記錄)

history -c 就是清除命令記錄,固然我的用戶登錄時,~/.bash_history也會記錄命令,因此要清除的話,記得也把它給刪掉。post

用戶/用戶組命令集合

  1. useradd 用戶名==>添加用戶,它的家目錄就在/home/用戶名
  2. id 用戶名==>顯示用戶和用戶組信息
[root@hadoop001 ~]# id dengdi
uid=1001(dengdi) gid=1001(dengdi) groups=1001(dengdi)
用戶ID             主組ID           全部組  
複製代碼
  1. cat /etc/passwd==>顯示全部用戶的信息
dengdi(用戶名):x:1001(用戶id):1001(主組id)::/home/dengdi(家目錄):/bin/bash(執行解釋器)  
若是/bin/bash變成/bin/false或者/sbin/nologin,這個用戶就不能登錄了
複製代碼
  1. userdel 用戶名==>刪除用戶 刪除用戶,會把/etc/passwd記錄刪除; 同時假如該組沒有其餘用戶,則刪除該組 可是 家目錄還在,可是用戶和用戶組 發生變革
[root@hadoop001 ~]# ll /home/
total 0
drwx------. 3 centos centos 70 Jun 28  2017 centos
drwx------  2   1001   1001 59 Jun 17 23:48 dengdi
複製代碼
  1. 執行userdel而後再useradd
[root@hadoop001 ~]# userdel dengdi
[root@hadoop001 ~]# useradd dengdi
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists
複製代碼

來看看系統提示的skel directory是什麼,咱們ll -a /home/dengdiui

[root@hadoop001 ~]# ll -a /home/dengdi/
total 12
drwx------  2 dengdi dengdi  59 Jun 17 23:48 .
drwxr-xr-x. 4 root   root    32 Jun 17 23:48 ..
-rw-r--r--  1 dengdi dengdi  18 Apr 11  2018 .bash_logout
-rw-r--r--  1 dengdi dengdi 193 Apr 11  2018 .bash_profile
-rw-r--r--  1 dengdi dengdi 231 Apr 11  2018 .bashrc
複製代碼

skel directory就是.bash*全部的隱藏文件,嘗試將這些刪除而後切換dengdi用戶spa

[root@hadoop001 ~]# ll -a /home/dengdi/
total 16
drwx------  2 dengdi dengdi  79 Jun 18 00:06 .
drwxr-xr-x. 4 root   root    32 Jun 17 23:48 ..
-rw-------  1 dengdi dengdi   5 Jun 18 00:06 .bash_history
-rw-r--r--  1 dengdi dengdi  18 Apr 11  2018 .bash_logout
-rw-r--r--  1 dengdi dengdi 193 Apr 11  2018 .bash_profile
-rw-r--r--  1 dengdi dengdi 231 Apr 11  2018 .bashrc
[root@hadoop001 ~]# rm -rf /home/dengdi/.*
rm: refusing to remove ‘.’ or ‘..’ directory: skipping ‘/home/dengdi/.’
rm: refusing to remove ‘.’ or ‘..’ directory: skipping ‘/home/dengdi/..’
[root@hadoop001 ~]# ll -a /home/dengdi/
total 0
drwx------  2 dengdi dengdi  6 Jun 18 00:08 .
drwxr-xr-x. 4 root   root   32 Jun 17 23:48 ..
[root@hadoop001 ~]# su - dengdi
Last login: Tue Jun 18 00:07:26 CST 2019 on pts/0
-bash-4.2$ 
複製代碼

因此skel directory是決定你的[root@hadoop001 ~]仍是-bash-4.2$ 6. groupadd 用戶組==>新增用戶組 usermod -a -G 用戶組 dengdi==>添加用戶組新成員爲dengdi usermod -g 用戶組 dengdi==>修改xxx爲主組code

[root@hadoop001 ~]# groupadd bigdata
[root@hadoop001 ~]# id ruoze
uid=501(ruoze) gid=501(ruoze) groups=501(ruoze)
[root@hadoop001 ~]# usermod -a -G bigdata ruoze
[root@hadoop001 ~]# id ruoze
uid=501(ruoze) gid=501(ruoze) groups=501(ruoze),502(bigdata)
[root@hadoop001 ~]# usermod -g bigdata ruoze
[root@hadoop001 ~]# id ruoze
uid=501(ruoze) gid=502(bigdata) groups=502(bigdata)
這裏從新指定主組以後,會丟失原來的主組
複製代碼
  1. 從新指定用戶家目錄
usermod -d 路徑 用戶
或者
vi /etc/passwd
複製代碼
  1. 切換用戶
su ruoze   切換用戶 當前路徑不會變,就是切換以前的路徑
su - ruoze 切換用戶 且切到該用戶的家目錄,且執行環境變量文件生效
複製代碼
  1. passwd 用戶==>設置密碼或者重置密碼
相關文章
相關標籤/搜索