#root用戶
$普通用戶
linux命令
清屏clear翻頁清屏 CRT中ctrl+L
reset"清空
CRT中不起做用"
建立用戶useradd a建立用戶名爲a的用戶
設置密碼passwd a設置用戶a的密碼(輸入密碼時內容顯示)
切換用戶su 切換到root,需密碼
su - a切換到用戶a,無需密碼
pwd當前所在目錄
主機名hostname 查看主機名
hostname xxxx臨時設置主機名爲xxx
vi /etc/sysconfig/network
hostname=xxxxx
在root用戶下永久設置主機名爲xxx
vi /etc/hosts
IP+空格+主機名
關機重啓
halt 關機(root)
reboot或init 6重啓(root)
SSH 登陸
查看IP ipconfigwindows的命令
ifconfiglinux的命令
網絡設置建議使用NAT模式
靜態IP address 前三段和ifconfig獲得的一致,最後一段任意
netmask 255.255.255.0
gateway VMware——編輯——虛擬機網絡編輯器——NAT模式——NAT設置——網關
DNS 和gateway一致或8.8.8.8
(bridge模式用win下的DNS地址)
HWADDR 其實就是MAC地址
ping IP地址/域名/主機名
測試可否連通對應的地址
(注意關閉防火牆)
secureCRT
修改hosts文件 C:\Windows\System32\drivers\etc
(如不能保存請賦予當前用戶權限)
IP+空格+帶域名的主機名+簡寫的主機名
端口 22(filezilla、notepad++也是)
協議 SSH2(notepad++是SFTP)
須要: win的hosts文件配置+linux的靜態IP配置+network文件配置
主機名、用戶名和密碼
自定義
配色方案ANSI+使用配色方案打鉤
編碼 UTF-8(linux中中文文件在CRT中顯示亂碼問題沒解決)
字體大小
Xmanager4遠程界面工具的端口是22,協議是SFTP
Ctrl+C 中斷程式的執行
Ctrl+Z 暫停程式的執行,稍後能夠按下fg或bg命令繼續.
Ctrl+S 屏幕暫停輸出
Ctrl+Q 屏幕恢復輸出SSH 登陸C:\Windows\System32\drivers\etc
secureCRT
修改hosts文件
(如不能保存請賦予當前用戶權限)
IP+空格+帶域名的主機名+簡寫的主機名
端口 22(filezilla、notepad++也是)
協議 SSH2(notepad++是SFTP)
須要: win的hosts文件配置+linux的靜態IP配置+network文件配置
主機名、用戶名和密碼
自定義
配色方案ANSI+使用配色方案打鉤
編碼 UTF-8(linux中中文文件在CRT中顯示亂碼問題沒解決)
字體大小
Xmanager4遠程界面工具的端口是22,協議是SFTP
Ctrl+C 中斷程式的執行
Ctrl+Z 暫停程式的執行,稍後能夠按下fg或bg命令繼續.
Ctrl+S 屏幕暫停輸出
Ctrl+Q 屏幕恢復輸出
文件和目錄
目錄
. 當前目錄
.. 上級目錄
cd change directory
單獨cd 進入當前用戶主目錄
cd+目錄名 進入指定目錄
查看
ls 單獨使用,或ls+目錄路徑
ll 更詳細,等價於ls -l
ls -a 顯示隱藏的文件夾(.開頭)
類型
-文件
d 目錄
l 連接
歸屬
u所屬用戶 user
g同組用戶 group
o其餘 other
文件權限
r 可讀 2^2 4
w 可寫 2^1 2
x可執行 2^0 1
- 無權限
rw- -> 4+2+0=6
修改權限
chmod (change mode)
chmod 歸屬者加號權限字母 被修改權限的文件
加號 增長某權限
減號 減去某權限
歸屬者加號權限字母也可使用一組數字代替
如 chmode u+x readme.txt
chmode 664 readme.txt 修改u和g的權限爲rw-,o的權限爲r--
chmod -R 664 /opt/softwares
修改目錄下的子文件/目錄的權限爲664(-R表示遞歸)
修改歸屬者
chown 新的全部者用戶 被修改的文件
chown 新的全部者用戶:新的所屬組 被修改的文件
chown beifeng /home/hive-select-log.sql
修改所屬用戶爲beifeng
chown -R beifeng /opt/softwares
修改目錄下的全部的所屬用戶爲beifeng
chown senior:senior /home/hive-select-log.sql
修改所屬用戶和組都爲beifeng
chgrp 新的全部者用戶 被修改的文件
chgrp beifeng /home/hive-select-log.sql
修改所屬組爲beifeng
建立文件/目錄
建立文件
touch touch+文件名+後綴名 建立文件
(雖無後綴名之別,但總要區分)
建立目錄
mkdir test
mkdir -p ~/data/dfs/tmp
建立多級目錄
複製文件
cp 源文件src 目標目錄destdir
1 /xxx 表示在主目錄下的xxx目錄(無權限被拒)
2 ./xxx 表示當前目錄的xxx目錄下面
xx要存在,不然寫./xxx/報錯(沒法建立xxx)
如xx不存在,寫./xxx,不保存,但建立了xx文件(內容複製過去了)
拷貝的時候建議寫全目錄
dest:文件/目錄
目錄:拷貝一個文件到一個目錄dest中去
cp test.txt test-dir
文件時,拷貝一個文件的內容至一個文件dest中
cp test.txt cp-test.txt
若是該文件dest不存在,
則建立該文件並將source中的內容拷貝到這個文件
source:文件名/目錄名
目錄:將一個目錄拷貝到另外一個目錄中去
若是dest目錄存在
cp -r test-dir test-dir2
拷貝test-dir目錄到一個名爲test-dir2的目錄下
若是dest目錄不存在
cp -r test-dir test-dir2
test-dir2不存在,則會建立並拷貝test-dir中的內容過去
不要寫成cp -r test-dir/ test-dir2
而cp -r test-dir test-dir2/
的意思是,拷貝目錄test-dir到目錄下
-r的意思是遞歸(由於test-dir中可能有很深的層次)
linux是嚴格區分大小寫的。
在chmod中:-R, --recursive
在cp中: -R, -r, --recursiv
因此建議統一使用-R,否則還覺得不區分呢
移動/重命名
mv src dest
重命名
src和dest在同一個目錄下則是重命名
$ mv test-dir/ sub-dir(目錄的重命名)
$ mv test.txt test.log(文件的重命名)
移動
src和dest不在同一目錄
$ mv test-dir2/sub-dir/ test-dir
將test-dir2目錄這的sub-dir目錄中的文件移動到test-dir目錄下
查看文件內容
* cat : 查看所有內容,內容比較少
cat 文件名
* more : 翻頁查看
按下空格,查看下一頁,向上滾動直接查看上面的
按下q退出
* tail : 末尾內容,一般與 -f參數連用,適合於查看服務實時動態日誌信息
在正則中,\f是換頁符
tail -f xxxx.log
默認的倒數x行
tail -200f yyy.log
倒數200行
* head : 開頭文件,文件格式,內容模板樣式
修改文件內容
vi編輯——->vim
i 編輯插入
end鍵 行末
G 文件末
esc 退出編輯模式
:wq 保存
:q!或:q回車 不保存
echo "second line" >> test.txt
追加新的一行內容(字符串"second line")到test.txt文件中
date >> bf-log.txt 向bf-log.txt文件中追加日期數據
在vi查看模式下(沒按下i以前或者在按下i以後的編輯模式中按下esc)
* dd :表示刪除光標所在的行的內容
* ZZ :表示的是保存文件內容(要是大寫的,因此要打開大寫鎖定)
* x :表示將光標處的字符給刪除
* o : 表示在光標的下一行進行插入內容(自動跳到下一行的行首)
幫助
nan 命令名
man中的相關操做
ctrl + F或者Page Down:向下翻頁
ctrl + B或者Page Up:向上翻頁
gg到第一行
GG到最後一行
/start:能在整手冊中搜索start相關字符,使用n查找下一個,使用N查找上一個
j,k與vi中同樣使用,j向下一行,k向上一行
d下翻半頁
u上翻半頁
h獲取man使用幫助
q退出man
tab自動補全
系統信息:
uname 系統類型
uname -r 內核版本
cat /proc/cpuinfo CPU信息
cat /proc/meminfo 內存信息
who 顯示當前的終端
系統時間
date查看當前的系統時間
date -R 顯示系統時間+市區
root用戶下:
hwclock 查看當前的硬件時間
cal+xx年xx月 顯示xx年xx月日曆
which date 查看date命令是在哪裏
date +%Y-%m-%d\ %H:%M:%S 使其格式化顯示: 年-月-日 時:分:秒
2016-07-08 14:09:17
注意上面因爲中間須要空格,因此加了轉義字符\
/bin/date +%Y-%m-%d\ %H:%M:%S
等價於上一條命令
/bin/date +%Y/%m/%d\ %H:%M:%S
2016Y/07/08 14:10:02
安裝軟件
rpm -qa|grep xxxx 查看都安裝了哪些版本的xxx軟件
rpm -e --nodeps xxxxxx 強制卸載xxx軟件(所謂強制就是有依賴它的我也要卸載)
查看幫助文檔能夠看到:
--nodeps
Don’t do a dependency check before installing or upgrading a package.
不檢查相關的依賴
rpm -ivh xxx.rpm 安裝rpm格式的軟件包
解壓/壓縮zip yy.zip file 將file壓縮爲名爲xxx.zip的文件
tar -zcvf zzzz.tar.gz dir 將dir目錄壓縮成zzzz.tar.gz
unzip xxx.zip 解壓
tar -zxvf xxxx.tar.gz 解壓到當前目錄
tar -zxvf xxxx.tar.gz -C dir 將dir目錄壓縮成zzzz.tar.gz
-v, --verbose
verbosely list files processed
就是在屏幕上顯示解壓出來的那些文件,建議不用
安裝jdk 1下載tar.gz(1.7)
2tar -zxf xxx.tar.gz -C 目錄
3#vi /etc/profile 配置JAVA_HOME
export JAVA_HOME=xxxxx
export PATH=$PATH:$JAVA_HOME/bin
4source /etc/profile
5echo $JAVA_HOME 回顯
6java -version 檢驗
sudo權限 1# vi /etc/sudoers
添加
要設置權限的用戶的用戶名 ALL=(root)NOPASSWD:ALL
如:test ALL=(root)NOPASSWD:ALL
之後sudo+命令等價於在root下使用此命令
任務調度crontab
crontab -l列出目前全部的定時任務
crontab -r刪除全部的定時任務
crontab 基本定義
語法:
* * * * * command
說明:
1)六個字段之間,使用逗號隔開
2)字段的含義
* * * * *
分:1-59, 每十分鐘 */10
時:0-23,*/2
日:1 -31
月:1-12
星期:(0-6)
舉一些例子:
### 天天21:30 執行
30 21 * * * cmd01
### 每月1,11,21 的2:30執行
30 2 1,11,21 * * cmd02
### 每週六或者每週日,1:45 執行(星期一是0)
45 1 * * 6,0 cmd03
### 天天20:00至 23:00 ,每半個小時執行一次
0,30 20-23 * * * cmd04
或者寫
*/30 20-23 * * * cmd04
### 每一小時執行一次
* */1 * * *cmd05
爲何要加/呢?
*/1表示每一分鐘
1表示第一分鐘
Shell腳本
#! shell腳本第一行用其坐開頭指定用哪一個程序來編譯或執行該shell
name=hadoop
建立變量name,其值爲hadoop
(等號先後不能有空格)
echo ${name}或echo name
查看變量name的值
(固然,若是我此時從新克隆一個窗口,那麼是不能引用到這些本地變量的)
/etc/profile中存放的是系統的全局變量
.bash_profile
該文件在用戶主目錄下,能夠設置用戶的環境變量
testst.sh 一個名爲test的shell腳本文件(shell腳本文件以.sh結尾)
執行 . testst.sh
sh testst.sh
bash testst.sh
這裏的dot(表示執行)
以上三種執行方式均可以(可能有細微差異)
bash testst.sh localprama1 參數值2
運行testst.sh腳本,並傳入兩個參數值
bash testst.sh localprama1 " localprama2 key3"
當值中含有空格的時候,要用雙引號
${0} 在shell腳本中表示當前腳本的文件名
${1} 表示第一個參數(能夠理解爲傳入的值對於的變量吧)
也可使用$1,可是推薦${1},由於0=9再日後就必須加花括號了
${#} 位置參量個數
echo $? 運行一條命令,緊接着運行此命令,
能夠顯示剛剛運行的那條命令的狀態碼
0表示成功,其餘表示有問題
數組
arr=(xuan lingya yu)
echo ${arr[2]} 查看數組中第三個元素的值(角標從0開始)
yu
echo ${arr[*]} 查看數組中全部元素的值
xuan lingya yu
echo ${#arr[*]} 數組元素的個數
3
echo ${arr}
xuan
echo ${arr[0]} 數組名等價於數組中角標爲0的元素
xuan
arr[0]=me 修改數組中元素的值
echo $arr
me
$(命令) 裏面寫的是命令
${變量} 裏面寫的是變量
[]的做用:判斷語句的true/fasle,等價於tes(細節比較多)
控制結構,仍是參考鳥哥的書吧,想系統的學習下的話