Linux常用命令
日常操作命令
查看當(dāng)前所在的工作目錄的全路徑pwd
12[root@localhost?~]# pwd
/root
查看當(dāng)前系統(tǒng)的時(shí)間date
12345678[root@localhost ~]# date +%Y-%m-%d2016-07-26date +%Y-%m-%d ?--date="-1 day"?#加減也可以 month | year2016-07-25[root@localhost ~]# date -s "2016-07-28 16:12:00"?## 修改時(shí)間Thu Jul 28?16:12:00?PDT 2016
查看有誰在線(哪些人登陸到了服務(wù)器)
123456789101112who ?查看當(dāng)前在線[root@localhost ~]# whohadoop ? tty1 ? ? ? ? 2016-07-26?00:01?(:0)hadoop ? pts/0?? ? ? ?2016-07-26?00:49?(:0.0)root ? ? pts/1?? ? ? ?2016-07-26?00:50?(192.168.233.1)last 查看最近的登陸歷史記錄[root@localhost ~]# lastroot ? ? pts/1?? ? ? ?192.168.233.1?? ?Tue Jul 26?00:50?? still logged in ? hadoop ? pts/0?? ? ? ?:0.0?? ? ? ? ? ? Tue Jul 26?00:49?? still logged in ? hadoop ? tty1 ? ? ? ? :0?? ? ? ? ? ? ? Tue Jul 26?00:01?? still logged in ? reboot ? system boot ?2.6.32-573.el6.x Tue Jul 26?07:58?- 16:23?(2+08:24)
關(guān)機(jī)/重啟
123456789關(guān)機(jī)(必須用root用戶)shutdown?-h now??## 立刻關(guān)機(jī)shutdown?-h +10??## ?10分鐘以后關(guān)機(jī)shutdown?-h 12:00:00??##12點(diǎn)整的時(shí)候關(guān)機(jī)halt ? # ?等于立刻關(guān)機(jī)重啟shutdown?-r nowreboot ? # 等于立刻重啟
清屏
1clear?? ?## 或者用快捷鍵 ?ctrl + l
退出當(dāng)前進(jìn)程
1ctrl+c ? ##有些程序也可以用q鍵退出
掛起當(dāng)前進(jìn)程
123ctrl+z ? ## 進(jìn)程會(huì)掛起到后臺(tái)bg?jobid ?## 讓進(jìn)程在后臺(tái)繼續(xù)執(zhí)行fg?jobid ? ## 讓進(jìn)程回到前臺(tái)
echo
1234567相當(dāng)于java中System.out.println(userName)?[root@localhost?~]# a="hi boy"[root@localhost?~]# echo aa[root@localhost?~]# echo $ahi boy
目錄操作
查看目錄信息
123ls?/ ? ## 查看根目錄下的子節(jié)點(diǎn)(文件夾和文件)信息ls?-al ## ?-a是顯示隱藏文件 ? -l是以更詳細(xì)的列表形式顯示ls?-l??##有一個(gè)別名: ll ? ?可以直接使用ll ?<是兩個(gè)L>
切換工作目錄
1234cd??/home/hadoop ? ?## 切換到用戶主目錄cd?~ ? ? ## 切換到用戶主目錄cd?- ? ? ## ?回退到上次所在的目錄cd??什么路徑都不帶搀突,則回到用戶的主目錄
創(chuàng)建文件夾
123mkdir?aaa ? ? ## 這是相對(duì)路徑的寫法 mkdir??/data ? ?## 這是絕對(duì)路徑的寫法 mkdir?-p ?aaa/bbb/ccc ? ## 級(jí)聯(lián)創(chuàng)建目錄
刪除文件夾
123rmdir ?aaa?? ## 可以刪除空目錄rm ?-r ?aaa?? ## 可以把a(bǔ)aa整個(gè)文件夾及其中的所有子節(jié)點(diǎn)全部刪除rm ?-rf ?aaa?? ## 強(qiáng)制刪除aaa
修改文件夾名稱
12345678910111213141516mv ?aaa ?boymv本質(zhì)上是移動(dòng)mv ?install.log??aaa/ ?將當(dāng)前目錄下的install.log?移動(dòng)到aaa文件夾中去rename 可以用來批量更改文件名[root@localhost aaa]# lltotal 0-rw-r--r--. 1?root root 0?Jul 28?17:33?1.txt-rw-r--r--. 1?root root 0?Jul 28?17:33?2.txt-rw-r--r--. 1?root root 0?Jul 28?17:33?3.txt[root@localhost aaa]# rename .txt .txt.bak *[root@localhost aaa]# lltotal 0-rw-r--r--. 1?root root 0?Jul 28?17:33?1.txt.bak-rw-r--r--. 1?root root 0?Jul 28?17:33?2.txt.bak-rw-r--r--. 1?root root 0?Jul 28?17:33?3.txt.bak
文件操作
創(chuàng)建文件
12345678touch ?somefile.1?? ? ? ## 創(chuàng)建一個(gè)空文件echo "hi,boy"?> somefile.2?? ? ## 利用重定向“>”的功能,將一條指令的輸出結(jié)果寫入到一個(gè)文件中,會(huì)覆蓋原文件內(nèi)容矛绘,如果指定的文件不存在,則會(huì)創(chuàng)建出來echo "hi baby"?>> somefile.2?? ?## 將一條指令的輸出結(jié)果追加到一個(gè)文件中刃永,不會(huì)覆蓋原文件內(nèi)容
vi文本編輯器
12345678910111213141516171819202122232425262728293031323334最基本用法vi ?somefile.41?首先會(huì)進(jìn)入“一般模式”货矮,此模式只接受各種快捷鍵,不能編輯文件內(nèi)容2?按i鍵斯够,就會(huì)從一般模式進(jìn)入編輯模式囚玫,此模式下喧锦,敲入的都是文件內(nèi)容3?編輯完成之后,按Esc鍵退出編輯模式抓督,回到一般模式燃少;4?再按:,進(jìn)入“底行命令模式”铃在,輸入wq命令阵具,回車即可常用快捷鍵一些有用的快捷鍵(在一般模式下使用):a ? 在光標(biāo)后一位開始插入A ??在該行的最后插入I ??在該行的最前面插入gg ? 直接跳到文件的首行G ?? 直接跳到文件的末行dd ? ?刪除一行3dd ? 刪除3行yy ? ?復(fù)制一行3yy ? 復(fù)制3行p ? ? 粘貼u ? ? undov ? ? ? ?進(jìn)入字符選擇模式,選擇完成后定铜,按y復(fù)制阳液,按p粘貼ctrl+v ? 進(jìn)入塊選擇模式,選擇完成后揣炕,按y復(fù)制帘皿,按p粘貼shift+v ?進(jìn)入行選擇模式,選擇完成后畸陡,按y復(fù)制鹰溜,按p粘貼查找并替換1?顯示行號(hào):set nu2?隱藏行號(hào):set nonu3?查找關(guān)鍵字:/you ? ? ? ## 效果:查找文件中出現(xiàn)的you,并定位到第一個(gè)找到的地方丁恭,按n可以定位到下一個(gè)匹配位置(按N定位到上一個(gè))4?替換操作:s/sad/bbb ? ?查找光標(biāo)所在行的第一個(gè)sad奉狈,替換為bbb:%s/sad/bbb ? ? ?查找文件中所有sad,替換為bbb
拷貝/刪除/移動(dòng)
1234cp ?somefile.1?? /home/hadoop/rm /home/hadoop/somefile.1rm -f /home/hadoop/somefile.1mv /home/hadoop/somefile.1 ../
查看文件內(nèi)容
12345678910111213cat ? ?somefile ? ? ?一次性將文件內(nèi)容全部輸出(控制臺(tái))more ? somefile ? ? ?可以翻頁查看, 下翻一頁(空格) ? ?上翻一頁(b) ? 退出(q)less ? somefile ? ? ?可以翻頁查看,下翻一頁(空格) ? ?上翻一頁(b)涩惑,上翻一行(↑) ?下翻一行(↓) ?可以搜索關(guān)鍵字(/keyword)跳到文件末尾: G跳到文件首行: gg退出less : ?qtail -10 ?install.log??查看文件尾部的10行tail +10??install.log??查看文件 10-->末行tail -f?install.log?? ?小f跟蹤文件的唯一inode號(hào)仁期,就算文件改名后,還是跟蹤原來這個(gè)inode表示的文件tail -F?install.log?? ?大F按照文件名來跟蹤head?-10??install.log?? 查看文件頭部的10行
打包壓縮
1234567891011121314151617181920212223242526272829303132333435363738391竭恬、gzip壓縮gzip a.txt2跛蛋、解壓gunzip a.txt.gzgzip -d a.txt.gz3、bzip2壓縮bzip2 a4痊硕、解壓bunzip2 a.bz2bzip2 -d a.bz25赊级、打包:將指定文件或文件夾tar -cvf bak.tar??./aaa將/etc/password追加文件到bak.tar中(r)tar -rvf bak.tar?/etc/password6、解壓tar -xvf bak.tar7岔绸、打包并壓縮tar -zcvf a.tar.gz??aaa/8理逊、解包并解壓縮(重要的事情說三遍!!!)tar ?-zxvf ?a.tar.gz解壓到/usr/下tar ?-zxvf ?a.tar.gz??-C ?/usr9、查看壓縮包內(nèi)容tar -ztvf a.tar.gzzip/unzip10盒揉、打包并壓縮成bz2tar -jcvf a.tar.bz211晋被、解壓bz2tar -jxvf a.tar.bz2
查找命令
常用查找命令的使用
123456789101112131415161718192021222324251、查找可執(zhí)行的命令所在的路徑:which?ls2刚盈、查找可執(zhí)行的命令和幫助的位置:whereis ls3羡洛、從某個(gè)文件夾開始查找文件find / -name "hadooop*"find / -name "hadooop*"?-ls4、查找并刪除find / -name "hadooop*"?-ok rm?{} \;find / -name "hadooop*"?-exec rm?{} \;5藕漱、查找用戶為hadoop的文件find ?/usr ?-user ?hadoop ?-ls6欲侮、查找用戶為hadoop的文件夾find /home -user hadoop -type?d?-ls7崭闲、查找權(quán)限為777的文件find / -perm -777 -type?d?-ls8、顯示命令歷史history
grep命令
123456789101112131415161718192021222324252627282930313233343536373839404142431?基本使用查詢包含hadoop的行g(shù)rep?hadoop /etc/passwordgrep?aaa ?./*.txt 2?cut截取以:分割保留第七段grep?hadoop /etc/passwd | cut -d: -f73?查詢不包含hadoop的行g(shù)rep?-v hadoop /etc/passwd4?正則表達(dá)包含hadoopgrep?'hadoop'?/etc/passwd5?正則表達(dá)(點(diǎn)代表任意一個(gè)字符)grep?'h.*p'?/etc/passwd6?正則表達(dá)以hadoop開頭grep?'^hadoop'?/etc/passwd7?正則表達(dá)以hadoop結(jié)尾grep?'hadoop$'?/etc/passwd規(guī)則:. ?: 任意一個(gè)字符a* : 任意多個(gè)a(零個(gè)或多個(gè)a)a? : 零個(gè)或一個(gè)aa+ : 一個(gè)或多個(gè)a.* : 任意多個(gè)任意字符\. : 轉(zhuǎn)義.o\{2\} : o重復(fù)兩次查找不是以#開頭的行g(shù)rep?-v '^#'?a.txt | grep?-v '^$'?以h或r開頭的grep?'^[hr]'?/etc/passwd不是以h和r開頭的grep?'^[^hr]'?/etc/passwd不是以h到r開頭的grep?'^[^h-r]'?/etc/passwd
文件權(quán)限的操作
linux文件權(quán)限的描述格式解讀
1234567drwxr-xr-x ? ? ?(也可以用二進(jìn)制表示 ?111?101?101??--> ?755)d:標(biāo)識(shí)節(jié)點(diǎn)類型(d:文件夾 ? -:文件 ?l:鏈接)r:可讀 ? w:可寫 ? ?x:可執(zhí)行 第一組rwx: ?## 表示這個(gè)文件的擁有者對(duì)它的權(quán)限:可讀可寫可執(zhí)行第二組r-x: ?## 表示這個(gè)文件的所屬組用戶對(duì)它的權(quán)限:可讀威蕉,不可寫刁俭,可執(zhí)行第三組r-x: ?## 表示這個(gè)文件的其他用戶(相對(duì)于上面兩類用戶)對(duì)它的權(quán)限:可讀,不可寫韧涨,可執(zhí)行
修改文件權(quán)限
1234567891011chmod?g-rw haha.dat ?## 表示將haha.dat對(duì)所屬組的rw權(quán)限取消chmod?o-rw haha.dat ?## 表示將haha.dat對(duì)其他人的rw權(quán)限取消chmod?u+x?haha.dat ?## 表示將haha.dat對(duì)所屬用戶的權(quán)限增加xchmod?a-x?haha.dat ? ? ? ? ? ? ? ## 表示將haha.dat對(duì)所用戶取消x權(quán)限也可以用數(shù)字的方式來修改權(quán)限chmod?664?haha.dat ? 就會(huì)修改成 ? rw-rw-r--如果要將一個(gè)文件夾的所有內(nèi)容權(quán)限統(tǒng)一修改牍戚,則可以-R參數(shù)chmod?-R 770?aaa/
修改文件所有權(quán)
1234<只有root權(quán)限能執(zhí)行>chown?angela ?aaa ## 改變所屬用戶chown?:angela ?aaa ## 改變所屬組chown?angela:angela aaa/ ## 同時(shí)修改所屬用戶和所屬組
基本的用戶管理
1234567添加一個(gè)用戶:useradd sparkpasswd ?spark ? ? 根據(jù)提示設(shè)置密碼;即可刪除一個(gè)用戶:userdel -r spark ? ? 加一個(gè)-r就表示把用戶及用戶的主目錄都刪除
添加用戶
12345678添加一個(gè)tom用戶氓奈,設(shè)置它屬于users組翘魄,并添加注釋信息分步完成:useradd tom?? ? ? ? ?usermod -g?users tom ??usermod -c "hr tom"?tom一步完成:useradd -g?users -c "hr tom"?tom設(shè)置tom用戶的密碼passwd tom
修改用戶
12345678修改tom用戶的登陸名為tomcatusermod -l?tomcat tom將tomcat添加到sys和root組中usermod -G?sys,root tomcat查看tomcat的組信息groups tomcat
用戶組操作
123456789101112添加一個(gè)叫america的組groupadd america將jerry添加到america組中usermod -g?america jerry將tomcat用戶從root組和sys組刪除gpasswd -d?tomcat rootgpasswd -d?tomcat sys將america組名修改為amgroupmod -n?am america
為用戶配置sudo權(quán)限
1234567用root編輯 vi /etc/sudoers在文件的如下位置,為hadoop添加一行即可root ? ?ALL=(ALL) ? ? ? ALL?? ? hadoop ?ALL=(ALL) ? ? ? ALL然后舀奶,hadoop用戶就可以用sudo來執(zhí)行系統(tǒng)級(jí)別的指令[root@localhost ~]$ sudo useradd xiaoming
系統(tǒng)管理操作
掛載外部存儲(chǔ)設(shè)備
123456789101112131415可以掛載光盤暑竟、硬盤、磁帶育勺、光盤鏡像文件等1/ 掛載光驅(qū)mkdir ? /mnt/cdrom ? ? ?創(chuàng)建一個(gè)目錄但荤,用來掛載mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom/ ? ? 將設(shè)備/dev/cdrom掛載到 掛載點(diǎn) : ?/mnt/cdrom中2/ 掛載光盤鏡像文件(.iso文件)mount -t iso9660 -o loop ?/home/hadoop/Centos-6.7.DVD.iso /mnt/centos注:掛載的資源在重啟后即失效,需要重新掛載涧至。要想自動(dòng)掛載腹躁,可以將掛載信息設(shè)置到/etc/fstab配置文件中,如下:/dev/cdrom ? ? ? ? ? ? ?/mnt/cdrom ? ? ? ? ? ? ?iso9660 defaults ? ? ? ?0?03/ 卸載 umountumount /mnt/cdrom4/ 存儲(chǔ)空間查看df -h
統(tǒng)計(jì)文件或文件夾的大小
12du -sh??/mnt/cdrom/packagesdf -h?? ?查看磁盤的空間
系統(tǒng)服務(wù)管理
1234service sshd statusservice sshd stop?service sshd startservice sshd restart
系統(tǒng)啟動(dòng)級(jí)別管理
12345678910111213vi ?/etc/inittab?? ? ? # Default runlevel. The runlevels used are:?? ? ? # ? 0 - halt (Do NOT set initdefault to this)?? ? ? # ? 1 - Single user mode?? ? ? # ? 2 - Multiuser, without NFS (The same as 3, if?you do not have networking)?? ? ? # ? 3 - Full multiuser mode?? ? ? # ? 4 - unused?? ? ? # ? 5 - X11?? ? ? # ? 6 - reboot (Do NOT set initdefault to this)?? ? ? #?? ? ? id:3:initdefault:?? ? ? ## 通常將默認(rèn)啟動(dòng)級(jí)別設(shè)置為:3
進(jìn)程管理
1234topfreeps -ef | grep sshkill -9
SSH免密登陸配置
SSH工作機(jī)制
12345678910111213141516171819201南蓬、相關(guān)概念SSH 為 Secure Shell(安全外殼協(xié)議) 的縮寫纺非。很多ftp、pop和telnet在本質(zhì)上都是不安全的赘方,因?yàn)樗鼈冊(cè)诰W(wǎng)絡(luò)上用明文傳送口令和數(shù)據(jù)烧颖,別有用心的人非常容易就可以截獲這些口令和數(shù)據(jù)。而SSH就是專為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議窄陡。SSH是由客戶端和服務(wù)端的軟件組成的服務(wù)端是一個(gè)守護(hù)進(jìn)程(sshd)炕淮,他在后臺(tái)運(yùn)行并響應(yīng)來自客戶端的連接請(qǐng)求√玻客戶端包含ssh程序以及像scp(遠(yuǎn)程拷貝)涂圆、slogin(遠(yuǎn)程登陸)、sftp(安全文件傳輸)等其他的應(yīng)用程序币叹。2润歉、認(rèn)證機(jī)制從客戶端來看,SSH提供兩種級(jí)別的安全驗(yàn)證套硼。第一種級(jí)別(基于口令的安全驗(yàn)證)只要你知道自己帳號(hào)和口令卡辰,就可以登錄到遠(yuǎn)程主機(jī)。第二種級(jí)別(基于密鑰的安全驗(yàn)證)需要依靠密匙邪意,也就是你必須為自己創(chuàng)建一對(duì)密匙九妈,并把公用密匙放在需要訪問的服務(wù)器上。如果你要連接到SSH服務(wù)器上雾鬼,客戶端軟件就會(huì)向服務(wù)器發(fā)出請(qǐng)求萌朱,請(qǐng)求用你的密匙進(jìn)行安全驗(yàn)證。服務(wù)器收到請(qǐng)求之后策菜,先在該服務(wù)器上你的主目錄下尋找你的公用密匙晶疼,然后把它和你發(fā)送過來的公用密匙進(jìn)行比較。如果兩個(gè)密匙一致又憨,服務(wù)器就用公用密匙加密“質(zhì)詢”(challenge)并把它發(fā)送給客戶端軟件翠霍。客戶端軟件收到“質(zhì)詢”之后就可以用你的私人密匙解密再把它發(fā)送給服務(wù)器蠢莺。
密鑰登陸方式配置
123456假如 A??要登陸 ?B在A上操作:1/ 首先生成密鑰對(duì)ssh-keygen ? (提示時(shí)寒匙,直接回車即可)2/ 再將A自己的公鑰拷貝并追加到B的授權(quán)列表文件authorized_keys中ssh-copy-id ? B
網(wǎng)絡(luò)管理
主機(jī)名配置
123456781/ 查看主機(jī)名hostname2/ 修改主機(jī)名(重啟后無效)hostname hadoop3/ 修改主機(jī)名(重啟后永久生效) vi /ect/sysconfig/network
IP地址配置
1234567891011修改IP地址1/ 方式一:setup用root輸入setup命令,進(jìn)入交互式修改界面2/ 方式二:修改配置文件 一般使用這種方法(重啟后永久生效)vi /etc/sysconfig/network-scripts/ifcfg-eth03/ 方式三:ifconfig命令(重啟后無效)ifconfig eth0 192.168.12.22
網(wǎng)絡(luò)服務(wù)管理
12345678910111?后臺(tái)服務(wù)管理service network status ? ?查看指定服務(wù)的狀態(tài)service network stop?? ? 停止指定服務(wù)service network start?? ? 啟動(dòng)指定服務(wù)service network restart ? 重啟指定服務(wù)service --status-all ? ? ? 查看系統(tǒng)中所有的后臺(tái)服務(wù)2?設(shè)置后臺(tái)服務(wù)的自啟配置chkconfig ? 查看所有服務(wù)器自啟配置chkconfig iptables off ? 關(guān)掉指定服務(wù)的自動(dòng)啟動(dòng)chkconfig iptables on?? 開啟指定服務(wù)的自動(dòng)啟動(dòng)