Linux是一類Unix計算機操做系統的統稱。Linux操做系統也是自由軟件和開放源代碼發展中最著名的例子。在1991 年的十月,由一個名爲 Linus Torvalds的年輕芬蘭大學生帶頭開發的做業系統。前端
開放性,多用戶,多任務,優異的性能和穩定性java
參考文檔node
鏡像下載https://wiki.centos.org/Download 通常是非盈利社區mysql
/ 最頂級目錄,全部的東西都在/目錄下linux
bin 可執行文件,能夠被root和通常用戶使用的指令,也就是經常使用命令sql
dev 外接設備vim
etc 配置文件windows
home 普通用戶家目錄 非root用戶centos
lib 二進制文件,如支持命令的庫服務器
mnt 掛載文件系統的目錄
proc 存放一些執行的進程的信息
root 超級用戶的家目錄 ~
sbin 超級用戶使用的命令
tmp 臨時文件存放目錄
usr 用戶程序命令
var 存放日誌或數據文件
標準格式: 命令 [參數] [操做對象]
顯示當前目錄全部文件(和文件夾)簡單信息
舉例:ls (其後面也能夠加路徑,例如:ls /test/aaa)
-l 顯示詳細信息
-a 顯示全部文件,包括隱藏文件
-alh 顯示文件大小 不分前後順序
相對路徑: 根據參照物肯定路徑,通常爲當前目錄(.或./表明當前目錄 ../表明上一級目錄 ~表明家目錄)
絕對路徑: 直接從頂級目錄開始,好比/
顯示全部文件(和文件夾)詳細信息
舉例:ll 路徑名 例如:ll /test/aaa
若是ll後面不加路徑就表明查看當前目錄
顯示出來的東西若是以-開頭,說明它是文件
若是以d開頭,說明它是目錄,文件夾
-h 顯示文件的大小
-a 顯示隱藏文件
進入到某個目錄
舉例 cd /
cd .. 返回上一級目錄
顯示路徑(絕對路徑)
建立目錄
舉例:mkdir aaa
-p 建立多級目錄
刪除空目錄
舉例rmdir aaa
建立空文件
舉例:touch aaa.txt(touch 後面也能夠跟路徑,如:touch /test/aaa.txt)
建立多個文件
touch a.txt b.txt
複製
cp複製文件
舉例:cp aaa.txt bbb.txt
cp -r 複製目錄
移動文件或目錄(也是重命名)
舉例:mv /test/aaa/a.txt /test/bbb (把/test/aaa/a.txt移動到/test/bbb)
mv /test/aaa/a.txt /test/aaa/b.txt(重命名)
刪除 (不提示刪除 rm -rf) (rm -r 遞歸刪除)
舉例:rm -rf a.txt
刪除多個:rm -rf a.txt b.txt
編輯文本
例如: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的增強版
輸出重定向
> 覆蓋輸出
>> 追加輸出
查看文件內容
舉例:cat /test/aaa.txt
查看多個文件 cat a.txt b.txt
查看文件前n行內容
舉例:head -10 /test/test01/bbb.txt
-10表明前10行
分頁查看
空格顯示下一行
可使用【pageup】和【pagedown】鍵進行前翻頁和後翻頁
分頁顯示
按空格鍵顯示下一頁,ctrl+b返回上一頁
v 調用vi編輯器
q 退出
查看文件的後幾行
舉例:tail -10 /test/aaa.txt
tail -f是動態查看(例子:tail -f /test/aaa.txt)
打印
舉例:echo 「hello world」
echo 「hello java」> /test/a.txt (覆蓋)
echo 「hello java」>> /test/a.txt (追加)
echo -e 「hello\n」
清空屏幕
Ctrl l
顯示命令路徑
舉例:which ls
查看目錄大小
du -sh /etc/
查看磁盤大小
通常使用df -h
顯示內存大小
-m 以MB顯示
-g 以GB顯示
統計
wc 有四個參數可選,分別是l,c,m,w
wc -l filename 報告行數
wc -c filename 報告字節數
wc -m filename 報告字符數
wc -w filename 報告單詞數 根據換行和空格統計單詞數
時間相關
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"
日曆
管道符
把左邊的結果傳給右邊
過濾
功能:查找匹配格式的內容
格式: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
查找
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
建立用戶
建立新用戶:useradd 用戶名
修改用戶密碼:passwd 用戶名
編輯/etc/sudoers文件,使用命令visudo
在root ALL=(ALL) ALL這一行下面添加:
用戶名 ALL=(ALL) ALL
:x!
使用普通用戶來操做root用戶的文件使用命令sudo + 命令,如:
sudo vi/etc/profile
切換用戶使用su 用戶名
刪除用戶:userdel -rf 用戶名
修改權限
語法爲: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
修改所屬用戶和組
chown hadoop:hadoop filename 修改所屬用戶各組
chown –R 遞歸修改
顯示當前狀態的進程信息
ps -ef | grep mysql
功能:顯示當前系統正在執行的進程的相關信息,包括進程ID、內存佔用率、CPU佔用率等
壓縮和解壓
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)
殺死進程
kill -9 1123(進程號)
service network restart 重啓網卡
它融合以前service和chkconfig的功能於一體。
firewalld的基本使用
啓動: systemctl start firewalld
關閉: systemctl stop firewalld
查看狀態: systemctl status firewalld
開機禁用 : systemctl disable firewalld
開機啓用 : systemctl enable firewalld
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
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 ... 不提示執行
後臺啓動進程,配合&使用
例如: nohup sh a.sh &
遠程發送 將當前機器上的某一個文件發送給另外一臺機器
scp -r ./a.txt test-hadoop-2-21:/home/hadoop
sync:做用:將內容中數據保存到磁盤
同步 做用:將兩個節點的指定文件夾內容 同步
rsync -a -auvzP --bwlimit=30000 192.168.2.21:$src_dir $dst_dir
通常下載資源使用
wget http://xxxxxxxxxx
查看ip
重啓系統
關機
歷史命令
顯示在線登錄用戶
顯示主機名
設置主機名:
hostnamectl set-hostname 要設置的名字
分割 echo "hello world" | cut -d 指定分隔符 " " -f 2 (經過空格分割,顯示第二列)
排序 cat /etc/passwd | sort 字典排序,天然排序
去重cat /etc/passwd | sort|uniq (去重依賴於sort)
強行中止進程(Ctrl鍵與C同時按)
以樹狀形式顯示目錄結構
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