只有光頭才能變強node
這個學期開了Linux的課程了,授課的老師也是比較負責任的一位。總的來講也算是比較系統地學習了一下Linux了~~~linux
本文章主要是總結Linux的基礎操做以及一些簡單的概念~若是不熟悉的同窗可下個Linux來玩玩(或者去買一個服務器玩玩【學生版的不是很貴】),對於開發者來講,能使用Linux作一些基本的操做是必要的!web
那麼接下來就開始吧,固然了個人Linux僅僅是入門水平,若是有錯的地方還需請你們多多包涵,並不吝在評論區指出錯誤~正則表達式
相信大部分人的PC端都是用Windows系統的,那咱們爲何要學習Linux這個操做系統呢???Windows圖形化界面作得這麼好,平常基本使用的話,學習成本幾乎爲零。shell
而Linux不同,可能剛接觸Linux的人會認爲:Linux好麻煩哦,很差玩,都是字符界面。不直觀、這個破系統是用來幹嗎的~~express
平常用的話Windows是比較順手的,可是咱們要知道的是:咱們開發出來的程序通常都是放在Linux下運行的。編程
那可能就會有人提出疑問了:Windows一樣是操做系統,爲啥要放在Linux下,而不放在Windows下呢??相信Windows也是能夠運行咱們寫出來的程序的。vim
我總結了Linux的幾個優勢:windows
參考資料:安全
因此開發者選擇了Linux來跑咱們本身寫出來的程序。
Linux系統的組成:
除了Shell、其餘的都應該挺好懂的,那麼Shell是什麼東西呢???
Shell是系統的用戶界面,提供了用戶與內核進行交互操做的一種接口(命令解釋器)
Shell能夠執行:
使用type
命令能夠區分內部命令和外部命令
因而乎,咱們利用Shell就能夠幹下面這些事了:
或$( ) )Shell的主要版本有如下這麼多:
使用ps
命令觀察正在執行的shell
在Windows下,會有基本的目錄結構的:
Linux下也不例外了,也是有基本的目錄結構的:
Linux 文件系統是一個目錄樹的結構,文件系統結構從一個根目錄開始,根目錄下能夠有任意多個文件和子目錄,子目錄中又能夠有任意多個文件和子目錄
cmd [options] [arguments]
,options稱爲選項,arguments稱爲參數
選項和參數都做爲Shell命令執行時的輸入,它們之間用空格分隔開。
通常來講,後面跟的選項若是單字符選項前使用一個減號-
。單詞選項前使用兩個減號--
ls -a
和ls -all
,a
單個字符使用一個-
,一個單詞all
使用兩個--
在Linux中,可執行的文件也進行了分類:
學過一些正則表達式的或者有點基礎的同窗對通配符應該就不陌生的了,在Linux也有通配符(在搜索的時候挺有用的)
在Linux下文件的類型有這麼多:
-
d
l
c
b
s
p
咱們常見的就是普通文件,目錄和符號連接。其餘的瞭解一下便可~
符號連接參考資料:
可能在網上查閱資料的時候會出現用戶主目錄這麼一個名詞,那他是什麼呢???
前面已經說了,咱們的Linux是多用戶的網絡系統!因此,咱們能夠在Linux下建立多個用戶,每一個用戶都會有本身專屬的空間。
/home/
目錄下/home/osmond
用戶對本身主目錄的文件擁有全部權,能夠在本身的主目錄下進行相關操做。
上面說了一堆的基礎概念,這是給咱們敲命令以前打了一點基礎,在敲命令的同時也會遇到一些比較重要的知識點的。那就到時候再說說了~~~
這是咱們使用得最多的命令了,Linux最基礎的命令!
pwd
命令查看用戶的當前目錄cd
命令來切換目錄.
表示當前目錄..
表示當前目錄的上一級目錄(父目錄)-
表示用 cd 命令切換目錄前所在的目錄~
表示用戶主目錄的絕對路徑名絕對路徑:
相對路徑 :
tips:輸入命令的時候要經常使用tab鍵來補全
ls
:顯示文件或目錄信息mkdir
:當前目錄下建立一個空目錄rmdir
:要求目錄爲空touch
:生成一個空文件或更改文件的時間cp
:複製文件或目錄mv
:移動文件或目錄、文件或目錄更名rm
:刪除文件或目錄ln
:創建連接文件find
:查找文件file/stat
:查看文件類型或文件屬性信息cat:
查看文本文件內容more:
能夠分頁看less:
不只能夠分頁,還能夠方便地搜索,回翻等操做tail -10
: 查看文件的尾部的10行head -20
:查看文件的頭部20行echo
:把內容重定向到指定的文件中 ,有則打開,無則建立管道命令 |
:將前面的結果給後面的命令,例如:ls -la | wc
,將ls的結果加油wc命令來統計字數重定向 > 是覆蓋模式,>> 是追加模式
,例如:echo "Java3y,zhen de hen xihuan ni" > qingshu.txt
把左邊的輸出放到右邊的文件裏去學了這些命令咱們能幹嗎?其實就是在Windows下複製文件、粘貼文件、建立文件、查看文件這幾種~~~
鞏固一下基礎,來作作題目:
bash 程序
;命令
、 選項
、 參數
;單字符
,選項前爲雙減號(--),後面通常爲 單詞
;? * []
;列出指定目錄下的全部以w開頭的文件或目錄
;列出指定目錄下的以w開頭名稱長度爲3的全部文件或目錄
;列出指定目錄下的文件名以x或y或z開頭的全部文件或目錄
;列出指定目錄下的文件名不以a到h區間字母開頭的全部文件或目錄
;當前目錄
;上一級目錄
;上一次工做目錄
;用戶主目錄
;硬連接
和 軟連接
;access time
、 modify time
、 change time
;進入/tmp目錄,創建一個文件,goldXX(XX爲學號的末兩位),查看文件的時間
在帳戶的主目錄中,創建一個dog目錄,進入dog目錄後,創建一個catXX(XX爲學號的末兩位)目錄,進入catXX目錄,顯示當前目錄;而後返回上一級目錄,刪除catXX目錄;
複製/etc/passwd文件到帳戶主目錄,修改帳戶主目錄下passwd爲passwdXX(XX爲學號的末兩位)
查找文件名叫作zcat的文件;複製該文件到/tmp目錄;用長格式列出該文件;而後刪除/tmp目錄下的全部文件,並檢查文件是否已被刪除
複製/etc/hosts文件到帳戶主目錄下;在帳戶主目錄中創建一個硬連接文件(文件名爲hostsYYY(YYY爲學生姓名拼音縮寫)),連接到主目錄下的hosts文件;分別查看hosts和hostsYYY的文件的inode信息
複製/usr/bin/vdir文件到帳戶主目錄下;在帳戶主目錄中創建一個軟連接文件(文件名爲newdir),連接到主目錄下的vdir文件;分別查看vdir和newdir的文件的inode信息
用長格式列出目錄/usr/bin目錄下的全部文件,輸出從新定向到文件outXX(XX爲學生學號末兩位),檢查結果;用長格式列出目錄/etc目錄下的全部文件,輸出結果補充到文件outXX末尾
用長格式列出/usr/bin目錄下的全部文件,經過管道與more命令鏈接,實現對文件列表的瀏覽
>和>>
有何區別?
答:>
是覆蓋方式重定向到新的文件;>>
是以補充方式,添加到原文件的末尾。
經過管道和more命令,瀏覽文件列表方便在哪裏?
答:對於文件列表超出一個屏幕顯示的狀況,這種方式能夠分屏瀏覽,比較方便。
在Windows操做系統下,咱們會使用WinRAR或者快壓等等的壓縮軟件來進行壓縮或者解壓。
在Linux下固然也存在壓縮或解壓的操做咯,下面咱們就來學習一下在Linux下是怎麼壓縮和解壓的!
壓縮的方式也是有好幾種,咱們經常使用的有下面這三種:
經常使用的壓縮的命令就有:
gzip filename
bzip2 filename
tar -czvf filename
經常使用的解壓命令有:
gzip -d filename.gz
bzip2 -d filename.bz2
tar -xzvf filename.tar.gz
上面咱們已經學過了cat、more、less、tail
這些查看文本文件的命令了,可是我想快速查看這個文本文件下的某些關鍵字是否存在,那怎麼辦???
在Windows下就比較簡單的,幾乎全部的文本編輯器(記事本)都支持CTRL+F
,往裏面輸入關鍵字就可查找出來:
那在Linux下,沒有圖形界面,沒有CTRL+F
的狀況下,若是不懂一些命令的話,那還真是難找對應的字符出來。下面我就來講說如何快速查找一個文本文件下的某些字符。
首先咱們就來講說正則表達式,若是接觸過的同窗就知道:這玩意並很差記。一旦不用就很容易就忘記了,因此只能在用的時候查查了~~~因此下面我就直接給出一些規則了,很少說啦。
grep(global search regular expression)是一個強大的文本搜索工具。grep 使用正則表達式搜索文本,並把匹配的行打印出來。
格式:grep [options] PATTERN [FILE...]
例子:
grep -n mystr myfile
grep '^[a-zA-Z]' myfile
grep -v '^#' myfile
grep -lr root /etc/*
用grep查找/etc/passwd文件中以a開頭的行,要求顯示行號;查找/etc/passwd文件中以login結束的行;
這裏感受要說說的就只有別名alias了,咱們下面看看例子就懂了!
顯示shell當前已經定義的別名;執行其中的兩個定義別名的命令;定義一個別名grep,要求其採用彩色方式顯示結果
在Windows下有用戶的環境變量,系統的環境變量。在Linux同樣也是有的。
Shell 變量大體能夠分爲三類:
varName=Value
export varName=Value
$varName
Shell變量的做用域:
export
內置命令將局部變量設置爲全局變量。 可使用 export
內置命令將全局變量設置爲局部變量。export命令:
export [-p]
export <變量名1=值1> [<變量名2=值2> ...]
export <變量名1> [<變量名2> ...]
export -n <變量名1> [<變量名2> ...]
Shell環境變量:
Shell變量:查詢、顯示和取消:
env
set
echo $NAME1 [$NAME2 ……]
unset <NAME>
定義Shell變量stuXX(XX爲學生學號末兩位),初值爲學生姓名全拼,用echo命令顯示stuXX變量的值;用unset命令取消stuXX變量,檢查結果;用env命令觀察當前有哪些已經定義好的shell環境變量
Shell環境變量的值是否能夠修改?爲何?
答:環境變量的值通常狀況下,能夠修改。但必定要慎重修改,由於一旦修改錯誤,對shell正常運行形成嚴重影響,甚至致使shell沒法運行。
相信沒有用過Linux的同窗在看一些段子的時候都會看到過兩個編輯器:
下面咱們學習如何簡單使用vi。vi 是 「Visual interface」 的簡稱,它能夠執行輸出、刪除、查找、替換、塊操做等衆多文本操做,並且用戶能夠根據本身的須要對其進行定製,這是其餘編輯程序所沒有的。
使用Vi來編輯文件:
Vi有三種模式:
G
用於直接跳轉到文件尾ZZ
用於存盤退出ViZQ
用於不存盤退出Vi/和?
用於查找字符串n
繼續查找下一個yy
複製一行p
粘帖在下一行,P粘貼在前一行dd
刪除一行文本x
刪除光標所在的字符u
取消上一次編輯操做(undo)在 Normal 模式下輸入插入命令 i、 a 、 o
進入insert模式。用戶輸入的任何字符都被vim當作文件內容保存起來,並將其顯示在屏幕上。
Normal 模式下,用戶按冒號 :
便可進入 Command 模式,此時 vim 會在顯示窗口的最後一行 (屏幕的最後一行) 顯示一個 「:」 做爲 Command 模式的提示符,等待輸入命令。
:w
保存當前編輯文件,但並不退出:w
newfile 存爲另一個名爲 「newfile」 的文件:wq
用於存盤退出Vi:q!
用於不存盤退出Vi:q
用於直接退出Vi (未作修改)設置Vi環境:
在用戶主目錄下,執行vi程序,編輯文件install.log;移動光標到第10行,第五個字符;按大寫字母G,達到文件末尾;不存盤退出;
在用戶主目錄下,執行vi程序,編輯文件install.log;用/命令查找字符串sudo,複製包含字符串sudo的行
在用戶主目錄下,執行vi程序,編輯文件install.log;進入命令模式,設置顯示行號;用?命令查找字符串openssh,用命令n查找下一個
本文主要講解了Linux的最基礎的知識,能夠簡單地操做Linux了。命令能夠說是學不完的,只能是記住Linux是有這個功能,到時候去網上查查也很方便。
主要是多練、多玩就能夠記住一些經常使用的Linux命令了~~~~
下面我就花點時間畫個Linux命令的腦圖(固然了,命令僅限因而本文章的知識點,等寫到用戶、網絡等知識點的時候再繼續補充上去!)
做者:Java3y連接:https://juejin.im/post/5af8329d518825426d2d3887來源:掘金著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。