1. 程式人生 > 其它 >Linux基礎概念及基本應用

Linux基礎概念及基本應用

linux系統各種目錄

cd / 進入linux系統的根目錄

linux所有的檔案都是位於根目錄下邊的。

認識一下各種目錄:

bin (binaries)存放二進位制可執行檔案

sbin (super user binaries)存放二進位制可執行檔案,只有root才能訪問

etc (etcetera)存放系統配置檔案

usr (unix shared resources)用於存放共享的系統資源

home 存放使用者檔案的根目錄

root 超級使用者目錄

dev (devices)用於存放裝置檔案

lib (library)存放跟檔案系統中的程式執行所需要的共享庫及核心模組

mnt (mount)系統管理員安裝臨時檔案系統的安裝點

boot 存放用於系統引導時使用的各種檔案

tmp (temporary)用於存放各種臨時檔案

var (variable)用於存放執行時需要改變資料的檔案

linux常用命令

有時候會遇到這樣的錯誤: No space left on device

然後通過df -h 命令查詢磁碟情況:

因為我不太清楚到底是哪個檔案佔用了這麼大,所以採用命令:

Du -sh /*

原來是/usr路徑,進去繼續追查

最終是一步一步追查,發現是tomcat日誌

ll -ah檢視具體檔案的大小

2、檢視當前系統的時間 date

[test@hdp-node-01 ~]$ date +%Y-%m-%d

2016-05-18

設定時間

date -s "2016-05-23 01:01" ## 修改時間

修改時間後,需要寫入硬體bios才能在重啟之後依然生效

hwclock -w

清屏

clear ## 或者用快捷鍵 ctrl + l

退出當前程序

ctrl+c 有些程式也可以用q鍵退出

掛起當前程序

ctrl+z ## 程序會掛起到後臺

bg jobid ## 讓程序在後臺繼續執行

fg jobid ## 讓程序回到前臺

Linux的目錄檔案操作

檢視目錄資訊

Ls -l 列出詳細資訊

Ls -h 列出詳細資訊,並且帶有檔案大小

也可以這樣寫:ll -lh

Ls -a 會把隱藏檔案查詢出來 組合使用:ls -ha

切換目錄change directory

快速的切回主目錄:cd ~

退回到上一層目錄:cd -

Cd 什麼都不帶,會回到使用者的主目錄

返回上一級:cd ..

建立資料夾

mkdir aaa 檔名

Mkdir -p aaa/bbb/ccc 級聯建立多個目錄

刪除資料夾

rmdir aaa ## 可以刪除空目錄

rm -r aaa ## 可以把aaa整個資料夾及其中的所有子節點全部刪除(通過遞迴的形式刪除的)

rm -rf aaa ## 強制刪除aaa(這個命令要謹慎

修改資料夾名稱

mv aaa angelababy

mv本質上是移動

mv install.log aaa/ 將當前目錄下的install.log 移動到aaa資料夾中去

rename 可以用來批量更改檔名

建立檔案

touch somefile 這樣就建立了一個空檔案(linux的檔案的字尾名其實是沒有什麼特殊意義的,只是按類別區分)

vi 檔名:vi demo.txt

重定向

‘>’將一臺指令的輸出結果接入到另一個檔案中,會覆蓋原來的內容(如果指定的檔案不存在,則會創建出來)

echo “wangbaoqiang zhen ke lian” > demo.txt

‘>>’ 將一個檔案追加到另一個檔案中,不會覆蓋

echo “malaoshi” >> demo.txt

22 > 2.txt

關於編輯文字

當進入某個文字命令列以後,剛開始的時候是只讀模式的,如果想修改,需要啟動命令才可以。有三種命令:

1、i 游標所在位置進行編輯

2、A游標後面進行編輯

3、O 下一行啟動一個新的

儲存

需要先退出編輯模式:esc

:w 儲存

:wq 儲存且退出

常用快捷鍵:

a在游標後一位開始插入

A在該行的最後插入

I在該行的最前面插入

gg直接跳到檔案的首行

G直接跳到檔案的末行

dd刪除一行

3dd刪除3

yy複製一行

3yy複製3

p貼上

拷貝/刪除/移動

cp somefile1 /home/hadoop/

cp -r 目標檔案 拷貝地址

假如一個檔案隱藏的很深:

此時想copy bb資料夾到root目錄下,這時候直接用 cp aa/bb/ /root/就會報錯

所以要使用遞迴的方式copy:cp -r aa/bb/ /root/

rm -r /資料夾或者檔名 (刪除)

rm -rf /home/hadoop/somefile1(強制刪除)

移動檔案:mv(move)

將demo1.txt移動到aa資料夾內

mv demo1.txt aa/

統計wc(word count)

wc 統計文字的行數、字數、字元數(word count)

-m 統計文字字元數

-w 統計文字字數

-l 統計文字行數

檢視檔案內容(重點)

cat 一次性將檔案內容全部輸出到控制檯

more 可以翻頁檢視,下翻一頁(空格) 上翻一頁(b) 退出q

less 和more差不多,但是比more更強大一點

head -10 install.log 檢視檔案的頭10行

tail -100f install.log 檢視檔案尾部的100行

tail -f install.log 實時的檢視檔案中的內容,只要有更新就會檢視。

檢視當前工作目錄

pwd 顯示當前工作目錄(print working directory)

關於遠端拷貝的命令

1、將當前檔案拷貝到另一臺機器上

scp -r /home/test/test.txt[email protected]:/home/root

2.從 遠端 複製到 本地
scproot@/172.19.2.75:/home/root/full.tar.gz /home/daisy/full.tar.gz

7、打包並壓縮(重要)

tar -zcvf a.tar.gz a.txt tar -zcvf路徑/壓縮的檔名目標檔案

8、解包並解壓縮(重要)

tar -zxvf a.tar.gz

檔案的查詢

1、Which 命令

Which ls 檢視這個檔案是在哪個目錄下

2、whereis 命令

whereis ls

Find命令

3、從某個資料夾開始查詢檔案

find / -name "hadooop*"

Grep命令

1/ 基本使用

查詢包含hadoop的行

grep hadoop /etc/password

grep aaa ./*.txt

檔案許可權的操作

不同使用者是有不同操作許可權的

1 linux檔案許可權的描述格式解讀

drwxr-xr-x (也可以用二進位制表示 111 101 101 --> 755)

d:標識節點型別(d:資料夾 -:檔案 l:連結)

r:可讀 w:可寫 x:可執行

第一組rwx: ## 表示這個檔案的擁有者對它的許可權:可讀可寫可執行

第二組r-x: ## 表示這個檔案的所屬組使用者對它的許可權:可讀,不可寫,可執行

第三組r-x: ## 表示這個檔案的其他使用者(相對於上面兩類使用者)對它的許可權:可讀,不可寫,可執行

2 修改檔案許可權

U:表示user(所屬使用者)

G:表示group(表示所屬組)

O:表示other(表示其他使用者)

A:all

chmod g-rw haha.dat ## 表示將haha.dat對所屬組的rw許可權取消

chmod o-rw haha.dat ## 表示將haha.dat對其他人的rw許可權取消

chmod u+x haha.dat ## 表示將haha.dat對所屬使用者的許可權增加x

chmod a-x haha.dat ## 表示將haha.dat對所使用者取消x許可權

也可以用數字的方式來修改許可權

chmod 664 haha.dat

就會修改成 rw-rw-r--

如果要將一個資料夾的所有內容許可權統一修改,則可以-R引數

chmod -R 770 aaa/

3 修改檔案所有權chown

<只有root許可權能執行>

當需要改指定目錄及其子目錄下所有檔案的擁有者和群組的時候,需要:

chown -R 擁有者:群組 檔案

(分配檔案許可權,前提是root使用者和確實存在這個使用者)

基本的使用者管理

需要我們掌握的:

新增一個使用者:

1、 useradd spark

2、 passwd spark 根據提示設定密碼;

即可

刪除一個使用者:

userdel -r spark 加一個-r就表示把使用者及使用者的主目錄都刪除

1 新增使用者

新增一個tom使用者,設定它屬於users組,並添加註釋資訊

分步完成:useradd tom

usermod -g users tom (-g表示組)

usermod -c "hr tom" tom (-c表示)

一步完成:useradd -g users -c "hr tom" tom

設定tom使用者的密碼

passwd tom

2 修改使用者

修改tom使用者的登陸名為tomcat

usermod -l tomcat tom

將tomcat新增到sys和root組中

usermod -G sys,root tomcat

檢視tomcat的組資訊

groups tomcat

3 使用者組操作

新增一個叫america的組

groupadd america

將jerry新增到america組中

usermod -g america jerry

將tomcat使用者從root組和sys組刪除

gpasswd -d tomcat root

gpasswd -d tomcat sys

將america組名修改為am

groupmod -n am america

4 為使用者配置sudo許可權

用root編輯 vi /etc/sudoers

在檔案的如下位置,為hadoop新增一行即可

root ALL=(ALL) ALL

hadoop ALL=(ALL) ALL

然後,hadoop使用者就可以用sudo來執行系統級別的指令

[hadoop@shizhan ~]$ sudo useradd huangxiaoming

關於ps命令和grep命令

ps 顯示瞬間的程序狀態

-e /-A 顯示所有程序,環境變數

-f 全格式

-a 顯示所有使用者的所有程序(包括其它使用者)

-u 按使用者名稱和啟動時間的順序來顯示程序

-x 顯示無控制終端的程序

Linux系統中grep命令是一種強大的文字搜尋工具,它能使用正則表示式搜尋文字,並把匹 配的行打印出來

通常情況下,這倆是合起來使用的,比如檢視某個程序:

Ps -ef | grep redis

Ps -ef | grep tomcat

netstat 顯示網路狀態資訊

和ps -ef |grep 功能相似的,netstat -nltp

比如檢視埠號是否被佔用netstat -nltp|grep 埠號