當前位置:
首頁 > 最新 > linux學習筆記

linux學習筆記

linux是一種操作系統。

學習的目的:

掌握pc機上的Linux操作系統的使用,以及基本的開發環境的配置,和它的使用。

一:unix的歷史和來源

unix是一個大家庭,由它延生出不同版本和不同系統的類unix系統。

二:OS的組成

1)Kernel:OS的核心組成部分

管理硬體。

管理設備,內存,進程。

控制系統程序和系統硬體。管理交換空間,守護進程(精靈),文件系統。

2)Shell:是用戶和kernel之間的介面。起到翻譯或者解釋的功能

3)文件系統:將硬體和軟體都映射成文件。可以進行統一管理。

相對路徑:以當前路徑開頭的路徑。

相對點隨時發生改變

絕對路徑:以根目錄/開頭的路徑。

相對點不會發生改變

/:unix系統的根路徑

opt:第三方軟體

etc:系統配置

dev:計算機設備文件(用一些計算機編程語言打開文件,就可以對外圍設備進行操作)

usr:操作系統中自帶的對所有用戶都用的軟體

kernel(boot):內核程序

var:日誌信息,針對管理員使用的東西等

export(home):用戶專有的東西

二級及二級一下的目錄變化較大

eg:定位到user3的目錄

絕對/相對路徑

unix是多用戶操作系統

第二章:

1:crtl+alt+t

2.遠程退出:exit

3.修改普通用戶的密碼:passwd

修改普通用戶密碼的要求,對超級用戶沒有作用

1)密碼的長度6到8個字元

2)密碼至少包含2個字元和一個數字或者一個特殊字元

3)密碼不能和用戶名相同

4)新密碼和舊密碼至少有3個字元不同

第一次設置超級用戶的密碼:

sudo passwd root

輸入當前用戶的秘密

輸入修改秘密

再次輸入修改秘密

超級用戶的名字就是root

普通用戶切換到超級用戶:su

輸入超級用戶的密碼

超級用戶切換到普通用戶:exit

普通用戶的標識:$

超級用戶的標識:#

4.查看用戶信息

more /etc/passwd

用戶名:密文的佔位符:uid:gid:備註:用戶的家目錄:默認使用shell

sudo more /etc/shadow

密碼:超級用戶密碼

使用最小許可權原則:盡量使用普通用戶完成操作

sudo:使普通用戶臨時提升許可權

第三章

命令格式:Command [option(s)] [argument[s]]

command:命令關鍵字

options:可以有多個選項

arguments:可以有多個參數

注意:中間用空格隔開

單行命令一般不超過256個字元

大小寫敏感

不同的命令提示

1.clear 清屏

2.pwd 顯示當前絕對路徑

3.cd 改變路徑

跳到opt目錄下?

cd /opt

直接cd 回到家目錄

cd .

.是當前路徑

cd ..

..是上一層目錄

家目錄跳到opt目錄,使用相對路徑?

4.ls 顯示當前目錄下文件和目錄

ls / 顯示/目錄下文件和目錄

ls /home/candice 顯示家目錄下文件和目錄

ls -a 顯示隱藏文件

ls -R /etc 循環(子目錄中的信息顯示出來)顯示文件

ls -l /etc 顯示詳細信息

ls -t /etc 按照文件的最後一次的修改時間進行排序

1、有7種文件類型:

-:常規文件

d:目錄文件

l:鏈接文件(soft)(類似windows中的快捷方式)

c:字元設備文件(對應一個外圍設備)

b:(塊設備文件)(網路設備(不對應到文件))

p:(pipe) 管道文件 (一般見不到)

s:(socket)套接字文件

p、s兩種文件是為了解決進程間進行通信的文件

2、文件的許可權 (r w x)

文件的擁有者(許可權):凡是和這個文件的擁有者相同的UID的用戶,都是該文件的擁有者

文件的擁有組

三個許可權的組合: r w x

文件必須有x許可權,才可以進行搜索

chmod

chmod u+rwx,g+r

3、touch 新建文件

如果文件存在,就是修改文件的時間(修改文件的時間為系統的當前時間)

如果文件不存在,就是新建一個文件

4、mkdir 新建目錄

5、cp

cp[選項]文件1文件2

6、mv (剪切)移動 或者重命名

$mv a.txt aa.txt 重命名

$mv c.txt dir4 移動

-i 覆蓋前先進行詢問

源是文件、目錄;

目標是文件、目錄、不存在;

7、rm :刪除文件、目錄

-i或--interactive  刪除既有文件或目錄之前先詢問用戶

-r 刪除目錄

rmdir:刪除空目錄

8、man :專門用來查看命令手冊的

9.打包和壓縮命令

打包:是將多個文件,或目錄變成一個總的文件,文件不會變小,說不定還會變大,

增加一些附加的信息來註明文件的信息比如位置什麼的

歸檔

壓縮:將一個大的文件通過某個壓縮演算法變成小文件。注意壓縮只是對一個文件進行操作,

當要對多個文件進行壓縮時就要藉助於打包了,先打包再壓縮。

打包:

c:創建

x:提取

t:顯示tar包中的文件

v:顯示文件

f:使用文件名,在f後直接使用文件名,不能再跟參數

tar [cvf] all.tar a.txt b.txt c.txt 只是歸檔(打包),不壓縮

解包: (不加-C表示解包到當前目錄下)

tar [xvf] all.tar -C 目錄

tar cvfz a.tar.gz file1 file2 file3 (gzip格式)

tar xvfz a.tar.gz

注意:如果加 z 參數,則以 .tar.gz 或 .tgz 來代表 gzip 壓縮過的 tar file

tar cvfj a.tar.bz2 file1 flie2 (bzip2格式)

tar xvfj a.tar.bz2 -C 目錄

壓縮:

zip filename.zip filename(s)

解壓縮:

unzip filename (如果要解壓到指定目錄,可以加上 -d 選項 )

鏈接文件(軟連接 硬連接) ln [-s(軟連接 symbopllc) source_file destination_file]

ln b.txt bb.txt

硬鏈接 (目錄不能建硬鏈接 硬鏈接不能跨分區)

ls b.txt bb.txt (查看編號是否一致) ---》 (937655 bb.txt 937655 b.txt 表示硬鏈接就是起了別名)

軟連接

ln -s b.txt bb.txt (所有的軟連接都是以l開頭 文件大小和源文件不一致 是一個獨立的文件類型)

第四章

1、元字元:鍵盤可以輸入的對shell具有特殊含義的字元

可以指代其他字元的字元(具有特殊含義的字元)

*--通配0到多個字元

?--通配單個字元

[]---匹配中括弧中任意一個字元

;--連接多個命令

date--查看當前系統時間

cal--查看當月月曆 cal 3 2012:查看某年某月月曆

command > file

--重定向命令的輸出到文件中(默認輸出到終端)

command < file

--重定向輸入為文件(默認是鍵盤)

command >> file

--重定向追加輸出,保留原有文件的內容

:管道

將一個命令的輸出作為另一個命令的輸入

第五章

cat:連接文件或標準輸入並列印。

這個命令常用來顯示文件內容,

或者將幾個文件連接起來顯示,

或者從標準輸入讀取內容並顯示,

它常與重定向符號配合使用

cat > filename

>(表示輸出重定向)

cal > a.txt

cal >>a.txt(追加性重定向)

cat (巧完成以後等待標準輸入進行輸入)

cat < ./s.txt(表示cat的來源不是標準輸入而是s.txt文件)

Ctrl+D(表示輸入結束)

Ctrl+C(表示終止當前命令)

MODULE 5讀文本操作

---------------------------------------

cat /dev/null

cp a.txt /dev/null --拷貝的任何內容都消失

/dev/null---unix黑洞

cat /dev/null > b.txt --清空b.txt文件內容

清空文件另一方法 : > b.txt

more--分屏顯式

head--顯式文件的前N行

tail--顯式文件的後N行

不加參數默認顯式10行

調用vi

vi filename打開或創建一個文件

vi打開一個新文件, 最後才取名

h(向左),j(向下),k(向上),l(向右)

i在游標當前位置插入

a在游標所在位置後插入

o在游標所在行下插入一空行

退出插入狀態

delete text

x刪除一個字元

dw刪除當前詞(沒辦法識別所有的英文單詞,是連續多個字母,當碰到標點符號時,為一個詞)

3dw刪除三個詞

dd刪除當前行(從游標所在行開始)

5dd刪除五行(從游標所在行開始)

:5,10d (底行模式:5到10行刪除)

change text:

r替換一個字元

cw替換一個單詞

cc替換一行

C替換從游標至行尾

copy text :

yw拷貝詞(游標放在一個單詞的開始位置)(p:在游標的下個位置黏貼;

P:在游標的上個位置)

yy拷貝行(或Y)

p當前行下粘貼

:1,2co3拷貝行1,行2在行3之後

:4,5m6移動行4,行5在行6之後

save quit text:

:w存檔

:w newfile存成新文件

:wq存檔退出Vi(或ZZ,或:x先檢測有沒有改變,如果沒有改變,不存檔)

:q!強行退出不存檔

~改變大小寫

J把當前行和下一行連起來

G直接到行未

u廢除剛才的編輯操作(undo)(存檔退出,不能廢除)

:set nu顯示行代碼 (:set nonu)

:21游標停在指定行

21G游標停在指定行 (G 到文件尾,1G 到文件頭)

/串從當前行往下查找

?串從當前行往上查找

n查找繼續

:r file2在游標所在位置插入另一個文件

:1,$s/舊串/新串/g替換全文(或 :$s/舊串/新串/g)

$:表示最後一行

:split(橫向切割)

:vsplit(縱向切割)

Ctrl+ww(跳轉游標到另一個窗口)

:close(首先將游標跳轉到此窗口然後執行:close 進行關閉)

: open xxxxxx(表示裝載另一文件)

1.打包和壓縮命令

打包:是將多個文件,或目錄變成一個總的文件,文件不會變小,說不定還會變大,

增加一些附加的信息來註明文件的信息比如位置什麼的

壓縮:將一個大的文件通過某個壓縮演算法變成小文件。注意壓縮只是對一個文件進行操作,

當要對多個文件進行壓縮時就要藉助於打包了,先打包再壓縮。

打包:

c:創建

x:提取

t:顯示tar包中的文件

v:顯示文件

f:使用文件名,在f後直接使用文件名,不能再跟參數

tar [cvf] all.tar a.txt b.txt c.txt 只是歸檔(打包),不壓縮

解包: (不加-C表示解包到當前目錄下,加-c表示解包到指定目錄下)

tar [xvf] all.tar -C 目錄

tar cvfz a.tar.gz file1 file2 file3 (gzip格式)

tar xvfz a.tar.gz

注意:如果加 z 參數,則以 .tar.gz 或 .tgz 來代表 gzip 壓縮過的 tar file

tar cvfj a.tar.bz2 file1 flie2 (bzip2格式)

tar xvfj a.tar.bz2 -C 目錄

壓縮:

zip filename.zip filename(s)

解壓縮:

unzip filename (如果要解壓到指定目錄,可以加上 -d 選項 )

鏈接文件(軟連接 硬連接) ln [-s(軟連接 symbopllc) source_file destination_file]

ln b.txt bb.txt

硬鏈接 (目錄不能建硬鏈接 硬鏈接不能跨分區)

ls b.txt bb.txt (查看編號是否一致) ---》 (937655 bb.txt 937655 b.txt 表示硬鏈接就是起了別名)

軟連接

ln -s b.txt bb.txt (所有的軟連接都是以l開頭 文件大小和源文件不一致 是一個獨立的文件類型)

2.id:查用戶的信息

id root

id -a root

顯示當前已登錄本系統的所有用戶信息

who用來查詢目前有那些人在線上。

w用來查詢目前有那些人在線上,同時顯示出那些人目前的工作。

. 顯示你真實的用戶ID

who am i

. 僅顯示當前登錄用戶名

whoami

3、find:根據指定的條件從文件系統中搜尋指定的文件或目錄,然後做處理

find /export/home/html -name "*.html" -print xargs

-exec command {} ; 將查到的文件執行command操作,{} 和 ;之間有空格

-print:find命令將匹配的文件輸出到標準輸出。

-name filename #查找名為filename的文件

-perm #按執行許可權來查找

-user username #按文件屬主來查找

-mtime -n +n #按文件更改時間來查找文件,-n指n天以內,+n指n天以前

-atime -n +n #按文件訪問時間來查

-type b/d/c/p/l/f #查是塊設備、目錄、字元設備、管道、符號鏈接、普通文件

find / -name 「per*」

find . -mtime 10 -print

find /etc -user 0 -size +400 -print

find ~ -perm 777 > ~/holes

find /export/home -type f -atime +365 -exec rm {} ;

find ~ -name "*.txt" -type f -exec cat {} ;

xargs cat (xargs後邊一定是跟上其他命令不單獨使用)

find ~ -name "*.txt" -type f -print xargs rm

find ~ -name "*.txt" -type f -print xargs cat

perl(根據某一個文件做模式處理)

perl -p -i.bak -e "s/Copyright 2004/Copyright 2005/g;"

對一個文件先備份成i.bak然後執行後邊的替換操作 -e執行

將當前目錄下的java源文件中的小寫的helloworld一律替換成大寫的HELLOWORLD

perl -p -i.txt -e "s/helloworld/HELLOWORLD/g;" "*.java"

eg:sudo find -name "p.bak" xargs perl -p -i.lihong -e "s/":"/"#"/g;"

4、grep:從管道或文件中搜尋所滿足條件的行

5、wc:從文件或管道中統計行數、字元個數、單詞個數

wc[options] filename(s)

-l 行數

-w 單詞個數

-c 字元數

2 3 19 b.txt

6、ps:用來查看系統中正在運行的進程的信息

什麼是進程:一個程序的運行過程

ps -e :查看正在運行的進程(運行過程中、就緒狀態下的)

ps -f:詳細信息

eg:

lihong 2709 2571 0 05:07 pts/2 00:00:00 cat

用戶PID PPID啟動時間 tt 運行時間 哪個程序文件

tt:表示該進程是從哪個控制台啟動的。(可以是 pts/num或者?) ?:不是用戶啟動的,

是系統運行時自動啟動的進程 kill

7、# ping –s host2 看看網路通不通。

8、telnet

- telnet伺服器模擬一個終端允許你連接並工作於一個遠端系統上

- 使用TCP/IP連接於另一個系統

9、ftp

使用 ftp 複製或傳送文件 ftp(File Transfer Protocol)允許用戶對遠地主機複製文件,

用戶毋須考慮操作系統類型,即能向或從任何具有 TCP/IP 的系統複製文件。

ftp命令允許複製目錄中的一個文件或所有文件,但不能複製多層 次目錄。

使用ftp時, 必需在遠地主機上設有帳戶。 當 ftp 註冊到遠地系統時,並未得到 shell ,

而是通過 ftp 命令解釋程序同遠地主機進行通訊。

bye

cd-->改變在伺服器上的目錄

dir--->顯示伺服器上的內容

bye--->退出伺服器

bin,asc---->二進位還是asc

get,put---->下載上傳

get a.txt(!ls查看一下)

put passwd.tar(上傳)

mput-->後面可以根多個文件名(一次上傳多個)

mget(一次下載多個)

hash--->顯示進度條

lcd--->改變本機的當前目錄

10、環境變數

variable=value

eg:

export HELLO=」Hello!」

echo $HELLO

export var=`pwd`,注意:將pwd執行的結果賦給var(在這裡必須要用``引起來,它不是單引號哦)

追加PATH環境變數

eg: PATH=$PATH:/usr/bin

注意:

永久的:需要修改配置文件,變數永久生效。

使用export命令聲明即可,變數在關閉shell時失效

shell腳本

1 .vi /tmp/a.txt

#!/bin/sh

pwd

cal

date

2.PATH=$PATH:/home/lihong

3.chmod +x /tmp/a.txt

4.運行a.txt命令就可以了

11、path:命令的默認搜索路徑

想知道所執行的命令到底在那個目錄下?

which vi 搜索vi所在的路徑(在path下搜索,搜索到就停止)

whereis vi 搜索vi所在的路徑(在path下搜索,搜索到繼續搜索,直到找到所有的vi)

12、History

$ history顯示歷史記錄信息

$ history 5顯示五條歷史記錄信息

$ !n重複執行第n條歷史命令

$ !!重複執行上一條歷史命令

13、別名:針對於系統中已經存在的命令,給它取個別名

bash:alias h(別名)=history(原始命令)

$ alias home=』cd;ls』

alias 顯示所有設置的別名

unalias copy 取消所設置的別名

(有無取消所有設置的別名)

14、初始化文件:包含命令和變數的設置,當shell啟動時就執行

對初始化文件再操作系統中分為兩級:

1、系統級(一旦修改,對所有的用戶都起作用)

/etc

/etc/bash.bashrc文件

2、用戶級(只針對於特定的用戶有效)

/home/lihong/(用戶的家目錄下)

~/.bashrc

export JAVA_HOME=/opt/jdk

export HADOOP_USER_NAME=lihong

export MAVEN_HOME=/opt/maven

export HADOOP_HOME=/opt/hadoop

export PATH=$JAVA_HOME/bin:$PATH:/sbin:/$MAVEN_HOME/bin:/opt/eclipse:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

15.用戶管理

創建賬戶:sudo useradd -m -d /home/test4 -s /bin/bash -u 10002 -g 1003 test4

為用戶生成密碼:sudo passwd test4

刪除用戶:userdel -r test4 [-r表示刪除家目錄]


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

科學探索也能被機器取代嗎?

TAG:全球大搜羅 |