Linux簡介和基礎

一、系統和硬件

無論是Linux、OS X、Windows操作系統,他們都是由以下部分組成(分層結構):

最底層:硬件
底層之上:將硬件的接口抽象成為系統調用(kernel)
再之上:庫
再此之上為:應用程序

程序的運行可以有兩種方式:

1、開機自動啟動運行  2、用戶通過交互式接口登陸或者連接系統上去,來手動運行程序

二、終端:

1、物理終端:我們可以將顯示器、鍵盤鼠標直接接在主機的接口之上,這樣的終端稱之為物理終端,即本機自帶的,直接連入的,也稱之為:物理控制臺console表示/dev/console。  2、虛擬終端:除了物理終端,系統會提供給我們6個虛擬終端,這些虛擬終端是附加在物理終端之上的,用軟件方式虛擬實現的終端centos默認啟用6個虛擬終端,可以通過使用快捷鍵來切換進來。
切換方式:Ctrl-Alt-F[1-6]
表示:/dev/tty#  3、圖形終端:也是附加在物理終端之上,用軟件方式虛擬實現的終端,但額外會提供桌面環境。也是虛擬終端的一種切換方式:Ctrl-Alt-F7  4、偽終端(模擬終端):圖形界面下打開的命令行接口,還有基于ssh協議或telnet協議等遠程打開的命令行界面。
表示:/dev/pts# 查看當前的終端設備命令:tty

終端實際上一個設備,一個設備要想與系統交互,必須有交互接口,當我們開啟一個終端時,系統會自動的在終端上運行(附加)一個交互式程序。
交互式程序有兩類:

GUI和CLI GUI:圖形化界面,是基于X協議實現的窗口管理器(桌面、按鈕的作用等)
    Linux桌面系統有:
    GNOME(C程序開發,gtk(開發庫))
    KDE(C++程序開發,qt(開發庫))
    XFCE(輕量級桌面) CLI:命令行界面
    對應的叫shell程序,用戶要想與系統交互,必須通過shell,不同的程序員開發的程序不一樣,但是都可以實現同樣的功能(就是交互式功能),所以說shell程序也有很多種,如Sh,csh,Ksh,Bash,zsh。

查看當前環境使用的shell:
    echo $SHELL 顯示當前系統使用的所有shell cat /etc/shells
    
    echo nihao > /dev/tty2 向tty2這個終端發送nihao

三、命令提示符

靠環境變量定義

[root@centos6 ~]# echo $PS1 [\u@\h \W]\$ 修改:PS1="\[\e[32m\][\u@\h(Eric) \W]\\$\[\e[0m\]"

提示符有兩種:
1、#表示管理員登陸
2、$表示普通用戶登陸

可以通過命令提示符來判斷時管理員還是普通用戶登陸。

在shell中可執行的命令有兩類:

1、內建命令:由shell自帶的,而且通過某命令形式提供。 2、外部命令:在當前系統的某文件系統路徑下有對應的可執行程序文件;可通過which,whereis命令來查找到可執行程序文件

whereis command 
    查看命令的路徑(外部命令)和 幫助文檔的路徑

model:
    [root@centos6(Eric) ~]#whereis ntpd
    
    ntpd: /usr/sbin/ntpd /usr/share/man/man8/ntpd.8.gz which command 顯出命令的路徑

model:
    [root@centos6(Eric) ~]#which ntpd
    /usr/sbin/ntpd

查看命令是外部還是內建命令:

type command
    model:
    [root@centos6(Eric) ~]#type ntpd
    ntpd is /usr/sbin/ntpd
    
    [root@centos6(Eric) ~]#type echo
    echo is a shell builtin

運行命令格式:command [options...] [arguments...]
               命令     選項          參數

選項:用于啟用或關閉命令的某個或些功能。
參數:命令的作用對象(就是向命令提供數據的)
     命令的參數可以有多個

四:文件系統

文件有兩類數據:

元數據:metadata,文件名、大小屬性等
數據:data

Linux文件系統的特性:     1、文件名嚴格區分字符大小寫     2、文件名可使用除了/以外的任意字符,但不建議使用特殊字符     3、文件名長度最長不能超過255個字符 4、所有.開頭的文件都為隱藏文件
    
路徑:絕對路徑和相對路徑
        絕對路徑:從根目錄起始的路徑
        相對路徑:從當前位置起始的路徑  enable 管理內部命令      enable command 激活一個內部命令      enable -n command 禁用一個內部命令      enable 顯示所有已激活的內部命令
        配合 | wc -l 可查看已激活的內部命令的數量 enable -a 顯示所有的內部命令(無論激活與否)
        配合 | wc -l 可查看所有的內部命令數量 help 內部命令  查看指定內部命令的幫助信息 hash     hash的作用就是記錄或顯示程序的位置(可執行程序的位置)     hash 外部命令的路徑緩存      hash 查看被緩存的外部命令      hash -l 詳細查看,包含別名     hash -d 別名  刪除指定別名的緩存路徑      hash -p 路徑 別名 手動添加一條緩存路徑      hash -r 刪除所有的hash      hash -t 別名  指定別名,顯示被hash的路徑
PATH 用來指定外部命令的搜索路徑,以:為間隔,由左至右的順序

命令執行的優先順序 alias——> 內部命令——> hash ——> PATH  alias 別名      alias 別名='原命令 [-options] [arguments]'      alias 查看別名      unalias 別名 刪除別名

model:      alias editnet="vim /etc/sysconfig/network-scripts/ifcfg-eth0" 注:通過命令行定義的別名只對當前shell有效;如果想永久有效,需要定義在配置文件中。

僅對當前用戶有效:~/.bashrc
對所有用戶有效:/etc/bashrc

bash進程重新讀取配置文件: source /path/to/config_file
或者./path/to/config_file



臨時使別名不生效可用以下方法
    使用路徑執行
    \命令 '命令' "命令"

中斷命令

ctrl+C 強制中斷
ctrl+d 正常中斷

命令連接符

當前一個命令執行結束,再執行下一條命令 command1 ; command2 ; command 3 ……
    \ 命令換行符,可使一條命令加選項和參數 換行執行

關機

halt
    poweroff
    init 0

重啟

reboot
    init 6

shutdown

shutdown -r 重啟
    shutodwn -h 關機
    shutdown -c 取消計劃關機
    shutdown +0 馬上關機
         +1 一分鐘后關機
         -X X分鐘后關機 20:00 今天2000關機

date

查詢時間      date 顯示當前時間      date +%F 以 年-月-日 顯示     date +%T 以 時-分-秒 顯示      date +%Y     date +%m    date +%d     date +%H     date +%M     date +%S     date +%a 英文的星期縮寫      date +%A 英文的星期全拼     date +%w 數字方式顯示星期

設置時間

date 082914132017.10 月日時分年[.秒]      date -s "2018-1-20 13:50:11"

hwclock 或 clock

-s 將硬時間寫入軟時間。 
    -w 將軟時間寫入硬時間。

cal

cal [-1]顯示當月日歷
    -y 顯示當前年的全年日歷
    數字 顯示某年的日歷(1-9999)
    -3 顯示上個月、當月、下個月的日歷
    cal 月份 年份 顯示指定年指定月的日歷
    cal 9 1752 365.25 365.24219 365 365.24219      12803月  元朝  郭守敬  授時歷 1585 365.2425

screen

光盤掛載
    在vmware確定dvd設備是“已連接”狀態
    mount /dev/cdrom /media/dvd cd /media/dvd/Packages
    rpm -ivh screen-4.0.3-19.el6.x86_64.rpm

screen 的用法
    screen -ls 列出當前所有的screen會話
    screen -S 名稱 創建一個指定名稱的screen會話
    screen -x 名稱 加入指定名稱的screen會話
    screen 創建一個會話,名稱為當前的終端名-主機名前綴如pts-2.centos6
    
    echo
-n 不換行
-E 不支持解釋(默認)
-e 支持解釋功能 "\a" 發出警告聲 "\b" 退格 "\c" 不換行 "\n" 換行且光標移至行首 "\r" 移至行首但不換行 "\t" 插入tab Model:
    echo -e "\a"可以用于報警
    [root@centos6(Eric) ~]#echo -e hell"\b"o
    helo

    [root@centos6(Eric) ~]#echo -e hello"\c" hello[root@centos6(Eric) ~]#

    [root@centos6(Eric) ~]#echo -e 'Hello My sy"\n"stem is MAC Os.'
    Hello My sy"
    "stem is MAC Os.

    [root@centos6(Eric) ~]#echo -e 'Hello My sy"\r"stem is MAC Os.'
    "stem is MAC Os.

    [root@centos6(Eric) ~]#echo -e 'Hello My sy\t\nstem is MAC Os.'
    Hello My sy stem is MAC Os.

    [root@centos6(Eric) ~]#echo -e my "\t\n"name "\t\n"is "\t\n"eric
    my
    name
    is
    eric

$(command) 或 `command` 引用命令執行的結果

$[] 或 $(()) 運算
${變量名} 或 “$變量名” 引用變量

{}的用法

{a,b,c} 分別引用其中的每個字符
{1..10} 或 seq 1 10 {a..z}

TAB

唯一時則補出,不唯一時,兩次TAB顯示列表

history

~/.bash_history 當用戶退出時,會將當前終端的history寫入文件,當用戶登錄時,從文件中讀取到history history 顯示當前終端的歷史記錄 history -a 將當前終端的歷史寫入.bash_history history -n 從文件中讀取未加載的歷史 history -r 從文件中讀取歷史追加到history的最后 history -c 清空history HISTSIZE 當前history保留的數量,默認1000 修改方法:
vim /etc/profile
HISTSIZE=10000 HISTFILESIZE 文件中最多存的數量

快捷鍵

ctrl+a 光標跳到行首
ctrl+e 光標跳到行尾
alt+num a 輸入指定數量的字符

whatis 顯示命令描述信息

基于數據庫的查找方式,數據文件位置/var/cache/man/whatis 可使用makewhatis建立
優點:查詢快
缺點:沒有實時性

help用法:

help 內部命令
外部命令 --help

man

1、用戶命令章節,所有用戶都可以使用      2、系統調用命令章節      3、C庫調用      4、設備及特殊文件      5、配置文件的格式及相關參數      6、游戲      7、雜項      8、管理命令

手冊段落含義:

NAME:命令的名稱和簡要說明
DESCRIPTION:命令功能的詳細描述 OPTIONS:所支持的選項的相關說明
SYNOPSIS:使用格式
EXAMPLES:使用示例
NOTES:相關注意事項 FILES:相關的配置文件
SEE ALSO:相關參考

通過man命令獲得命令幫助信息頁中有一些用符號標記的內容,符號意義:

[]:可選內容 <>:必選內容
|:二選一
...:同類內容可以有多個

快捷鍵

d向下翻半屏 u向上翻半屏
f向下翻整屏
b向上翻整屏 G跳到尾頁 g跳到首頁
j向下跳一行
k向上跳一行
/關鍵字 n向下找N向上找
?關鍵字 n向上找N向下找
q退出man

-k 關鍵字 查詢某個關鍵字有哪些章節

man -k passwd man 5 passwd man passwd

[root@centos6(Eric) ~]#getent passwd Eric
Eric:x:500:500::/home/Eric:/bin/bash

一個備份命令:cp /etc/fstab{,.orig}

文件類型

- :普通文件      d :目錄文件      l :軟鏈接文件      b :塊設備文件      c :字符設備文件      s :socket文件      p :管道文件

pwd

顯示當前的工作目錄
-P 當前目錄為軟鏈接時,則顯示源目錄的路徑
-L 當前目錄為軟鏈接時,則顯示鏈接目錄的路徑(默認)
model:
[root@centos6(Eric) ~]#pwd /root

相對路徑與絕對路徑
.當前目錄
..上一級目錄

cp /etc/passwd .
./test.sh

basename 取基名

[root@centos6(Eric) ~]#basename /etc/sysconfig/network
network

dirname 取目錄名

[root@centos6(Eric) ~]#dirname /etc/sysconfig/network
/etc/sysconfig

cd 進入目錄

-P 如果目標目錄是個軟鏈接目錄,則直接進入其源始目錄
.. 進入上一級目錄
cd 進入家目錄
cd ~或直接 cd 進入家目錄
cd - 進入上一次的工作目錄

model:
[root@centos6(Eric) etc]#pwd /etc
[root@centos6(Eric) etc]#cd [root@centos6(Eric) ~]#pwd /root

[root@centos6(Eric) ~]#cd -
/etc
[root@centos6(Eric) etc]#pwd /etc

ls 列出目錄的內容

ls 列出目錄的內容
    -a 列出所有文件(包含隱藏文件)      -A 列出所有文件(包含隱藏文件但不包含.和..)      -l 長列出(即顯示屬性信息) 
    -R 遞歸      -ld 查看指定目錄的屬性      -1 豎顯示      -S 按文件大小降序排列      -t 按mtime的時間從新到舊排列      -ut 按atime的時間從新到舊排列 
    -U 按目錄存放順序      -X 按文件后綴的順序排列      -Z 顯示selinux的context      -i 顯示文件的inodes  [root@centos6(Eric) ~]#ll
-rw-------. 1 root root 1020 Aug 29 01:00 anaconda-ks.cfg  -rw-r--r--. 1 root root 9617 Aug 29 01:00 install.log  -rw-r--r--. 1 root root 3161 Aug 29 01:00 install.log.syslog  最左側第一位為文件類型
后面9位:
訪問權限perm
數字:文件被硬鏈接的次數
左root:文件的owner
右root:文件的group
1020/9617/3161:文件的size
Aug 29 01:00:文件最近一次被修改的時間
后面就是文件名

文件查看:

cat、tac
-A:--show-all equivalent to -vET 顯示所有非正常的所有符號 -E:--show-ends 顯示行結束符  -T:--show-tabs 顯示制表符  -v:--show-nonprinting 顯示其他的非打印字符  -n:對顯示的行進行編號,與文件內容沒有關系  -b:打印出行號(空白行不標行號)

文件內容類型查看命令:

file
[root@centos6(Eric) ~]#file install.log install.log: ASCII text [root@centos6(Eric) ~]#file /usr/bin/less /usr/bin/less: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped

whoami 顯示當前的登錄用戶名

who am i 顯示當前的登錄用戶名 終端名 登錄時間

who 顯示當前所有的登錄用戶名 終端名 登錄時間

w 顯示當前所有的登錄用戶名 終端名 登錄時間 登錄的來源 當前在做什么

[root@centos6(Eric) ~]#whoami root

[root@centos6(Eric) ~]#who am i root     pts/0 2017-08-30 07:15 (172.16.99.1)

[root@centos6(Eric) ~]#who root     pts/0 2017-08-30 07:15 (172.16.99.1)

[root@centos6(Eric) ~]#w 08:51:15 up 9:02, 1 user,  load average: 0.01, 0.00, 0.00 USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0 172.16.99.1 07:15 0.00s 0.07s 0.00s w

原創文章,作者:泰谷子,如若轉載,請注明出處:http://www.www58058.com/85907

(0)
泰谷子泰谷子
上一篇 2017-09-02 11:43
下一篇 2017-09-02 15:50

相關推薦

  • linux文件查找和壓縮

    locate          非實查找,查找是根據全系統文件數據庫進行的,                  #updatedb, 手動生成數據庫,  locate查找速度快 find : &nbs…

    Linux干貨 2017-03-04
  • 用戶,管理,權限

    主要是介紹一些 關于創建用戶 ,更改用戶信息及密碼 ,還有權限管理等等。可能介紹的不全還請大佬們多多關照新人!

    Linux干貨 2017-11-24
  • 文本處理三劍客之Sed(行編輯器)

    sed(流編輯器,行編輯器)     是一種流編輯器,一次處理一行內容,處理時把當前處理的行存儲在臨時緩存中,成為“模式空間”,接著用sed命令處理緩沖區的內容,處理完畢后吧緩沖區內容輸出到屏幕接著處理下一行。這樣不斷重復到末尾。文件內容并沒有改變。除非使用重定向輸出才會改變內容。 sed:行編輯器(全屏編輯器:vi)   &n…

    Linux干貨 2016-08-15
  • phpMyAdmin安裝部署

    phpMyAdmin安裝部署 phpMyAdmin 是一個用PHP編寫的軟件工具,可以通過web方式控制和操作MySQL數據庫。通過phpMyAdmin 可以完全對數據庫進行操作,例如建立、復制和刪除數據等等。如果使用合適的工具,MySQL數據庫的管理就會變得相當簡單。應用 MySQL 命令行方式需要對 MySQL 知識非常熟悉,對SQL語言也是同樣的道理。…

    2017-06-13
  • shell腳本編程 4

    Shell腳本編程4 一、雜項知識整理 1、數組賦值方法: declare -a files files=(/var/log/*.log)通配所有文件也可 2、創建臨時文件: mktemp命令:創建的臨時文件可避免沖突 mktemp  NAME.XXXX(x至少要出現三個) -d 創建臨時目錄 –tmpdir=/DIR 指明臨時文件所存…

    Linux干貨 2016-08-24
  • iptables使用示例

    iptables規則

    2017-10-14
欧美性久久久久