首頁  >  文章  >  運維  >  Linux基礎知識系列之二

Linux基礎知識系列之二

步履不停
步履不停原創
2019-06-19 15:53:263126瀏覽

Linux基礎知識系列之二

常用指令

#alias(別名)

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=&#39;alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde&#39; [root@hadoop001 ~]# ul [root@hadoop001 local]# pwd /usr/local

環境變數

  1. 全域環境變數 Linux中/etc/profile就是全域變量,無論你用哪個使用者登入都可以使用該檔案裡的所有變數。承接上一節如何在全域環境變數中設定alias,在檔案結尾增添以下程式碼。

#env alias ul=&#39;cd /usr/local&#39;

當然光增添程式碼是不夠的,一定要讓全域變數生效,使用以下指令皆可

. /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=&#39;cd /root/xxx&#39;

使其生效也是上述兩種。

. ~/.bash_profile    . ~/.bashrc 或者 source ~/.bash_profile    source ~/.bashrc

rm(刪除)

一般都是使用rm -rf 檔案名,這種方式會強制刪除檔案或資料夾,-f表示強制,-r表示可以資料夾。常聽到就是 rm -rf /*,也就是刪庫跑路。當然一般人不會這樣直接運行,但是可能會在shell腳本出現這種錯,以下場景就導致這種情況。

shell脚本可能会这样 xxxpath=xxx/xx ...(逻辑部分) rm -rf $xxxpath/*    这里就是个坑 如果一空值赋予给了xxxpath,那么不就成了rm -rf /* 所以在生产上凡是碰见rm -rf强制删除文件夹的,路径一定先判断存在不,不存在 就skip;就存在就rm

history(指令記錄)

history -c 就是清除指令記錄,當然個人使用者登陸時,~/.bash_history也會記錄指令,所以要清除的話,記得也把它給刪掉。

用戶/用戶群組指令集合

  1. useradd 用戶名==>新增用戶,它的家目錄就在/home/用戶名

  2. id ​​使用者名稱==>顯示使用者和使用者群組資訊

  3. [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

    2. [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/dengdi

    [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用戶

    [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) 这里重新指定主组之后,会丢失原来的主组
    1. 重新指定使用者家目錄

    2. #
      usermod -d 路径 用户 或者 vi /etc/passwd
    1. 切換使用者

    2. su ruoze   切换用户 当前路径不会变,就是切换之前的路径 su - ruoze 切换用户 且切到该用户的家目录,且执行环境变量文件生效
    1. #passwd 使用者==>設定密碼或重設密碼

    更多Linux文章,請造訪Linux教學欄位進行學習!

    以上是Linux基礎知識系列之二的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn