Linux(一):Linux基礎

1. Linux入門

1.1. Linux概述

  • Linux是一套無償使用和自由傳播的類Unix操做系統。Unix操做系統是上世紀70年代在貝爾實驗室誕生的一個強大的多用戶、多任務操做系統。
  • Linux內核最初只是由芬蘭人林納斯·託瓦茲(Linus Torvalds)在赫爾辛基大學上學時出於我的愛好而編寫的。
  • 目前市面上較知名的發行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE。

1.2. Linux和Windows的區別

1.3. CentOS下載地址

網易鏡像:http://mirrors.163.com/centos/6/isos/java

搜狐鏡像:http://mirrors.sohu.com/centos/6/isos/node

2. Linux 文件與目錄結構

2.1. Linux文件

  • 在Linux中一切都是文件。

2.2. Linux目錄結構

  1. /home:存放普通用戶的主目錄,在Linux中每一個用戶都有一個本身的目錄,通常該目錄名是以用戶的帳號命名的。
  2. /root:該目錄爲系統管理員,也稱做超級權限者的用戶主目錄。
  3. /etc:全部的系統管理所須要的配置文件和子目錄。
  4. /usr:這是一個很是重要的目錄,用戶的不少應用程序和文件都放在這個目錄下,相似於windows下的program files目錄。
  5. /boot:這裏存放的是啓動Linux時使用的一些核心文件,包括一些鏈接文件以及鏡像文件,本身的安裝別放這裏。
  6. /media:linux系統會自動識別一些設備,例如U盤、光驅等等,當識別後,linux會把識別的設備掛載到這個目錄下。
  7. /mnt:系統提供該目錄是爲了讓用戶臨時掛載別的文件系統的,咱們能夠將外部的存儲掛載在/mnt/上,而後進入該目錄就能夠查看裏的內容了。
  8. /opt:這是給主機額外安裝軟件所擺放的目錄。好比你安裝一個mysql數據庫則就能夠放到這個目錄下。默認是空的。
  9. /var:這個目錄中存放着在不斷擴充着的東西,咱們習慣將那些常常被修改的目錄放在這個目錄下。包括各類日誌文件。

3. VI/VIM編輯器

3.1. 編輯器概述

  • VI是Unix操做系統和類Unix操做系統中最通用的文本編輯器。VIM編輯器是從VI發展出來的一個性能更強大的文本編輯器。能夠主動的以字體顏色辨別語法的正確性,方便程序設計。VIM與VI編輯器徹底兼容。

 3.2. 編輯器的通常模式

  1. yy:複製光標當前一行
  2. p:箭頭移動到目的行粘貼
  3. u:撤銷上一步
  4. dd:刪除光標當前行
  5. x:刪除一個字母,至關於del
  6. shift+^:移動到行頭
  7. shift+$:移動到行尾
  8. shift+g:移動到頁尾

3.3. 編輯器的編輯模式

  1. i:在當前光標前進入編輯模式
  2. a:在當前光標後進入編輯模式
  3. o:當前光標行的下一行
  4. ESC:退出編輯模式

3.4. 編輯器的指令模式

  1. ::w是保存,q是退出,!是強制執行
  2. /:查找,/被查找詞,n是查找下一個,shift+n是往上查找

3.5. VI鍵盤圖和模式轉換

4. 網絡配置和系統管理操做

4.1. 修改網絡ip地址

# 使用vim編輯器修改/etc/sysconfig/network-scripts/ifcfg-eth0文件
DEVICE=eth0                #接口名(設備,網卡)
HWADDR=00:0C:2x:6x:0x:xx   #MAC地址 
TYPE=Ethernet               #網絡類型(一般是Ethemet)
UUID=926a57ba-92c6-4231-bacb-f27e5e6a9f44  #隨機id
ONBOOT=yes                #系統啓動的時候網絡接口是否有效(yes/no)
BOOTPROTO=static      # IP的配置方法[none|static|bootp|dhcp](引導時不使
用協議|靜態分配IP|BOOTP協議|DHCP協議)
IPADDR=192.168.1.100      #IP地址
GATEWAY=192.168.1.2      #網關
DNS1=192.168.1.2          #域名解析器

4.2. 關閉防火牆(CentOS7)

啓動: systemctl start firewalld
關閉: systemctl stop firewalld
查看狀態: systemctl status firewalld 
開機禁用  : systemctl disable firewalld
開機啓用  : systemctl enable firewalld

4.3. 關機重啓

  • 概述:在linux領域內大多用在服務器上,不多遇到關機的操做。畢竟服務器上跑一個服務是永無止境的,除非特殊狀況下,不得已纔會關機。正確的關機流程爲:sync > shutdown > reboot > halt。
  • 經驗技巧:Linux系統中爲了提升磁盤的讀寫效率,對磁盤採起了 「預讀遲寫」操做方式。當用戶保存文件時,Linux核心並不必定當即將保存數據寫入物理磁盤中,而是將數據保存在緩衝區中,等緩衝區滿時再寫入磁盤,這種方式能夠極大的提升磁盤寫入數據的效率。可是,也帶來了安全隱患,若是數據還未寫入磁盤時,系統掉電或者其餘嚴重問題出現,則將致使數據丟失。使用sync指令能夠當即將緩衝區的數據寫入磁盤。
  • 基本語法:

sync mysql

將數據由內存同步到硬盤中linux

haltsql

關閉系統,等同於shutdown h now poweroffshell

reboot數據庫

就是重啓,等同於 shutdown r nowapache

shutdownvim

選項windows

-h-h=halt關機

-r-r=reboot重啓

參數

now:馬上關機

時間:等待多久後關機(時間單位是分鐘)。

 

5. Linux中經常使用的基本命令

5.1. 幫助命令

man 得到幫助信息

例:man ls(獲取ls的幫助信息)

help 得到shell內置命令的幫助信息

例:help cd(獲取cd的幫助信息)

經常使用快捷鍵

ctrl + c:中止進程

ctrl+l:清屏(完全清屏是:reset

ctrl + q:退出

tab:提示信息

上下鍵:查找執行過的命令

5.2. 文件目錄類

pwd

顯示當前工做目錄的絕對路徑

ls

-a :所有的文件,連同隱藏的(開頭爲 . 的文件一塊兒列出來(經常使用)

-l :長數據串列出,包含文件的屬性與權限等等數據;(經常使用)

cd

cd路徑:切換到絕對路徑或者切換到相對路徑

cd ~或者cd :回到本身的家目錄

cd -:回到上一次所在目錄

cd ..:回到當前目錄的上一級目錄

cd -P:跳轉到實際物理路徑,而非快捷方式路徑

mkdir

mkdir:建立一個目錄(例:mkdir abc

mkdir -p:建立一個多級目錄(例:mkdir -p abc/def

rmdir

刪除一個空的文件夾

touch

建立空文件(例:touch a.txt

cp

cp:複製文件(例:cp /home/a/b.txt /home/x/

cp -r:遞歸複製整個文件夾(例:cp -r /home/a/b /home/x/

rm

rm -r:遞歸刪除目錄中全部內容

rm -f:強制執行刪除操做,而不提示用於進行確認。

rm -v:顯示指令的詳細執行過程

mv

mv oldNameFile newNameFile      (功能描述:重命名)

mv /temp/movefile /targetFolder  (功能描述:遞歸移動文件)

cat

查看文件內容,從第一行開始顯示。

cat -n:顯示全部行的行號,包括空行。

more

空白鍵 (space):表明向下翻一頁;

Enter: 表明向下翻『一行』;

q:表明馬上離開 more ,再也不顯示該文件內容。

Ctrl+F:向下滾動一屏

Ctrl+B:返回上一屏

=:輸出當前行的行號

:f:輸出文件名和當前行的行號

echo

echo輸出內容到控制檯

head

head用於顯示文件的開頭部份內容。默認狀況下head指令顯示文件的前10行內容。

head -n 10 文件(查看文件頭10行內容,10能夠是任意行數)

tail

tail  -n 5 文件(查看文件頭5行內容,5能夠是任意行數)

tail  -f  文件    (功能描述:實時追蹤該檔的全部更新)

cat 文件1 > 文件2 (功能描述:將文件1的內容覆蓋到文件2

>> 

echo 「內容」 >> 文件

ln軟連接

ln -s [原文件] [目標文件]:(功能描述:給原文件建立一個軟連接,軟連接存放在目標文件目錄,例:ln -s xiyou/dssz/houge.txt ./houzi

刪除軟連接: rm -rf 軟連接名,而不是rm -rf 軟連接名/ (例:rm -rf houzi

進入軟鏈接實際物理路徑(例:cd -P dssz/

history

查看已經執行過歷史命令

5.3. 時間日期類

date顯示當前時間:

date

顯示當前時間

date +%Y

顯示當前年份

date +%m

顯示當前月份

date +%d

顯示當前是哪一天

date "+%Y-%m-%d %H:%M:%S"

顯示年月日時分秒

 date顯示非當前時間:

date -d '1 days ago'

顯示前一天日期

date -d '-1 days ago'

顯示明天時間

設置系統時間:

date -s "2017-06-19 20:52:18"

設置系統當前時間

cat查看日曆:

cal

查看當前月的日曆

cal -3

查看當前月、前一個月和後一個月的日曆

cal 2017

查看2017年的日曆

5.4. 用戶管理命令

useradd

useradd 用戶名 (功能描述:添加新用戶)

useradd -g 組名 用戶名 (功能描述:添加新用戶到某個組)

passwd

passwd 用戶名  (功能描述:設置用戶密碼)

id

id 用戶名    (功能描述:查看用戶是否存在)

su

su 用戶名稱(切換用戶,只能得到用戶的執行權限,不能得到環境變量)

su - 用戶名稱(切換到用戶並得到該用戶的環境變量及執行權限)

userdel

userdel  用戶名       (功能描述:刪除用戶但保存用戶主目錄)

userdel -r 用戶名     (功能描述:用戶和用戶主目錄,都刪除)

who

whoami            (功能描述:顯示自身用戶名稱)

who am i             (功能描述:顯示登陸用戶的用戶名)

cat

cat  /etc/passwd      (功能描述:查看建立了哪些用戶)

usermod

usermod -g 用戶組 用戶名   (功能描述:將用戶加入到用戶組)

5.5. 用戶管理組命令

groupadd

groupadd 組名   (功能描述:新增組)

groupdel

groupdel 組名    (功能描述:刪除組)

groupmod

groupmod -n 新組名 老組名       (功能描述:修改組)

cat

cat  /etc/group (功能描述:查看建立了哪些組)

5.6. 文件權限類

1. 文件屬性:

a) 一個文件或者文件夾的屬性具體含義以下圖所示:

  

    若是查看到是文件:連接數指的是硬連接個數,建立硬連接方法:ln [原文件] [目標文件](例:ln sunhouzi/shz.txt ./shz.txt)

    若是查看的是文件夾:連接數指的是子文件夾個數。

  b) 從左到右的10個字符的具體含義以下圖所示:  

      

  c) 0首位表示類型:

    - 表明文件

         d 表明目錄

         l 連接文檔(link file)

  d) 第1-3位肯定屬主(該文件的全部者)擁有該文件的權限。---User

  e) 第4-6位肯定屬組(全部者的同組用戶)擁有該文件的權限,---Group

  f) 第7-9位肯定其餘用戶擁有該文件的權限 ---Other

2. chmod改變權限

  a) 基本語法:

    chmod  [{ugoa}{+-=}{rwx}] 文件或目錄

    chmod  [mode=421 ]  [文件或目錄]

  b) 經驗技巧:

    u:全部者  g:全部組  o:其餘人  a:全部人(u、g、o的總和)

    r=4 w=2 x=1        rwx=4+2+1=7

  c) 示例:

    chmod u+x test1.java

    chmod g+x test1.java

    chmod -R 777 testdir

3. chown改變全部者

  a) 基本語法:

    chown [選項] [最終用戶] [文件或目錄]            (功能描述:改變文件或者目錄的全部者,-R:表示遞歸修改文件夾中的全部文件)

  b) 示例:

    修改文件全部者:chown atguigu test1.java

    遞歸改變文件全部者和全部組:chown -R atguigu:atguigu sunhouzi/

4. chgrp改變所屬組:
  a) 基本語法:
    chgrp [最終用戶組] [文件或目錄]
  b) 示例:
    修改文件的所屬組:chgrp atguigu test1.java

5.7. 磁盤分區類

1. df查看硬盤:

  基本語法:df  選項       (功能描述:列出文件系統的總體磁盤使用量)

  選項說明:-h 以人們較易閱讀的GBytes, MBytes, KBytes等格式自行顯示

2. fdisk查看分區:

  基本語法:fdisk -l                  (功能描述:查看磁盤分區詳情)

  選項說明:-l                        顯示全部硬盤的分區列表

  經驗技巧:該命令必須在root用戶下才能使用

  功能說明:(Device:分區序列) (Blocks:容量)

5.8. 搜索查找類

1. find 查找文件或者目錄(find [搜索範圍] [選項]):

  a) -name<查詢方式>:按照指定的文件名查找模式查找文件

    例:find /opt/ -name *.txt

  b) -user<用戶名>:查找屬於指定用戶名全部文件

    例:find /opt/ -user atguigu

  c) -size<文件大小>:按照指定的文件大小查找文件

    按文件大小:在目錄下查找大於n兆的文件(+n 大於  -n小於  n等於)

    例:find /home -size +204800

2. grep 過濾查找及「|」管道符:

  a) 管道符,「|」,表示將前一個命令的處理結果輸出傳遞給後面的命令處理

  b) 基本語法:grep 選項 查找內容 源文件

  c) 選項說明:-n顯示匹配行及行號

  d) 示例操做:查找某文件在第幾行        ls | grep -n test

5.9. 進程線程類

進程是正在執行的一個程序或命令,每個進程都是一個運行的實體,都有本身的地址空間,並佔用必定的系統資源。

1. ps查看系統中全部進程:

基本語法

ps -aux | grep xxx

查看系統中全部進程

ps -ef | grep xxx 

能夠查看子父進程之間的關係

選項說明

-a

選擇全部進程

-u

顯示全部用戶的全部進程

-x

顯示沒有終端的進程

ps -aux顯示信息說明

%CPU

該進程佔用CPU資源的百分比,佔用越高,進程越耗費資源

%MEM

該進程佔用物理內存的百分比,佔用越高,進程越耗費資源

VSZ

該進程佔用虛擬內存的大小,單位KB

RSS

該進程佔用實際物理內存的大小,單位KB

STAT

進程狀態。常見的狀態有:R:運行、S:睡眠、T:中止狀態、s:包含子進程、+:位於後臺

ps -ef顯示信息說明

UID

用戶ID

PID

進程ID

PPID

父進程ID

2. kill終止進程

基本語法

kill  [選項] 進程號

經過進程號殺死進程

killall 進程名稱

經過進程名稱殺死進程

選項說明

-9

表示強迫進程當即中止

實例操做

殺死指定進程號

kill -9 5102

經過進程名稱殺死進程

killall firefox

3. pstree查看進程樹:

基本語法

pstree [選項]

選項說明

-p

顯示進程的PID

-u

顯示進程的所屬用戶

實例操做

顯示進程pid

pstree -p

顯示進程所屬用戶

pstree -u

4. top 查看系統健康狀態:

基本命令

top [選項]   

選項說明

-d 秒數

指定top命令每隔幾秒更新。默認是3秒

操做說明

P

以CPU使用率排序,默認就是此項

M

之內存的使用率排序

N

以PID排序

q

退出top

  在第2行中zombie爲殭屍進程,若是不是0,須要手工檢查殭屍進程。

5. netstat顯示網絡統計信息:

基本語法

netstat -anp

用來顯示整個系統目前的網絡狀況

選項說明

-an

按必定順序排列輸出

-p

表示顯示哪一個進程在調用

實例操做

查看端口50070的使用狀況

netstat -anp | grep 50070

5.10. 壓縮和解壓類

在Linux中壓縮和解壓有gzip/gunzip壓縮,zip/unzip壓縮和tar打包等方法,但在大數據中通常不會使用這些,有本身的壓縮和解壓方法,但在網絡上下載的Linux的文件通常使用tar解壓,因此只要對tar有所瞭解就夠了。

基本語法

tar  [選項]  XXX.tar.gz  將要打包進去的內容

選項說明

-c

產生.tar打包文件

-v

顯示詳細信息

-f

指定壓縮後的文件名

-z

打包同時壓縮

-x

解包.tar文件

實例操做

壓縮多個文件

tar -zcvf test.tar.gz test1.java test.java

壓縮目錄

tar -zcvf test.java.tar.gz test1

解壓到當前目錄

tar -zxvf test.tar.gz

解壓到指定目錄

tar -zxvf test.tar.gz -C /opt

5.11. crond系統定時任務

1. 選項說明:

選項

功能

-e

編輯crontab定時任務

-l

查詢crontab任務

-r

刪除當前用戶全部的crontab任務

  2. 參數說明:  

  

3. 具體操做:

時間 

含義

45 22 * * * 命令

在22點45分執行命令

0 17 * * 1 命令

每週1 的17點0分執行命令

0 5 1,15 * * 命令

每個月1號和15號的凌晨5點0分執行命令

40 4 * * 1-5 命令

每週一到週五的凌晨4點40分執行命令

*/10 4 * * * 命令

天天的凌晨4點,每隔10分鐘執行一次命令

0 0 1,15 * 1 命令

每個月1號和15號,每週1的0點0分都會執行命令。注意:星期幾和幾號最好不要同時出現,由於他們定義的都是天。很是容易讓管理員混亂。

  4. 重啓crontab,啓動定時任務:

    /bin/systemctl restart crond.service     或          service crond restart

6. 軟件包管理

6.1. RPM軟件包

1. RPM概述:

  RPM(RedHat Package Manager),Rethat軟件包管理工具,相似windows裏面的setup.exe是Linux這系列操做系統裏面的打包安裝工具,它雖然是RedHat的標誌,但理念是通用的。RPM包的名稱格式以下:

  Apache-1.3.23-11.i386.rpm

    -       「apache」 軟件名稱

    -       「1.3.23-11」軟件的版本號,主版本和此版本

    -       「i386」是軟件所運行的硬件平臺

    -       「rpm」文件擴展名,表明RPM包

2. RPM查詢命令:

  a) 基本語法:rpm -qa                (功能描述:查詢所安裝的全部rpm軟件包)

  b) 經驗技巧:因爲軟件包較多,會採起過濾。rpm -qa | grep rpm軟件包

  c) 查詢firefox軟件安裝狀況:rpm -qa |grep firefox

3. RPM卸載命令:

  a) 基本語法:(1) rpm -e RPM軟件包     (2) rpm -e --nodeps 軟件包 

  b) 選項說明:

    -e:卸載軟件包

    --nodeps:卸載軟件時,不檢查依賴(比較少使用)

  c) 實例操做:卸載firefox軟件       rpm -e firefox

4. RPM安裝命令:

  a) 基本語法:rpm -ivh RPM包全名

  b) 安裝firefox軟件:rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm

相關文章
相關標籤/搜索