1. 程式人生 > >大資料入門(0)linux的基本命令

大資料入門(0)linux的基本命令

最近研究大資料,將linux的基本命令整理如下:

1、設定圖形介面 
	vim  /etc/inittab
2、清螢幕  clear
3、建立使用者,設定密碼
	useradd test
	passwd  test
4、切換使用者
	su - test
5、檢視當前目錄,
	pwd,
	/home/test

6、檢視主機名
	hostname
	
	設定主機名:

	方式一:hostname  weekend110 (此種方式設定的主機名稱,在重啟後又還原了,系統的配置資訊都來自於檔案)
	
	方式二:vim /ect/sysconfig/network 
		HOSTNAME=weekend110
主機名和ip的對映:

	vim  /etc/hosts

	windows下的:C:\Windows\System32\drivers\etc

7、vi
	vi filename
	i 編輯,esc 退出編輯模式,:wq 儲存,:q 不儲存

	>>>>vi模式的快捷方式:
		dd:刪除游標所在行
		zz:儲存
		x:刪除游標附件的內容
		o:游標下一行插入內容
----------------------------------------------------------------------檔案操作---------------------------------------------------------------------
8、檔案操作 
	>>>>檢視檔案
		ls --list
		ls -l  或者  ll
		ls -a  顯示隱藏檔案,以 .開頭的檔案
	
	>>>>目錄
		./當前目錄    ../上級目錄
		cd ../app
	
	>>>>常見的檔案型別:
		檔案
		目錄
		連線(快捷方式)

	>>>>建立檔案:
		touch  1.txt
		vi  2.txt
		
	>>>>對檔案內容追加
		echo "aaaa" >> 1.txt
	
	

	>>>>-rw-rw-r--
		-	rw-	rw-	r--       >>>>數字表示許可權為:664
	    	-   檔案型別    
		rw- 檔案許可權
		
	>>>>檔案許可權
		可讀 r
		可寫 w
		可執行(指令碼:shell指令碼) x 
	>>>>檔案歸屬
		擁有者 owner  o
		所屬組 group  g
		其他人 other  o
	>>>>許可權數字表示方式
		rw-       6
		二進位制數字之和的方式
		R	W	X
		2^2	2^1     2^0

	>>>>設定檔案對不用使用者的許可權  root使用者
		chmod 600 1.txt
		 -R, --recursive  遞迴
		
		eg: chmod g-w  1.txt
		    chmod o-r  1.txt
		    
		    chmod 664 1.txt
	
	>>>>改變檔案擁有者和所屬組
		chowner 
			chowner admin  1.txt
		chgrp
			chgrp admin 1.txt
	>>>>針對目錄,資料夾修改許可權
		chown -R admin  /opt/sofware
	>>>>使用一條命令,修改檔案的擁有者和所屬組
		chown admin:admin 1.txt
	
	>>>>命令列
		man + 命令關鍵字   檢視具體的命令操作
		tab 自動補全
	>>>>建立目錄
		mkdir  test          
		mkdir -p app/test    建立多級目錄
	>>>>檔案拷貝,  移動/重新命名
		cp  source  disk/filename
		mv  src  dest
		cp 1.txt  /home		
		cp 1.txt  2.txt  重新命名
		cp -r  目錄1 目錄2 

	>>>>刪除
		rm -rf src 絕對路徑

9、檢視檔案內容
	cat: 檢視
	more:翻頁檢視
	tail:末尾檢視,-f 實時檢視日誌動態
		eg:tail -f  a.log
	head:開標頭檔案,檔案格式,內容模板樣式
10、連線(快捷方式)
	軟連線:soft link
		ln -s file/dir  linkname
		ln -s readme.txt  r.txt
	硬連線:hard link 		
		ln  readme.txt  r.txt  相當於copy 一個檔案,改變原始檔,連線檔案也會被修改

	       刪除的時候都不刪除原始檔,
	
	使用場景:
		hadoop的配置檔案,hbase中也要用到core-site.xml,hdfs-site.xml ,故在hbase中直接引用,ln ,
	
11、檔案搜尋
	
	find ~/ -name  read(關鍵字)
	
	find ~/ -name read\*

--------------------------------------------------遠端工具----------------------------------------------------------------------
12、四大遠端連線工具

	*遠端命令列:
		secureCRT
	*遠端FTP:
		FileZilla         
		ftp:file transfer protocol
	*遠端編譯工具: 
		notepad++ ,v6.6.8有NppFTP 外掛      (SFTP協議)
		ultraEdit  (SFTP協議)
	*遠端介面工具:
		Xmanager4
---------------------------------------------------------系統命令----------------------------------------------------------
13、系統資訊的命令
	uname
	uname -r
	#cpu資訊
		cat /proc/cpuinfo
	#記憶體資訊
		cat /proc/meminfo
	#日期資訊	
		date
	#日曆
		cal 2018
	#設定日期和時間 root
		date -s 2015-11-12
		date -s 14:12:23
	#磁碟使用情況
		df -l
		du -sh /home/admin
		fdisk -l
	#磁碟修復,自動修復
		fsck /dev/sda3
	#檢視掛在磁碟資訊
		mount
	#掛在磁碟
		mount /dev/sdb1 /data01
	#解除安裝磁碟
		umount /dev/sdb1

	#檢視記憶體使用情況
		free
		free -m
	#各個程序記憶體的使用情況
		top
		M:檢視詳細資訊

	#網路命令
		網絡卡資訊位置:cd /etc/sysconfig/network-scripts/
		ping 0.0.0.0  ==本地的ip

-----------------------------------------------------軟體的安裝方式------------------------------------------------------
14、RPM 命令
	#檢視軟體是否安裝
		rpm -qa|grep java1.6	
	#解除安裝軟體
		rpm -e --nodeps  java1.6
	#安裝軟體
		rpm -ivh *.rpm
15、tar (原始碼,編譯)
	解壓
		tar -zxvf *.tar.gz
		tar -zxvf *.tar.gz -C dir
	壓縮
		tar -zcvf *.tar.gz dir

16、zip軟體
	解壓
		unzip *.zip
	壓縮
		zip *.zip file

17、yum
	需要配置源
	安裝包依賴關係以及各個軟體的安裝順序

---------------------------------------------------設定使用者的sudo 許可權----------------------------------------------
18、vi /etc/sudoers
	新增:
	admin ALL=(root) NOPASSWD:ALL

----------------------------------------------------防火牆-----------------------------------------------------------
19、sudo 
	#檢視狀態
	service iptables status
	#關閉
	service iptables stop
	#開啟 
	service iptables start
	
	#永久關閉|開啟
	chkconfig iptables off|on

	chkconfig --list httpd

------------------------------------selinux----------------------------------------------------	
	SELINUX 關閉
		vim /etc/sysconfig/selinux
		SELINUX =disabled
	需要重啟


------------------------------------crontab定時排程-------------------------------------------------------
20、crontab

	touch 1-log.txt
	echo "111-log" >> 1-log.txt
	cat 1-log.txt
	date
	date >> 1-log.txt
	which date  --查詢某個命令所在的目錄
	
	#建立定時任務,追加時間到檔案,1分鐘執行一次
		crontab -e 
		*/1 * * * *  /bin/date >> /home/admin/1-log.txt
	
	#實時檢視檔案
		tail -f 1-log.txt

	#檢視當前所有的定時任務
		crontab -l
	#刪除所有的定時任務
		crontab -r
	#刪除單個
		檔案中註釋掉就可以了
21、crontab的語法
	* * * * * command  (空格隔開)
	
	* * * * *
	第1個*:分,1-59, */10 每十分鐘執行
	第2個*:時,0-23,
	第3個*:日,1-31,
	第4個*:月,1-12,
	第5個*:星期,0-6,

	eg:##每天21:30 執行   
		30 21 * * * cmd01
	   ##每個月1號,11號,21號的2:30 執行
		30 2 1,11,21 * * cmd01	
	   ##每週六或者週日,1:45執行
		45 1 * * 6,0 cmd01
	   ##每天20:00-23:00 ,每半個小時執行一次
		0,30 20-23 * * * cmd01
	   ##每一個小時執行一次
		* */1 * * * cmd01

-------------------------------------虛擬機器重啟出錯----------------------------------------------------------
22、磁碟損壞
	fsck /dev/sda3


--------------------------------------shell命令-----------------------------------------------------------------------	
23、變數
	echo  回顯
	shoami 顯示當前使用者

	(1)本地變數:shell指令碼用
		x=123 	echo ${x}
		=左右不能有空格
	(2)環境變數:shell程序中都可以用,全域性變數大寫
		
	第一行:指定用哪個程式來編譯或者執行指令碼
		#!/bin/bash          #!/bin/sh
	註釋行:使用(#)

	shell指令碼編寫:
		#!/bin/base
		echo "hello word!!!"
	
	#修改指令碼的執行許可權
		chmod u+x go.sh
	#執行指令碼(3種方式)
		./go.sh
		. go.sh
		sh go.sh

	(3)位置引數
		echo "hello  $1"	
		執行的時候傳遞的    sh go.sh word  
		引數中有空格,需要用引號	sh go.sh "hadoop mapreduce"
		
		$0 	當前指令碼的檔名
		$1-$9 	第一個到第九個位置參量
		${10}	第10個以後,用{}括起來
		$#	位置參量的個數
		$*	以單字元顯示所有位置參量
		
[email protected]
未加雙引號和$*相同 $$ 指令碼執行的當前程序號 $! 最後一個後臺執行的程序的程序號 $? 顯示前面最後一個命令的退出狀態,0表示沒有錯誤,其他任何值都有錯誤 if[$? !=0 ];then exit 1 fi 24、陣列 a={a b c} 第一個:echo ${a[0]} 全部:echo ${a[*]} 個數:echo ${#a[*]} 賦值:a[0]=a1 25、date date +%Y-%m-%d date +%Y-%m-%d %H:%M:%S ###shell指令碼中取時間: #!/bin/bash date1=$(date +%Y-%m-%d) echo ${date1} #兩天前 date2=$(date --date='2 days ago' +%Y-%m-%d) echo ${date2} #1天后 date3=$(date --date='+1 days ' +%Y-%m-%d) echo ${date3} #1天前 date4=$(date --date='-1 days ' +%Y-%m-%d) echo ${date4} 26、日曆 cal cal 2018 cal 09 2018 27、判斷語句test ,具體檢視 man test #是否存在 test -e filename #是否存在且為檔案file test -f filename #是否存在且為目錄directory test -d filename #是否存在且可讀 test -r filename #是否存在且可寫 test -w filename #是否存在且可執行 test -x filename -eq -ne -gt -lt -ge -le test -z string --是否空 test -n string --是否不為空 test str1=str2 test str1!=str2 28、迴圈語句 for i in 1 2 3 4 5 do echo ${i} done while read line echo ${line}