Linux 基礎入門(二)

Linux 基礎入門

=====================================================================

概述:


=====================================================================

Linux入門基礎

 1.遠程連接

ssh協議:secure shell

  • ~]# ss -tnl  查看系統是否監聽在tcp協議的22號接口;

  • ~]# ip addr list 或者 ifconfig 查看ip地址

  • 確保防火牆處於關閉狀態:~] # iptables -L -n

關閉防火牆:

CentOS 7

  • ~]# systemctl disable firewalld.service

  • ~]# systemctl stop firewalld.service

CentOS 6

  • ~]# service iptables stop

  • ~]# chkconfig iptables off

 2.用戶登錄

root用戶

  • 一個有特殊的管理賬戶,也稱爲超級用戶,root已經接近完整的系統控制,對系統損害幾乎有無限的能力,除非必要,不然不要登錄root

普通(非特權)用戶

  • 權限有限,對系統造成損害的能力比較有限;

建議使用非管理員賬號登錄,執行管理操作臨時切換至管理員,操作完成即退回;

注意:

  • Linux系統中默認的管理員用戶爲root,但這只是一個名字而已,是可以切換的。系統判斷是管理員還是普通用戶,是看用戶的UID(User ID 用戶ID編號),管理員的UID是0,普通用戶的不是;

  • 顯示命令:~]id -u (顯示自己的id)  ~]# id -u tao (顯示tao的id)

  • 在CentOS 6 中默認是從500開始編號的,CentOS 7中默認是從1000開始編號的

 3.命令提示符

[root@localhost ~]#

  • 我們稱之爲PS1,靠環境變量定義,其組成部分可以使用echo命令來顯示:echo $PS1

  • 格式:[\u@\h \ W]\$

  • # 表示命令提示符,提示符有兩種:

   ① # :表示管理員賬號,爲root;擁有最高權限,能執行所有操作;

   ② $ :表示普通用戶,非root用戶,不具有管理權限,不能執行系統管理類操作

 因此可以通過命令提示符來判斷管理員登錄還是普通用戶登錄!

輸入命令,然後回車,提請shell程序找到鍵入的命令所對應的可執行程序的代碼,並由其分析後提交給內核分配資源將其運行起來,表現爲一個或多個進程。

附圖:

  分層結構圖

wKioL1eV_EjjzHe0AACMqjdGGtk265.png

演示:

[root@centos7 ~]# cat .bashrc 
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

PS1="\[\e[36;40m\][\[\e[32;40m\]\u\[\e[0m\]@\[\e[33;40m\]\h \[\e[36;40m\]\W\[\e[36;40m\]]\[\e[0m\]\\$ "

[root@centos7 ~]# echo $PS1
\[\e[36;40m\][\[\e[32;40m\]\u\[\e[0m\]@\[\e[33;40m\]\h \[\e[36;40m\]\W\[\e[36;40m\]]\[\e[0m\]\$


 4.在shell中的可執行命令:

shell程序是獨特的程序,負責解析用戶提供的命令

  • 環境變量:PATH :從哪些路徑中查找用戶鍵入的命令字符串所對應的命令文件

  • ~]# echo $PATH

內建命令(bulitin)

  • 由shell自帶的,而且通過某命令形式提供;

  • ~]# enable COMMAND 啓用內建命令

  • ~]# enable -n COMMAND 禁用內建命令

外部命令

  • 在當前系統的某文件路徑下有對應的可執行程序文件,文件名即命令名;

  • 可通過which、whereis 命令來查找到期可執行的程序文件

  • 外部命令的路徑:# echo $PATH  (PATH是一個變量,定義了若干個目錄,放了程序的文件夾)

如何查看一個命令是內建命令還是外部命令?

  • 通過type命令,格式:type  COMMAND (注意linux嚴格區分大小寫)如:~]# type cd

hash命令

  • 記錄或顯示程序的位置(可執行程序的位置)

  • 搜尋到的外部命令路徑結果緩存至kv(key-value )存儲中。key:搜索鍵 ;valure:值

  • ~]# hash :列出命令的緩存

  • ~]# hash -d :表示清空指定命令的緩存,如:hash -d ls

  • ~]# hash –r :表示清空所有命令的緩存, hash -r

alias 定義別名

  • # alias 定義別名 ;# unalias 取消別名(是臨時生效的)  

  • 別名的優先順序是大於原始命令。

  • 想要執行原始命令方法:直接輸入路徑、使用 \ (反斜線) 或 ` `(單引號)

命令執行的順序:別名>內建>hash>$PATH

演示:

 1.內建命令

[root@CentOS6 ~]# type cd
cd is a shell builtin      # 內建命令
[root@CentOS6 ~]# enable -n cd
[root@CentOS6 ~]# cd /etc
-bash: cd: command not found
[root@CentOS6 ~]# enable cd
[root@CentOS6 ~]# cd /
[root@CentOS6 /]# ls
bin  boot  dev  etc  home  lib  lib64  lost+found  media  misc  mnt  net  nfs  opt

 2.外部命令

[root@CentOS6 ~]# type date
date is /bin/date  # 外部命令顯示的是路徑

# 查看外部命令對應的路徑
[root@CentOS6 ~]# which date
/bin/date
[root@CentOS6 ~]# whereis date
date: /bin/date /usr/share/man/man1/date.1.gz /usr/share/man/man1p/date.1p.gz

# 所有的外部命令都在PATH變量中,執行順序從左到右
[root@CentOS6 ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

  3.hash命令

# 緩存的外部命令
[root@centos7 ~]# hash
命中	命令
   2	/usr/sbin/iptables
   1	/usr/sbin/ifconfig
   1	/usr/bin/cat
   1	/usr/bin/locale
   1	/usr/bin/yum
   3	/usr/bin/ping
   3	/usr/bin/ls
   1	/usr/sbin/ip
# 清空指定的緩存命令
[root@centos7 ~]# hash -d iptables
[root@centos7 ~]# hash
命中	命令
   1	/usr/sbin/ifconfig
   1	/usr/bin/cat
   1	/usr/bin/locale
   1	/usr/bin/yum
   3	/usr/bin/ping
   3	/usr/bin/ls
   1	/usr/sbin/ip

# 清空命令緩存 
[root@centos7 ~]# hash -r
[root@centos7 ~]# hash
hash: 哈希表爲空

 4.alish 命令別名

[root@CentOS6 ~]# alias
alias cp='cp -i'
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'


 5.運行命令:

命令格式:

      COMMAND  [OPTIONS]  [ARGUMENTS]

             命令              選項               參數

選項:用於啓用或關閉命令的某個或某些功能(指定程序的運行特性);如:ls的-l  -h選項

  • 短選項:-c,   例如:ls的 -l, -h

  • 長選項:--word,例如:--all, --human-readable

參數:

  • 命令的作用對象(就是向命令提供數據的),比如文件名,用戶名等;

  • 命令的參數可以有多個;

注意:

  • 多選項,以及多參數和命令之間使用空白字符分隔

  • 取消和結束命令執行:Ctrl+c

  • 多個命令可以用 ;符號分開;

  • 一個命令可以用 \ 分成多行;

=========================================================================

發起一命令:請求內核將某個二進制程序運行爲一個進程

  • 程序 ---> 進程

  • 靜態 ---> 動態(有生命週期)

命令本身是一個可執行的程序文件,二進制格式的文件,有可能會調用共享庫文件

多數系統程序文件都存放在:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin

  • 普通命令:/bin,/usr/bin,/usr/local/bin

  • 管理命令:/sbin,/usr/sbin,/usr/local/sbin

共享庫:/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64

  • 32bits庫:/lib,/usr/lib,/usr/local/lib

  • 64bits庫:/lib64,/usr/lib64,/usr/local/lib64

命令必須遵循特定格式規範:

  • exe,msi,ELF(Linux)

演示:

[root@centos7 ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aa7ff68f13de25936a098016243ce57c3c982e06, stripped

 6.CentOS 7設置程序環境

localectl 

  • status:顯示當前狀態

  • list-locales :列出支持的所有的程序環境

  • set-locale LOCALE...     設定程序環境

演示:

# 當前程序環境 
[root@CentOS7 ~]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

[root@centos7 ~]# localectl set-locale LANG=zh_CN.utf8   # 設置爲中文的語言環境
[root@centos7 ~]# localectl status
   System Locale: LANG=zh_CN.utf8
       VC Keymap: cn
      X11 Layout: cn

# 重啓之後就可以獲得中文的語言環境了
[root@centos7 ~]# locale
LANG=zh_CN.utf8
LC_CTYPE="zh_CN.utf8"
LC_NUMERIC="zh_CN.utf8"
LC_TIME="zh_CN.utf8"
LC_COLLATE="zh_CN.utf8"
LC_MONETARY="zh_CN.utf8"
LC_MESSAGES="zh_CN.utf8"
LC_PAPER="zh_CN.utf8"
LC_NAME="zh_CN.utf8"
LC_ADDRESS="zh_CN.utf8"
LC_TELEPHONE="zh_CN.utf8"
LC_MEASUREMENT="zh_CN.utf8"
LC_IDENTIFICATION="zh_CN.utf8"
LC_ALL=



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章