大資料入門(0)linux的基本命令
阿新 • • 發佈:2018-12-10
最近研究大資料,將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}