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 埠號