原文地址:https://zhuanlan.zhihu.com/p/36801617
只有光頭才能變強
這個學期開了Linux的課程了,授課的老師也是比較負責任的一位。總的來說也算是比較系統地學習了一下Linux了~~~
本文章主要是總結Linux的基礎操作以及一些簡單的概念~如果不熟悉的同學可下個Linux來玩玩(或者去買一個伺服器玩玩【學生版的不是很貴】),對於開發者來說,能使用Linux做一些基本的操作是必要的!
那麼接下來就開始吧,當然了我的Linux僅僅是入門水平,如果有錯的地方還需請大家多多包涵,並不吝在評論區指出錯誤~
相信大部分人的PC端都是用Windows系統的,那我們為什麼要學習Linux這個操作系統呢???Windows圖形化界面做得這麼好,日常基本使用的話,學習成本幾乎為零。
而Linux不一樣,可能剛接觸Linux的人會認為:Linux好麻煩哦,不好玩,都是字元界面。不直觀、這個破系統是用來幹嘛的~~
日常用的話Windows是比較順手的,但是我們要知道的是:我們開發出來的程序一般都是放在Linux下運行的。
那可能就會有人提出疑問了:Windows同樣是操作系統,為啥要放在Linux下,而不放在Windows下呢??相信Windows也是可以運行我們寫出來的程序的。
我總結了Linux的幾個優點:
參考資料:
所以開發者選擇了Linux來跑我們自己寫出來的程序。
Linux系統的組成:
除了Shell、其他的都應該挺好懂的,那麼Shell是什麼東西呢???
Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種介面(命令解釋器)
Shell可以執行:
使用type命令可以區分內部命令和外部命令
type
於是乎,我們利用Shell就可以干下面這些事了:
Shell的主要版本有以下這麼多:
使用ps命令觀察正在執行的shell
ps
在Windows下,會有基本的目錄結構的:
Linux下也不例外了,也是有基本的目錄結構的:
Linux 文件系統是一個目錄樹的結構,文件系統結構從一個根目錄開始,根目錄下可以有任意多個文件和子目錄,子目錄中又可以有任意多個文件和子目錄
cmd [options] [arguments],options稱為選項,arguments稱為參數
cmd [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
.
..
~
絕對路徑:
相對路徑 :
tips:輸入命令的時候要常用tab鍵來補全
ls
mkdir
rmdir
touch
cp
mv
rm
ln
find
file/stat
cat:
more:
less:
tail -10
head -20
echo
管道命令 |
ls -la | 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這些查看文本文件的命令了,但是我想快速查看這個文本文件下的某些關鍵字是否存在,那怎麼辦???
cat、more、less、tail
在Windows下就比較簡單的,幾乎所有的文本編輯器(記事本)都支持CTRL+F,往裡面輸入關鍵字就可查找出來:
CTRL+F
那在Linux下,沒有圖形界面,沒有CTRL+F的情況下,如果不懂一些命令的話,那還真是難找對應的字元出來。下面我就來說說如何快速查找一個文本文件下的某些字元。
首先我們就來說說正則表達式,如果接觸過的同學就知道:這玩意並不好記。一旦不用就很容易就忘記了,所以只能在用的時候查查了~~~所以下面我就直接給出一些規則了,不多說啦。
grep(global search regular expression)是一個強大的文本搜索工具。grep 使用正則表達式搜索文本,並把匹配的行列印出來。
格式:grep [options] PATTERN [FILE...]
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 [-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
ZQ
/和?
n
yy
dd
x
u
在 Normal 模式下輸入插入命令 i、 a 、 o進入insert模式。用戶輸入的任何字元都被vim當做文件內容保存起來,並將其顯示在屏幕上。
i、 a 、 o
Normal 模式下,用戶按冒號 :即可進入 Command 模式,此時 vim 會在顯示窗口的最後一行 (屏幕的最後一行) 顯示一個 「:」 作為 Command 模式的提示符,等待輸入命令。
:
:w
:wq
:q!
:q
設置Vi環境:
在用戶主目錄下,執行vi程序,編輯文件install.log;移動游標到第10行,第五個字元;按大寫字母G,達到文件末尾;不存檔退出;
在用戶主目錄下,執行vi程序,編輯文件install.log;用/命令查找字元串sudo,複製包含字元串sudo的行
在用戶主目錄下,執行vi程序,編輯文件install.log;進入命令模式,設置顯示行號;用?命令查找字元串openssh,用命令n查找下一個
本文主要講解了Linux的最基礎的知識,可以簡單地操作Linux了。命令可以說是學不完的,只能是記住Linux是有這個功能,到時候去網上查查也很方便。
主要是多練、多玩就可以記住一些常用的Linux命令了~~~~
TAG:Linux |