1. 程式人生 > >Linux入門_1

Linux入門_1

auto motd rtx 端口 表的操作 命令行 tex logs 級別

Linux入門

目錄

  ? Root用戶
  ? 終端
  ? 交互式接口(圖形化界面和命令行)
  ? 什麽是Shell(bash)
  ? 命令提示符
  ? 內部命令和外部命令 enable,hash
  ? 命令別名
  ? 命令格式
  ? Nano(一個簡單的編輯器)
  ? 一些命令

Root用戶

權限:無限大
  這是一個特殊的管理用戶,在Linux系統中,他擁有無限大的權限,大到可以刪除系統本身,因此,這個賬號是相當危險的,一般使用者只能給他們普通用戶賬號,只有極個別必須使用root權限的時候,才會賦予普通用戶部分root權限,並且用完立即收回root權限。

終端

  對於計算機來說,終端我給分成了兩種,一種是輸入輸出設備,鍵盤、鼠標、顯示器等,我們稱它們是終端設備。還有一種是計算機的控制接口,在Linux中,終端是我們能夠進行操控其操作系統的界面。包括:
物理終端:


  /dev/console

技術分享當我們切換到單用戶模式下的時候,我們就能看到物理終端的提示符

虛擬終端:
  tty(teletypewriters) /dev/tty/N N=1-6
虛擬終端依舊是在物理機上的端口,在Linux中,我們可以使用Ctrl+Alt+【F1-F6】之間進行切換虛擬終端,以方便我們使用。

技術分享

圖形界面:
  正如我們所知道的,windows 和IOS 上,開機之後,我們看到的是都是精美的界面,而不是黑乎乎的命令行。同樣的,Linux一樣也有圖像界面,並且,我們可以在圖形化界面和命令終端之間進行切換:startx,xwindows切換到圖形界面
串行終端:
  現在我們已經用不到串行終端,所以在這裏我就不在進行介紹
偽終端:


  pty(pseudo-tty) /dev/pts/N N=number
  就是我們平時用的遠程連接方式,才會顯示出偽終端,因為它不是真正的終端,只是由於使用需要進行遠程控制的模擬終端

  查看使用什麽終端
    命令:tty

技術分享

交互式接口

圖形化界面

GUI:Graphic User Interface
在Linux中我們使用到的圖像化界面有:
  ? GNOME(c,圖形庫gtk)
  ? KDE(c++,圖形庫gt)
  ? XFCE(輕量級桌面)

命令行

CLI:Command Line Interface
  正如下圖所示的就是我們作為一個Linux工作者平時會使用到的交互式接口。由於桌面環境會開啟一個程序,會占用我們的內存和CPU資源,更重要的是很多操作我們無法再桌面換將直接的看到,所以我們幾乎都會采用CLI模式的交互式接口。

技術分享

什麽是Shell(bash)

Shell 是Linux系統的用戶界面, 提供了用戶與內核進行交互操作的一種接口。 它接收用戶輸入的命令並把它送入內核去執行
shell也被稱為LINUX的命令解釋器(command interpreter)
shell是一種高級程序設計語言。作為命令語言,它交互式解釋和執行用戶輸入的命令或者自動地解釋和執行預先設定好的一連串的命令;作為程序設計語言,它定義了各種變量和參數,並提供了許多在高級語言中才具有的控制結構,包括循環和分支。
GNU Bourne-Again Shell(bash)是GNU計劃中重要的工具軟件之一, 目前也是 Linux標準的shell, 與sh兼容

顯示當前使用的shell:echo ${SHELL}
顯示當前系統使用的所有shell:cat /etc/shells

每次我們在登錄機器之後,我們就已經在使用SHELL了,在我們現在使用的CentOS系統中,用的都是bash,以下是bash的優點:
  1. 通過上下方向鍵來調取過往執行過的Linux命令。
  2. 命令或參數僅需輸入前幾位就可以用tab鍵補全。
  3. 強大的批處理腳本。
  4. 實用的環境變量。

技術分享

命令提示符

命令提示符是我們在登錄上操作系統時看到的一個提示符:
  命令提示符: prompt

技術分享

[[email protected] ~]#
  # 管理員
  $ 普通用戶
顯示提示符格式
  [[email protected] ~]#echo $PS1
修改提示符格式
  PS1="[\u@\h \W]\\$ "

  \h 主機名簡稱
  \w 當前工作目錄
  \t 24小時時間格式
  \! 命令歷史數
  \u 當前用戶
  \H 主機名
  \W 當前工作目錄基名
  \T 12小時時間格式
  \# 開機後命令歷史數

內部命令和外部命令 enable,hash

  在CentOS中,bash會帶有一部分常用命令,這部分命令常駐在內存中,以便於在我們使用時不必在從硬盤中進行查找,這部分常用的命令我們通常稱為內置命令,如:
技術分享  但是內建命令並不代表在硬盤文件中不存在,他只是為了方便使用而將部分常用的命令設為內置命令了。所以內建命令在硬盤文件中依然存在。

判斷一個命令的類型:
  type COMMAND。
外部命令查看路徑:
  which -a |--skip-alias ; whereis

內部命令有啟用不啟用之分使用enable命令可以對內建命令進行設置

顯示所有啟用的內部命令:enable
  enable | wc -l 統計啟用的內部命令數量
  enable COMMAND 啟動一個內部命令
  enable -n COMMAND 禁用一個內部命令

  enable –a 顯示所有內建命令(無論是否禁止)
  enable -n 顯示所有被禁用的內部命令
  enable -n |wc -l 統計被禁用的內部命令數量
外部命令是如何被使用的呢?我能知道,在系統中會有PATH,即路徑,我們使用的所有外部命令都是按照路徑從左到右進行查找執行的,但是我們先進行這樣的一個操作:

技術分享

現在,我們使用的是一個外部命令PWD,我們使用一次PWD之後,顯示如下圖所示:

技術分享

我們發現和上面的圖片不一樣了,這是為什麽呢?這是由於當我們使用一次外部命令以後,hash會將我們使用過的命令路徑存放在hash表中,以便我們在下次使用的時候提高所搜效率。下面是對hash表的操作:
  hash 顯示當前被hash的外部命令、
    -l 顯示當前被hash的外部命令,包含別名
    -p /.../.... name 手動增加一個hash緩存
    -d name 刪除一個hash
    -r 清空所有的hash
在我們的實際操作中,hash的執行優先級別是高於PATH中的命令的,下面是一個在操作中優先級別的排序:
alias > 內部命令> hash > PATH > command not find

命令別名

顯示當前shell進程所有可用的命令別名:alias

技術分享
定義別名NAME, 其相當於執行命令
alias NAME=‘VALUE‘
技術分享在命令行中定義的別名, 僅對當前shell進程有效
如果想永久有效, 要定義在配置文件中
僅對當前用戶: ~/.bashrc
對所有用戶有效: /etc/bashrc

編輯配置給出的新配置不會立即生效
bash進程重新讀取配置文件
  source /path/to/config_file
  . /path/to/config_file
撤消別名: unalias
  unalias [-a] name [name ...]
  -a 取消所有別名

如果別名同原命令同名, 如果要執行原命令, 可使用
  “\COMMAND”
  ‘COMMAND’
  /PATH/COMMAND: 外部命令

技術分享

命令格式

COMMAND [OPTIONS...] [ARGUMENTS...]
  OPTIONS選項: 用於啟用或關閉命令的某個或某些功能
  短選項: -c 例如: -l, -h
  長選項: --word 例如: --all, --human-readable
  參數: 命令的作用對象, 比如文件名, 用戶名等

註意:
  多個選項以及多參數和命令之間使用空白字符分隔
  取消和結束命令執行: Ctrl+c, Ctrl+d
  多個命令可以用;符號分開
  一個命令可以用\分成多行

Nano(一個簡單的編輯器)

  在Linux上有一個簡單的編輯器,但是我們只做了解,知道有這麽一個編輯器就行了,因為之後我們會學習更加強大的VIM,nano界面如下所示:

技術分享

一些命令和文件

文件:
  /etc/gdm/custom.conf 更改圖像化界面的自動化登錄
  /etc/isue 顯示登錄前的信息
  /etc/motd 顯示登陸後的信息

命令:
  rz 向內部拷文件
  sz 向外部拷文件
  wall 在本機登錄的用戶進行廣播
  pwd 查看所在目錄
  cat 查看文件內容
  file查看文件類型
  which 查看命令路徑
  whereis 查看文件或命令的路徑

Linux入門_1