在Linux基礎系列之一中提到ls -l=ll,這個就是Linux中的別名,使用alias可以查看系統預設的別名。
[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會話中生效,如果你想要一直生效,請在環境變數檔案結尾中增添上述指令,有關環境變數的請看下一節。
[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
全域環境變數 Linux中/etc/profile就是全域變量,無論你用哪個使用者登入都可以使用該檔案裡的所有變數。承接上一節如何在全域環境變數中設定alias,在檔案結尾增添以下程式碼。
#env alias ul='cd /usr/local'
當然光增添程式碼是不夠的,一定要讓全域變數生效,使用以下指令皆可
. /etc/profile 或者 source /etc/profile
個人環境變數只針對個人用戶,存放的路徑就在~/.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'
使其生效也是上述兩種。
. ~/.bash_profile . ~/.bashrc 或者 source ~/.bash_profile source ~/.bashrc
一般都是使用rm -rf 檔案名,這種方式會強制刪除檔案或資料夾,-f表示強制,-r表示可以資料夾。常聽到就是 rm -rf /*,也就是刪庫跑路。當然一般人不會這樣直接運行,但是可能會在shell腳本出現這種錯,以下場景就導致這種情況。
shell脚本可能会这样 xxxpath=xxx/xx ...(逻辑部分) rm -rf $xxxpath/* 这里就是个坑 如果一空值赋予给了xxxpath,那么不就成了rm -rf /* 所以在生产上凡是碰见rm -rf强制删除文件夹的,路径一定先判断存在不,不存在 就skip;就存在就rm
history -c 就是清除指令記錄,當然個人使用者登陸時,~/.bash_history也會記錄指令,所以要清除的話,記得也把它給刪掉。
useradd 用戶名==>新增用戶,它的家目錄就在/home/用戶名
id 使用者名稱==>顯示使用者和使用者群組資訊
[root@hadoop001 ~]# id dengdi uid=1001(dengdi) gid=1001(dengdi) groups=1001(dengdi) 用户ID 主组ID 所有组
cat /etc/passwd==>顯示所有用戶的資訊
dengdi(用户名):x:1001(用户id):1001(主组id)::/home/dengdi(家目录):/bin/bash(执行解释器) 如果/bin/bash变成/bin/false或者/sbin/nologin,这个用户就不能登陆了
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
[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
[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 .bashrcskel directory就是.bash*所有的隱藏文件,嘗試將這些刪除然後切換dengdi用戶
[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為主群組
[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) 这里重新指定主组之后,会丢失原来的主组
usermod -d 路径 用户 或者 vi /etc/passwd
su ruoze 切换用户 当前路径不会变,就是切换之前的路径 su - ruoze 切换用户 且切到该用户的家目录,且执行环境变量文件生效
更多Linux文章,請造訪Linux教學欄位進行學習!
以上是Linux基礎知識系列之二的詳細內容。更多資訊請關注PHP中文網其他相關文章!