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 共有七種執行等級 先看這四種html

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

因此能夠這樣關機:node

init 0// 關機

重啓同理。 reboot,poweroff 也能夠。linux

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 //列出全部文件的權限與屬性。包含隱藏的。c++

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

[-][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。shell

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

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

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

此次還有.xz後綴的。好比node的二進制安裝包。 node-v6.10.2-linux-x64.tar.xzwindows

須要先:

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
相關文章
相關標籤/搜索