[use1@localhost Desktop]$ cd ~ //進入家目錄 [use1@localhost ~]$ pwd //顯示完整路徑名 /home/use1 [use1@localhost ~]$ cd demo1 //選擇demo1路徑 [use1@localhost demo1]$ pwd /home/use1/demo1 [use1@localhost demo1]$ cd - //返回上一個文加夾 /home/use1 [use1@localhost ~]$ cd .. //返回上一級目錄 [use1@localhost home]$ pwd /home
ls #顯示當前目錄下的文件名和文件夾名稱 ls -a #查看全部的文件和文件夾,包括隱藏文件,隱藏文件以.開頭 ls -l #查看文件和文件夾的詳細內容(包括建立時間,權限,大小等信息),簡寫爲ll ll -d #查看文件夾和文件夾信息(包括建立時間,權限,大小等信息),不包括名字 ll -h #查看文件和文件夾的信息,和ll的區別是文件大小用k表示 du -sh #查看文件和文件夾大小 ll -t(-rt) #按文件建立的時間進行排序(逆序)
cat 文件名 #查看文件的內容(但不適合大文件的讀取) more 文件名 #查看文件的內容,以頁的形式展現,用空格鍵翻頁 tail 文件名 #直接查看文件末尾的內容 tail -n 文件名 #查看文件最後n行的內容 tail -f 文件名 #查看文件的內容 tail -F 文件名 #查看文件的內容
注意:tail -f 和 tail - F之間的區別
查看命令幫助我麼能夠看到以下信息:php
-f, --follow[={name|descriptor}] output appended data as the file grows; -f, --follow, and --follow=descriptor are equivalent -F same as --follow=name --retry
使用-f一直查看該文件的內容,若是對文件的內容和進行更改也會顯示出來更改的內容,可是若是文件名更改則查看失敗,即便文件名再更改回來也不行。
若是是使用-F和-f的區別在於(retry):若是查看的文件更改文件名,可是再把文件名更改回來還能夠繼續查看改文件的內容。node
mkdir filename #建立目錄(文件夾) mkdir filename1 filename2 #建立兩個目錄 mkdir -p #建立多級目錄
touch file #建立一個空文件 echo "123" > aa.txt #建立aa.txt的同時寫入123
使用vi命令也能夠linux
rmdir 目錄名 #刪除一個目錄(空目錄)
rm 文件名 #刪除一個文件 # rm abc rm: remove regular empty file `abc'? y rm -r --recursive 遞歸刪除 rm -f 強制刪除,不用提示 rm -rf 強制遞歸刪除 rm -rf * #刪除全部當前文件夾下的內容(慎用!)
shell腳本:
[root@rzdatahadoop001 ~]# mkdir /home/hadoop/001 [root@rzdatahadoop001 ~]# hpath="/home/hadoop/001" [root@rzdatahadoop001 ~]# echo $hpath /home/hadoop/001 [root@rzdatahadoop001 ~]# touch /home/hadoop/001/xxx.log [root@rzdatahadoop001 ~]# echo $hpath /home/hadoop/001 [root@rzdatahadoop001 ~]# rm -rf $hpath/* [root@rzdatahadoop001 ~]# ll /home/hadoop/001/ total 0 #邏輯錯誤致使hpath複製爲""(空) [root@rzdatahadoop001 ~]# touch /home/hadoop/001/xxx.log [root@rzdatahadoop001 ~]# hpath="" [root@rzdatahadoop001 ~]# echo $hpath [root@rzdatahadoop001 ~]# rm -rf $hpath/* ==>rm -rf /* 全部文件都刪除了 if [ "${hpath}x" == "x" ];then echo "危險!退出!" exit else rm -rf $hpath/* fi
cp copy(使用該命令要養成備份的習慣) cp 待拷貝文件 拷貝後的文件
mv move mv 帶剪切文件 剪切後文件(文件名可改變)
> :覆蓋文件中的內容 >> :追加文件中的內容(加在最後)
echo 「123」 :打印123 echo 「123」>文件名 :把該文件的內容修改成123;(「>」符號兩邊可有空格也可沒有) echo 「123」 >>文件名:在該文件的最後追加123
man 命令 :查看命令的幫助信息(詳細) ,ctrl+z退出查看 命令 --help:查看命令的幫助信息
ifconfig :查看虛擬機ip
hostname -i :(前提:配置好用戶名和IP的映射關係)查看ip
win下查看IP:ipconfignginx
全局:/etc/profile
我的:~/.bash_profile或者 ~/.bashrc
注:1. 若是沒有.bash_profile,咱們能夠用用命令: cp /etc/skel/.* 用戶的家目錄
複製該目錄下的內容
2.注意.bash_profile的權限問題shell
全局:source /etc/profile
我的:. .bash_profile(.bashrc) 或者 source .bash_profile(.bashrc)
alias :查看虛擬機中有哪些別名 設置臨時別名: alias rt='cd /home/hadoop' (=先後沒有空格) 設置永久別名:須要配置到用戶的環境變量中,而後執行生效命令 1. 修改root用戶的配置文件:vi /etc/profile 2. 在最後一行添加:alias rt='cd /home/hadoop' 命令 3. 執行生效命令:source /etc/profile
history #顯示出全部歷史記錄 history n #顯示出n條記錄 !n #執行第n條記錄
history | grep hadoop :會過濾出全部hadoop相關的內容。
怎樣查看進程?(*****) [root@rzdatahadoop001 ~]# ps -ef | grep ntp ntp 1393 1 0 11:10 ? 00:00:02 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g ntp :進程運行user 1393 :pid 1: 父進程id 怎樣查看端口號?(*****) [root@rzdatahadoop001 ~]# netstat -nlp |grep ntp [root@rzdatahadoop001 ~]# ps -ef|grep ntpd
問題:怎樣查詢一個程序(ntp)的端口號、ip ?vim
ntp 1393 1 0 14:57 ? 00:00:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g root 2482 2130 0 15:22 pts/0 00:00:00 grep ntp [root@zydatahadoop001 ~]# netstat -nlp | grep 1393 udp 0 0 192.168.137.201:123 0.0.0.0:* 1393/ntpd udp 0 0 127.0.0.1:123 0.0.0.0:* 1393/ntpd udp 0 0 0.0.0.0:123 0.0.0.0:* 1393/ntpd udp 0 0 fe80::20c:29ff:fe71:95ad:123 :::* 1393/ntpd udp 0 0 ::1:123 :::* 1393/ntpd udp 0 0 :::123 :::* 1393/ntpd 192.168.137.201:123 這就查詢出該機器的ip和ntp對應的端口號
[root@zydatahadoop001 ~]# netstat -nlp | grep ntp udp 0 0 192.168.137.201:123 0.0.0.0:* 1393/ntpd udp 0 0 127.0.0.1:123 0.0.0.0:* 1393/ntpd udp 0 0 0.0.0.0:123 0.0.0.0:* 1393/ntpd udp 0 0 fe80::20c:29ff:fe71:95ad:123 :::* 1393/ntpd udp 0 0 ::1:123 :::* 1393/ntpd udp 0 0 :::123 :::* 1393/ntpd 192.168.137.201:123 這就查詢出該機器的ip和ntp對應的端口號
[root@rzdatahadoop001 ~]# useradd test 添加一個用戶(test)
[root@rzdatahadoop001 ~]# id test 查詢該用戶。 uid=501(test) gid=501(test) groups=501(test) gid:主組 groups:所在組
[root@rzdatahadoop001 ~]# userdel test 刪除該用戶 [root@rzdatahadoop001 ~]# [root@rzdatahadoop001 ~]# id test id: ruoze: No such user [root@rzdatahadoop001 ~]# useradd test 這時咱們再添加test會出現下面的錯誤在家目錄已經存在了 useradd: warning: the home directory already exists. Not copying any file from skel directory into it. Creating mailbox file: File exists [root@rzdatahadoop001 ~]# [root@rzdatahadoop001 ~]# ll /home 咱們查詢家目錄 total 8 drwx------. 27 jepson jepson 4096 Dec 2 12:00 hadoop drwx------. 4 ruoze ruoze 4096 Dec 2 21:21 test (該用戶還在) [root@rzdatahadoop001 ~]# [root@rzdatahadoop001 ~]# [root@rzdatahadoop001 ~]# cat /etc/passwd | grep test (利用管道查詢該用戶信息) /etc/passwd :該目錄下存放用戶信息 test:x:501:501::/home/test:/bin/bash [root@rzdatahadoop001 ~]# [root@rzdatahadoop001 ~]# cat /etc/group |grep test test:x:501:
[root@rzdatahadoop001 ~]# usermod -a -G bigdata test [root@rzdatahadoop001 ~]# id test uid=501(test) gid=501(test) groups=501(test),502(bigdata) [root@rzdatahadoop001 ~]# [root@rzdatahadoop001 ~]# [root@rzdatahadoop001 ~]# usermod -g bigdata test [root@rzdatahadoop001 ~]# id test uid=501(test) gid=502(bigdata) groups=502(bigdata)
[root@rzdatahadoop001 ~]# passwd test
su test 切換到test用戶
su - test 切換到test用戶
exit 退出用戶
二者有什麼區別呢?windows
當前是root用戶,使用su切換用戶:
[root@zydatahadoop001 home]# ll 查看家目錄下所在用戶 total 4 drwx------. 27 grace grace 4096 Dec 5 2017 grace [root@zydatahadoop001 home]# su grace 使用su切換到grace用戶 [grace@zydatahadoop001 home]$ pwd 查看當前所在位置 /home [grace@zydatahadoop001 home]$ exit 退出用戶 exit 使用su - 切換用戶: [root@zydatahadoop001 home]# su - grace 使用su - 切換到grace用戶 [grace@zydatahadoop001 ~]$ pwd 查看當前所在位置 /home/grace
能夠看出使用su -切換用戶會進入其用戶的家目錄下而是用su則不會改變。
當咱們使用su -切換用戶同時也會執行用戶的配置文件(/home/grace/.bash_profile) 通常使用su - 切換用戶ruby
使用Linux系統時,常常會被要求使用超級權限,若是擁有root帳戶那還好,能夠直接進行任何操做,可是這並不一個好方法,也不推薦使用。root的權限太過大了,慎用!!!bash
修改/etc/sudoers,爲一個用戶加sudo權限,添加一行
[root@rzdatahadoop001 ~]# vi /etc/sudoers 用戶名 ALL=(root) NOPASSWD:ALL (添加這一行內容) NOPASSWD:ALL 表示使用sudo命令時不用輸入密碼 測試效果: [grace@rzdatahadoop001 ~]$ ls -l /root ls: cannot open directory /root: Permission denied (出現:Permission denied 表明權限問題) [grace@rzdatahadoop001 ~]$ sudo ls -l /root total 120
文件的權限位是從第二位到第十位
r: read 讀 w: write 寫 x: execute 執行 -: 表明在這一位沒有這個權限
-rw-r--r--. 1 root root 4 Dec 2 12:29 xxx.log 存在一個xxx.log文件 第一位: -:表明文件 d:表明文件夾 l:表明鏈接 第一組: rw- root這個用戶對這個文件只有讀寫權限 第二組: r-- root這個組的全部用戶對這個文件只有讀權限 第三組: r-- 其餘用戶組的全部用戶組對這個文件只有讀權限
chown 用戶名:組名 文件名 chown -R test:test /0001 -R:參數表明對文件夾的修改 chown test:test /root/xxx.log 即修改用戶也修改了用戶組
chown 用戶名 文件名 chown test /root/xxx.log 只修改用戶
chgrp change group :修改所在組 chgrp 組名 文件名 chgrp test /root/xxx.log
使用數字的方式進行修改markdown
chmod 數字 文件名
r 4 2^2 w 2 2^1 x 1 2^0 將對應的數字相加,就是最終的權限。 rw-r--r-- ==》 644 777 =》 rwxrwxrwx 文件夾 : -R 遞歸--》文件夾(若是修改文件夾須要帶上參數-R) chmod -R 777 /0001 對文件夾進行修改權限 變爲:rwxrwxrwx chmod 777 /root/xxx.log 對文件進行權限修改 變爲:rwxrwxrwx
rpm -qa 查詢全部安裝在linux上的軟件
rpm -qa | grep sudo 查詢在操做系統上安裝的sudo軟件
rpm -e 軟件名 rpm -e sudo 刪除sudo軟件,會同時刪除/etc/sudoers文件,可是系統會自動生成一個 /etc/sudoers.rpmsave 文件備份源文件 rpm的依賴問題 在linux操做系統中使用rpm對軟件進行安裝或卸載的時候,會有軟件之間的 依賴問題存在,好比:安裝a軟件,要先安裝b軟件和c軟件。。。 若是想要強行安裝或卸載而不考慮依賴問題,那麼須要使用到--nodeps參數 --nodeps do not verify package dependencies rpm -e --nodeps 軟件名 #強行卸載這個軟件
首先要保證上網環境,開源鏡像是系統默認的。
安裝軟件:
yum [-y] install 軟件名
-y: 在安裝過程當中自動輸入yes
yum list 查詢yum源上擁有的軟件 # yum list installed | more 查詢在本機上已經安裝的軟件包 # yum list updates | more 查詢能夠更新的軟件包
yum [-y] remove 軟件名
-y: 在卸載的過程當中自動輸入yes
wget 網絡地址
#將網絡上的文件下載下來後,存儲在當前目錄下 wget -O 文件名 網絡地址 #網絡上的文件下載下來後,直接存在某個文件中 wget -b 網絡地址 #在後臺下載網絡文件
在windows中,使用一款壓縮軟件就能所有搞定壓縮和解壓縮的問題
在linux中,一款壓縮軟件不能適用於全部壓縮的文件
打包壓縮命令
使用tar進行打包壓縮的文件以.tar.gz結尾
壓縮文件:
tar -zcvf filename.tar.gz file1 file2 ...
解壓縮文件:
tar -zxvf filename.tar.gz
tar -zxvf filename.tar.gz -C 目錄 #解壓縮到指定目錄下
參數:
-z, --gzip, --gunzip, --ungzip filter the archive through gzip -c, --create create a new archive -x, --extract, --get extract files from an archive -v, --verbose verbosely list files processed -f, --file=ARCHIVE use archive file or device ARCHIVE 特色:既能夠進行壓縮,也能夠進行解壓縮 源文件保留
df -h 查看硬盤使用狀況 free -m 查看內存使用狀況 top 查看系統狀況
查看當前用戶下哪些做業: crontab -l 添加、編輯:crontab -e
這時可能會使用shell腳本執行命令
&
nohup
screen(yum install -y screen) 工做: ./test.sh & nohup ./test.sh & --》生成nohup.out nohup ./test.sh>test.log 2>&1 & screen: screen -list 查看會話 screen -S xxx 創建一個後臺的會話 screen -r xxx/id 進入會話 退出會話: ctrl+a+d --》[detached] 分離
應用場景:
在/A/test.sh 須要自行的shell腳本,如今想移動到/B/ 目錄下,可是我此時的訪問路徑仍是/A/test.sh ,這時候就可使用軟鏈接:
[grace@zydatahadoop001 ~]$ ll
total 40 drwxrwxr-x. 2 grace grace 4096 Dec 19 03:32 A drwxrwxr-x. 2 grace grace 4096 Dec 19 03:26 B drwxr-xr-x. 5 grace grace 4096 Dec 2 01:32 Desktop drwxr-xr-x. 2 grace grace 4096 Dec 1 17:57 Documents drwxr-xr-x. 2 grace grace 4096 Dec 1 17:57 Downloads drwxr-xr-x. 2 grace grace 4096 Dec 1 17:57 Music drwxr-xr-x. 2 grace grace 4096 Dec 1 17:57 Pictures drwxr-xr-x. 2 grace grace 4096 Dec 1 17:57 Public drwxr-xr-x. 2 grace grace 4096 Dec 1 17:57 Templates drwxr-xr-x. 2 grace grace 4096 Dec 1 17:57 Videos [grace@zydatahadoop001 ~]$ cat A/test.sh #!/bin/sh date
[grace@zydatahadoop001 ~]$ mv A/test.sh B/ [grace@zydatahadoop001 ~]$ cd B [grace@zydatahadoop001 B]$ ll total 4 -rwxrwxrwx. 1 grace grace 15 Dec 19 03:32 test.sh
[grace@zydatahadoop001 B]$ ln -s /home/grace/B/test.sh /home/grace/A/test.sh [grace@zydatahadoop001 B]$ ll total 4 -rwxrwxrwx. 1 grace grace 15 Dec 19 03:32 test.sh [grace@zydatahadoop001 ~]$ cd A [grace@zydatahadoop001 A]$ ll total 0 lrwxrwxrwx. 1 grace grace 21 Dec 19 03:37 test.sh -> /home/grace/B/test.sh
此時並不由於test.sh文件移動而修改執行命令:
[grace@zydatahadoop001 ~]$ A/test.sh Tue Dec 19 03:51:19 CST 2017 成功打印信息
vi命令是UNIX操做系統和
類UNIX操做系統中最通用的全屏幕純文本編輯器。Linux中的vi編輯器叫vim,它是vi的加強版(vi Improved),與vi編輯器徹底兼容,並且實現了不少加強功能。
vi filename :進入命令模式,使用「A」、「a」、「O」、「o」、「I」、「i」鍵,切換到編輯模式;使用「esc」鍵,從編輯模式切換到命令模式。在命令模式中shift+:進入尾行模式。
A:在當前光標的行末添加文本;
a: 在當前光標的字符後添加文本;
I:在當前光標的行首插入文本; i:在當前光標的字符前插入文本; O:在當前光標的行前插入一行空格; o: 在當前光標的行後插入一行空格。
gg:光標停留在第一行第一個字符;
G:光標停留在最後一行第一個字符; dd:剪切光標所在一行內容; dG:刪除光標所在行即下面全部行 ndd(數字+dd):剪切光標下方n行; D:從光標所在的位置剪切到該行的末尾; p:粘貼 yy:複製一行; nyy(數字+yy):複製光標下方n行; shift+$:光標移動到該行的最後一個字符。
wq:在命令模式下,執行存盤退出操做; w:在命令模式下,執行存盤操做; q:在命令模式下,執行退出vi操做; q!:在命令模式下,執行強制退出vi操做; wq!:強制保存+退出。
若是是隻讀文件,你想往裏面寫東西,會報: ‘readonly’ option is set (add ! to override)
在命令模式下,搜索一個字符串string /string n 繼續搜索下一個; N 搜索上一個出現位置。