Linux 入門筆記


一開始對linux總有些抵觸,黑黑的命令框不知道如何下手,這次因為工作交接的緣故需要負責之前同事的Node后端部分,node,redis這些都是部署在Linux上的,看了幾次運維的同學噼里啪啦的敲命令,黑的白的一閃一閃,我都還沒看清楚敲的啥,敬佩之情油然而生。沒辦法,不能慫啊,於是開始學Linux,先裝個虛擬機自己玩起。

環境准備

1.安裝VMware Workstation

這個不解釋了

2.安裝centos

設置好root賬戶和一個常用賬戶

基礎知識

Linux都是命令操作,命令很多不好記,可以用man 來查看一個命令的用法。遇到很長的命令,用tab鍵可以補全。以下只是根據我自己的習慣分類的。內容基本上都是來自鳥哥的私房菜基礎篇,該書篇幅甚巨,有時間可以細研。

 1.登錄

[Ctrl] + [Alt] + [F1]~[F6] 表示6個終端。命令窗口和圖像窗口可以通過[Ctrl] + [Alt] + [F1]和[Ctrl] + [Alt] + [F2]來切換。exit 退出當前用戶。
常用賬戶沒有安裝權限,可以用su切到root賬戶。
這樣root登錄后還是在當前環境。 root是整個系統權限最高的賬戶,所以一般還是不要使用root。
 
但是root密碼忘記了咋整? 難道要重新安裝。鳥哥私房菜中給出了方法:以單人維護模式登錄就可以修改root密碼。
重啟虛擬機,在讀秒的時候按下任意鍵進入下面的界面:
按下e進入編輯模式,將光標移動到kernel那一行,再按下e 進入該行的編輯
最后加上一個 single進入單人維護模式,然后按下enter 再按下b
這個時候相當於以root的身份獲得了控制權。然后輸入passwd 就可以修改密碼了。登錄的時候記住用戶名是root而不是自定義的stone。 
但是又覺得用這個方式不是可以修改別人機器的root密碼了嗎?

2.關機重啟

shutdown -h now// 馬上關機
shutdown -r now //立即重啟

shutdow是常用的,如果是root 還可以用init,Linux 共有七種執行等級 先看這四種

run level 0:關機
run level 3:純文本模式
run level 5:有圖形接口模式
run level 6:重新啟動

所以可以這樣關機:

init 0// 關機

重啟同理。 reboot,poweroff 也可以。

3.文件目錄

目錄是很常用的命令部分
. //代表此層目錄
..// 代表上一層目錄
- //代表前一個工作目錄
~ //代表當前用戶所在目錄
cd://切換目錄( Change Directory)
pwd: //顯示當前目錄( Print Working Directory)
mkdir://建立一個新的目錄
mkdir -p test1/test2/ // 建立多個目錄
rmdir://刪除一個空目錄。有子目錄會提示
rmdir -p test1/test2 //有子目錄一次刪除。只刪除空目錄。
rm -r test  //不管test為不為空 都刪掉。
echo $PATH  //顯示系統路徑
mv  text.txt  //text1 把text.txt 從當前目錄移到text1
mv text.txt  .. //把text.txt 從當前目錄移動到 上級目錄。
mv text.txt t1.txt //重命名為t1.txt  
cp  //復制檔案與目錄。
cp -r test1 test2  //如果 test1下面還有別的目錄 就要用 -r

我們可以通過ls命令查看當前目錄下面有哪些文件。 ls -al //列出所有文件的權限與屬性。包含隱藏的。

ll會列出所有文件的權限及大小信息,第一列,-表示文件,d表示目錄。r表示read,w表示可寫,x表示可執行。

[-][rwx][r-x][r--]
1   234 567 890
1 為:代表這個文件名為目錄 ;
234 為:擁有者的權限,本例中為可讀、可寫、可執行(rwx);
567 為:同群組用戶權力,本例中為可讀可執行(rx);
890 為:其他用戶權力,本例中為可讀(r)
一個linux檔案能不能執行,與他的第一欄的十個屬性有關。與文件名沒有一點關系。只要權限中有x的話就能執行。但不代表可執行成功

 4.壓縮與解壓

 *Z, *.tar, *.tar.gz, *.zip, *.tgz: 等都表示壓縮文件。不同的名稱是因為不同的壓縮的方式不同。只需要記住tar命令就行了。

 tar [-j|-z] [cv] [-f 文件或目錄] filename

比如: $ tar -zcv -f t.tar.gz t1.txt 。-j和-z代表不同壓縮算法。-j表示是用bzip2方法來壓縮,其后綴也建議是*.tar.bz2 -z表示是gzip的方式壓縮。 建議的后綴是*.tar.gz。

-c 表示壓縮,-v表示顯示檔案中的名稱。解壓:

tar [-j|-z] [xv] [-f 文件或目錄] [-C 目錄] 

x表示解壓。-C表示解壓到指定的目錄。

這次還有.xz后綴的。比如node的二進制安裝包。 node-v6.10.2-linux-x64.tar.xz

需要先:

xz -d node-v6.10.2-linux-x64.tar.xz

解壓成.tar。然后再用tar解壓。

可以用zcat 查看被壓縮的文件內容。

5.文本編輯

1) nano

nano  xx.txt //打開或新建一個名為xx的text。  ctrl+O  保存,f2或者ctrl+x 退出。

完了可以通過cat查看內容。

cat xx.txt

2) vi編輯器

所有Unix like系統都會內建vi 文書編輯器。
vi test.txt //創建一個文檔。
按下 i, o, a 等字符就可以進入編輯模式了。
按ctrl + c 退出編輯,可輸入命令模式
再輸入:wq 保存並離開。這個命令表示寫入和離開,也可以分開用。強制可以加上!
/word //進行搜索。
?word //直接定位到word字符串。
yy //復制光標所在的一行。
p  //粘貼數據。
x  //刪除數據
u  //撤銷
Ctrl+r // 重做。

3) vim 

vim有程序編輯能力,能高亮。
 
同樣是ctrl+c 進入命令模式
set nu 設置行號。
set nonu 取消行號
當我們按下 v 或者 V 或者 [Ctrl]+v 時, 這個時候光標移動過的地方就會開始變白,表示選中。然后按下y就是復制了。按p就能粘貼。

6.程序管理

在Linux系統中,觸發任何一個事件時,系統都會將它定義成為一個程序,並且給予這個程序一個ID,即PID。
PPID表示他的父程序ID,老實說,Linux幾乎可以說不會當機。因為他可以在任何時候,將某個困住的程序殺掉。然后重新執行改程序而不用重新啟動。假設界面死掉,你可以隨意的按Alt+F1--F7 切到其他終端機界面,然后以ps -aux 找出出錯的程序,然后kill一下。
kill -signal % jobNumber
-1 重新讀取一次參數的配置文件,類似於reload。
-2 代表與鍵盤輸入ctrl+c 一樣的操作。
-9 立刻強制刪除一個工作。
-15 以正常方式終止一項工作。
如果想在背景工作的程序在注銷后還能繼續運行,就用nohup搭配&  這個在我們啟動redis服務的時候用到。
ps aux  觀察系統所有的程序數據。
A 所有的process均顯示出來。
-a 不與終端有關的所有process。
-u 有效使用者相關的process
x 列出完整的信息。
-l 僅僅觀察自己的bash相關程序。
 
top 動態觀察程序變化
相對於ps是一個時間點的程序狀態,top是持續偵測程序運作的狀態。
top -d | top [-bnp]
-d 表示秒數,預設是3秒。
-b是批次執行top。n表示執行幾次。-p表示指定某個PID進行觀測。
按q退出。
free //直接查看內存情況

uname //查看系統信息
-a :所有系統相關的信息,包括底下的數據都會被列出來;
-s :系統核心名稱
-r :核心的版本
-m :本系統的硬件名稱,例如 i686 或x86_64 等;
-p :CPU 的類型,不 -m 類似,叧是顯示的是 CPU 的類型!
-i :硬件的平台 (ix86)
ifconfig eth0 // 確認網絡是否可行

ping

確定路由是ok的。可以通過 dig 域名 來看DNS解析

7.Bash

查看變量環境變量:
echo $PATH
定義變量
echo $myname
myname=VBird   //等號兩邊不能留空格
echo $myname 
通常大些字母為系統默認變量,小寫為自定義變量。
可以用變量定義一個目錄。不過退出之后就沒有了。可以用來編寫linux腳本
read來定義一個變量,並接受用戶的輸入作為值。
第二行為輸入內容。
read -p "Please keyin your name: " -t 30 named
還可以輸入提示和時間計時。
declare [-aixr] variable  //申明變量類型
a是數組,i是數字,x是定義為環境變量,r是只讀。
grep 是一個很常見也很常用的指令,他最重要的功能就是進行字符串比較。將符合要求的打印出來。

Xshell

Xshell真是個好東西,linux上默認的命令框操作總感覺束縛着。不能像windows那樣復制粘貼,窗口切換也麻煩。Xshell用起來很舒服
可以通過新建會話鏈接機器,按照提示輸入ip和賬戶及密碼。記住之后,下次可以直接打開。也可以在地址欄中輸入ip進行鏈接。也可以通過命令
ssh 192.168.92.128

灰常的方便,還可以在工具里面選擇配色方案:

linux小菜鳥瞬間上了個檔次。別說我還是瞄的運維人員的。嘿嘿。主要確實方便,可以復制(選中右鍵),可以粘貼(shift+ insert).安裝軟件還有進度條。 

軟件安裝 

 要用的時候到來了,如何裝個noed呢?

 1.安裝node

 最好先用 uname -r 看一下自己的系統。因為linux的64並不兼容32.

 

 我是64的,下了個32位的一直跑不起來。會出現 libstdc++.so.6 相關錯誤。無法運行node。

 

 用wget 獲取壓縮包:

wget --no-check-certificate  https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-x64.tar.xz

 --no-check-certificate是用來忽略掉證書檢查。 下載完成后,tar.xz 的文件先要解壓成 .tar的

xz -d node-v6.10.2-linux-x64.tar.xz

然后 用tar解壓:

然后進入解壓后的bin目錄

執行./node -v 能得到版本說明對了。但是還需要設置下全局變量,才好用。需要先用su命令切到root

然后打開profile。將node的目錄插進去:

再保存就好了。 可以用echo進行查看:

在看下node版本。ok了。

2.安裝redis

剛才node下載下來直接是可以用的二進制,其實很多軟件還需要我們自己編譯的。下載redis

wget http://download.redis.io/releases/redis-3.2.8.tar.gz

再進行解壓:

tar xzf redis-3.2.8.tar.gz

再進入目錄 

cd redis-3.2.8

進行make:

make

這個時候如果src目錄下面沒有出現redis-server

 

說明安裝失敗了。如果出現 make cc command not found 錯誤
yum install gcc

需要安裝gcc。如果運行redis-server出現  You need tcl 8.5 or newer in order to run the Redis test  錯誤 

yum install tcl

需要安裝tcl。沒辦法,這個minmal的centos 還是缺不少東西的。但都體驗一遍也挺好。

在運行 src/redis-server:
說明服務啟動成功了。注意后面的&號,這樣不阻塞界面。再試下redis-cli 
讀寫也正常了。
 
可以再建一個work目錄,用npm 安裝一個redis 模塊。再用vim 新建一個app.js。
var redis=require('redis');
var client=redis.createClient();

client.on('connect',function(){
 console.log('redis connected');
 client.set('author','stoneniqiu',redis.print);
 client.get('author',redis.print);
});

ok,運行:

現在可以獨自愉快的玩耍了。
 
 小結:一開始學linux的時候感覺windows真是偉大的產品,多么人性的設計。學了幾天linux,也覺得這也挺好玩的。以上只是個人的入門筆記。
 
 參考:
linux部署node:http://www.cnblogs.com/dubaokun/p/3558848.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM