Hadoop初級之Linux命令

1、簡介

Linux是一類Unix計算機操做系統的統稱。Linux操做系統也是自由軟件開放源代碼發展中最著名的例子。在1991 年的十月,由一個名爲 Linus Torvalds的年輕芬蘭大學生帶頭開發的做業系統。前端

 

2、特色

開放性,多用戶,多任務,優異的性能和穩定性java

 

3、安裝

參考文檔node

鏡像下載https://wiki.centos.org/Download   通常是非盈利社區mysql

 

4、目錄結構

 

 

/ 最頂級目錄,全部的東西都在/目錄下linux

bin 可執行文件,能夠被root和通常用戶使用的指令,也就是經常使用命令sql

dev 外接設備vim

etc 配置文件windows

home 普通用戶家目錄   非root用戶centos

lib 二進制文件,如支持命令的庫服務器

mnt 掛載文件系統的目錄

proc 存放一些執行的進程的信息

root 超級用戶的家目錄  ~

sbin 超級用戶使用的命令

tmp 臨時文件存放目錄

usr 用戶程序命令

var 存放日誌或數據文件

 

 

 

5、基礎命令

 

標準格式: 命令 [參數] [操做對象]

 

01.ls

顯示當前目錄全部文件(和文件夾)簡單信息

舉例:ls    (其後面也能夠加路徑,例如:ls /test/aaa)

-l 顯示詳細信息

-a 顯示全部文件,包括隱藏文件

-alh 顯示文件大小 不分前後順序

相對路徑: 根據參照物肯定路徑,通常爲當前目錄(../表明當前目錄  ../表明上一級目錄  ~表明家目錄)

絕對路徑: 直接從頂級目錄開始,好比/

 

02.ll

顯示全部文件(和文件夾)詳細信息

舉例:ll 路徑名   例如:ll /test/aaa

若是ll後面不加路徑就表明查看當前目錄

顯示出來的東西若是以-開頭,說明它是文件

若是以d開頭,說明它是目錄,文件夾

-h 顯示文件的大小

-a 顯示隱藏文件

 

03.cd 

進入到某個目錄

舉例 cd /

cd .. 返回上一級目錄

 

04.pwd

顯示路徑(絕對路徑)

 

05.mkdir

建立目錄

舉例:mkdir aaa

-p 建立多級目錄

 

06.rmdir    

刪除空目錄

舉例rmdir aaa

 

07.touch

建立空文件

舉例:touch aaa.txt(touch 後面也能夠跟路徑,如:touch /test/aaa.txt)

建立多個文件

       touch a.txt b.txt

 

08.cp

複製

cp複製文件

舉例:cp aaa.txt bbb.txt

cp -r 複製目錄

 

09.mv

移動文件或目錄(也是重命名)

舉例:mv /test/aaa/a.txt /test/bbb (把/test/aaa/a.txt移動到/test/bbb)

mv /test/aaa/a.txt /test/aaa/b.txt(重命名)

 

 

10.rm

刪除 (不提示刪除 rm -rf) (rm -r 遞歸刪除)

舉例:rm -rf a.txt

       刪除多個:rm -rf a.txt b.txt

 

11.vim

編輯文本

例如:vim /test/a.txt

輸入i進行編輯

編輯完先按Esc,取消insert

 

命令

說明

:w

保存

:wq

保存並退出

:x

保存並退出

:q

退出,若是有改動,須要使用強制退出

:q!

強制退出,對修改的內容不保存

:set nu

顯示行號

:n

跳到第n行

:%s/o/xxxxxx/g

把文件中的o替換爲xxxxxx

/xxx

/xxx 查找xxx  輸入n查找下一個,輸入N查找上一個

G

跳到文件最後一行

gg

跳到文件第一行

$

跳到本行末尾

^

跳到本行行首

yy

複製,5yy複製5行

P

粘貼

dd

刪除1行,10dd刪除10行

U

撤銷

w

光標每一個單詞跳動

 

 

vim是vi的增強版

 

12.>和>>

                 輸出重定向

> 覆蓋輸出

>> 追加輸出

 

13.cat

查看文件內容

舉例:cat /test/aaa.txt

查看多個文件 cat a.txt b.txt

 

14.head

查看文件前n行內容

舉例:head -10 /test/test01/bbb.txt

-10表明前10行

 

15.less

                 分頁查看

       空格顯示下一行

可使用【pageup】和【pagedown】鍵進行前翻頁和後翻頁

 

16.more

分頁顯示

按空格鍵顯示下一頁,ctrl+b返回上一頁

v 調用vi編輯器

q     退出

 

17.tail

查看文件的後幾行

舉例:tail -10 /test/aaa.txt

tail -f是動態查看(例子:tail -f /test/aaa.txt)

 

18.echo

打印

舉例:echo 「hello world」

echo 「hello java」> /test/a.txt        (覆蓋)

echo 「hello java」>> /test/a.txt             (追加)

echo -e 「hello\n」

19.clear

清空屏幕

Ctrl l

 

20.which

顯示命令路徑

舉例:which ls

 

 

6、進階命令

 

01.du

查看目錄大小

du -sh /etc/

 

02.df

查看磁盤大小      

通常使用df -h

 

03.free  

顯示內存大小

-m 以MB顯示

-g 以GB顯示

 

04.wc

統計

wc 有四個參數可選,分別是l,c,m,w
              wc -l filename 報告行數
              wc -c filename 報告字節數
              wc -m filename 報告字符數
              wc -w filename 報告單詞數 根據換行和空格統計單詞數

 

05.date

時間相關

date 顯示時間

date +%Y-%m-%d 格式化顯示時間date "+%Y-%m-%d %H:%M:%S"

date -d 「1 month ago」 1個月以前

date -d 「20180101 1 day ago」 1天以前

date -s 時間 (修改時間)

舉例:[root@hadoop /]# date -s "2019-01-09 15:06:30"

 

06.cal

日曆

07.|

管道符

把左邊的結果傳給右邊

 

08.grep

過濾

功能:查找匹配格式的內容

格式:grep[參數] <要找的字串> <要尋找字 串的源文件>

用法1:grep linux a.txt #搜索a.txt文件中字符串linux並輸出

用法2:ls / | grep a.txt #匹配當前目錄下文件名字是a.txt的文件

用法3:cat a.txt | grep linux #搜索a.txt文件中字符串linux並輸出

grep -i 忽略大小寫

-i

-h

 

09.find

查找

find /test -name a.txt 搜索系統根目錄下的test文件夾下名爲a.txt的文件

find 查找路徑 -name 要查找的文件名

[root@jh /]# find /aaa/bbb/ -name a

/aaa/bbb/a

[root@jh /]# find /aaa/bbb/ -name "a*"

/aaa/bbb/a

/aaa/bbb/abc.txt

查找文件size大於10個字節的文件或目錄

find ./ -size +10c

查找文件size小於10k的文件或目錄

find ./ -size -10k

find ./ -size -10M

find ./ -size -10G

其餘...

find ./ -type

 

10.useradd

建立用戶

建立新用戶:useradd 用戶名

修改用戶密碼:passwd 用戶名

編輯/etc/sudoers文件,使用命令visudo

在root    ALL=(ALL)       ALL這一行下面添加:

用戶名    ALL=(ALL)       ALL

:x!

使用普通用戶來操做root用戶的文件使用命令sudo + 命令,如:

sudo vi/etc/profile

切換用戶使用su 用戶名

刪除用戶:userdel -rf 用戶名

 

11.chmod

修改權限

語法爲:chmod abc file 

其中a,b,c各爲一個數字,分別表示User、Group、及Other的權限。 

r=4 讀,w=2 寫,x=1 執行權限

若要rwx屬性則4+2+1=7; 

若要rw-屬性則4+2=6; 

若要r-x屬性則4+1=5。

-rw-r--r--. 1 root root  145 Apr 26 03:22 aaa.txt 文件

-表明文件,-後面的三位表明用戶權限,再後三位表明用戶組的權限,再後三位表明其餘     用戶權限

例如:chmod 777 /test/a.txt 

chmod [u所屬用戶  g所屬組  o其餘用戶  a全部用戶]  [+增長權限  -減小權限]  [r  w  x]   目錄名

例如:chmod u+x aaa.txt

 

12.chown

修改所屬用戶和組

chown hadoop:hadoop filename 修改所屬用戶各組

chown –R 遞歸修改

 

13.ps  

顯示當前狀態的進程信息    

 

ps -ef | grep mysql

 

14. top 

功能:顯示當前系統正在執行的進程的相關信息,包括進程ID、內存佔用率、CPU佔用率等

 

15.tar

壓縮和解壓

tar -zcvf /test.tar.gz /test/ 壓縮

tar -zxvf /test/a.txt.gz  解壓a.txt.gz到當前目錄

tar -zxvf /test/a.txt.gz -C /test 解壓a.txt.gz到指定目錄(大寫C)

 

16.kill

殺死進程

kill -9 1123(進程號)     

 

 

17.service

service network restart 重啓網卡

 

18. systemctl是CentOS7的服務管理工具中主要的工具

它融合以前service和chkconfig的功能於一體。

firewalld的基本使用

啓動: systemctl start firewalld

關閉: systemctl stop firewalld

查看狀態: systemctl status firewalld

開機禁用  : systemctl disable firewalld

開機啓用  : systemctl enable firewalld

19.rpm

rpm命令是RPM軟件包的管理工具。rpm本來是Red Hat Linux發行版專門用來管理Linux各項套件的程序,因爲它遵循GPL規則且功能強大方便,於是廣受歡迎。逐漸受到其餘發行版的採用。RPM套件管理方式的出現,讓Linux易於安裝,升級,間接提  升了Linux的適用度。

 

rpm -qa 列出全部安裝過的包

舉例:rpm -qa | grep mysql

rpm -ivh 帶進度安裝

rpm -ivh xxx.rpm

rpm -e --nodeps卸載

rpm來安裝mysql

 

20.yum                 

yum(全稱爲 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。基於RPM包管理,可以從指定的服務器自動下載RPM包而且安裝,能夠自動處理依賴性關係,而且一次安裝全部依賴的軟體包,無須繁瑣地一次次下載、安裝。yum提供了查找、安裝、刪除某一個、一組甚至所有軟件包的命令,並且命令簡潔而又好記。

yum install ...         安裝

wget

yum remove ...      卸載

yum update ...       升級全部包,改變軟件設置和系統設置,系統版本內核都升級

yum upgrade ...     升級全部包,不改變軟件設置和系統設置

yum list                    列出全部的包文件
       yum -y ...               
不提示執行

 

21.nohup

後臺啓動進程,配合&使用

例如:  nohup sh a.sh &

 

22.scp

遠程發送   將當前機器上的某一個文件發送給另外一臺機器

scp -r ./a.txt test-hadoop-2-21:/home/hadoop

 

sync:做用:將內容中數據保存到磁盤

23.rsync

                 同步 做用:將兩個節點的指定文件夾內容 同步

rsync -a -auvzP --bwlimit=30000 192.168.2.21:$src_dir $dst_dir

 

24.wget

                 通常下載資源使用

wget http://xxxxxxxxxx

 

7、其餘命令

01. ip addr

查看ip

02.reboot

重啓系統

03.init 0

關機

04.history

歷史命令

05.who

顯示在線登錄用戶

06.hostname

顯示主機名

設置主機名:

hostnamectl set-hostname 要設置的名字

08.cut

分割     echo "hello world" | cut -d 指定分隔符 " " -f 2 (經過空格分割,顯示第二列)

09.sort

排序 cat /etc/passwd | sort 字典排序,天然排序

10.uniq

去重cat /etc/passwd | sort|uniq (去重依賴於sort)

11.Ctrl c  

強行中止進程(Ctrl鍵與C同時按)

12.tree

              以樹狀形式顯示目錄結構

 

8、定時任務

crond 是linux下用來週期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計劃任務相似,當安裝完成操做系統後,默認會安裝此服務 工具,而且會自動啓動crond進程,crond進程每分鐘會按期檢查是否有要執行的任務,若是有要執行的任務,則自動執行該任務。

crontab

 

crontab -e        編輯定時任務 編輯多個任務

crontab -l         列出定時任務

crontab -r         刪除定時任務

 

*  *  *  *  *  command

分 時 日 月 周 命令

0-6

虛擬機,一直開着

除了數字還有幾個個特殊的符號就是"*""/""-"","*表明全部的取值範圍內的數字,"/" 表明每的意思,"/5"表示每5個單位,"-"表明從某個數字到某個數字,","分開幾個離散的數字。

 

幾個例子:

1.天天早上6點

0 6 * * * echo "Good morning." >> /tmp/test.txt //注意單純echo,從屏幕上看不到任何輸出,由於cron       把任何輸出都email到root的信箱了。

2.每兩個小時

0 */2 * * * echo "Have a break now." >> /tmp/test.txt 

3.晚上11點到早上8點之間每兩個小時和早上八點

0 23-8/2,8 * * * echo "Have a good dream" >> /tmp/test.txt

4.每月的4號和每一個禮拜的禮拜一到禮拜三的早上11點

0 11 4 * 1-3 command line

 

實現秒級執行任務:

*/1     *       *       *       *       sleep 3 && echo "goodmorning" >> /test/a.txt

*/1     *       *       *       *       sleep 6 && echo "goodmorning" >> /tess/a.txt

*/1     *       *       *       *       sleep 9 && echo "goodmorning" >> /test/a.txt

*/1     *       *       *       *       sleep 12 && echo "goodmorning" >> /test/a.txt

相關文章
相關標籤/搜索