天天看點

linux常用操作

快捷操作

tab(自動補齊,當有多個選擇時按兩次tab會出現清單)ctrl+d(退出目前操作)ctrl+c(停止目前執行的指令)

系統指令

shutdown –h now(立刻關機)shutdown –h 15:30(15:30分關機)shutdown –h +20(30分鐘後關機 )shutdown –r +20 "System will reboot"(20分鐘後重新開機,提示System will reboot)(忘記Root管理者密碼)1.系統起動時,随便按一個鍵進入grub菜單(忘記Root管理者密碼)2.按e鍵進入編輯模式(忘記Root管理者密碼)3.移入kernel行,按e繼續編輯(忘記Root管理者密碼)4.在最後面輸入( single)+回車(忘記Root管理者密碼)5.按b引導系統進入單使用者模式(忘記Root管理者密碼)6.執行passwd指令,輸入新密碼(忘記Root管理者密碼)7.重起電腦 reboot

目錄檔案操作

.(目前目錄)..(上級目錄)-(上一個工作目錄)~(家目錄(宿主目錄))cd ..(傳回上級目錄)ls .(顯示目前目錄)ls(顯示目錄内容)ls -a(包含隐藏檔案)ls -l(列出檔案詳細資訊如屬性與權限資訊)ls –lh(以容易識别的機關顯示如GB/MB/KB)cd(切換目錄) cd ..(進入上級目錄)cd ~aa(進入hdxj使用者宿主目錄)cd=cd ~(傳回目前使用者家目錄)cd /tmp(進入根下tmp目錄)touch(建立空檔案)mkdir h(在宿主目錄建立houdunwang目錄)mkdir –p /a/b/c(遞歸建立目錄)rm hd.php(删除檔案hd.php)rm –r h(遞歸删除目錄)rm –rf h(不用确認的删除操作)cp hdphp /tmp/hdphp(複制檔案hdphp到tmp目錄)cp a1.txt a2.txt tmp(a1.txt與a2.txt複制到/tmp目錄)cp hdphp*.php /tmp(複制以hdphp開始以.php結果的檔案到/tmp目錄)ln –s /home/hdxj/index.php /tmp/index_link.php(為index.php檔案建立軟連結index_link.php到tmp目錄下)ln /home/hdxj/hdxj.php /tmp/hdxj.bak.php(建立hdxj.php硬連結到/tmp/hdxj.bak.php)rm hdphp(删除hdphp檔案)rm –f hdphp(檔案不存在不報錯)rm –r hdphp(遞歸删除(删除目錄))mv hdphp hd(将hdphp改名為hd)mv hdphp /tmp(移動hdphp檔案到/tmp中)head –n 2 /etc/passwd(顯示前2行head)tail –n 5 index.php(取後5行内容tail)cat index.php(顯示檔案内容)cat –n index.php(顯示檔案内容帶行号)more /etc/passwd(分屏顯示檔案内容more)more q(退出顯示)grep 'houdunwang' hd.php(顯示包含houdunwang的行)(grep –v “^\s*[#;]”/etc/samba/smb.conf)(顯示所有非注釋行)grep -v(顯示不包含比對文本的所有行)grep -n(顯示比對行及 行号)grep -i(不區分大小)which passwd(查找passwd指令所在位置)whereis passwd(查找檔案名為passwd的檔案)find / -name index.php(查找檔案名為index.php的檔案)find / -size +10000k(查找大于10Mb的檔案)find /www -type d -exec chmod 750(目錄設定為750)find /www ! -type d -exec chmod 640 {} \;(檔案為640)find / -name \*.php -exec rm -i {} \;(将查找到的檔案删除)壓縮處理(gzip passwd/gz -d passwd.gz)gzip壓縮,擴充名為.gz/解壓縮擴充名為.gz的檔案壓縮處理(bzip2 passwd/bzip2 -d passwd.bz2)bzip2壓縮,擴充名為.bz2/解壓縮擴充名為.bz2的檔案壓縮處理(tar zcvf hdxj/tar zxvf hdxj.tar.gz )使用gzip壓縮并打包/解壓gzip檔案壓縮處理(tar jcvf hdxj/tar jxvf hdxj.tar.bz2)使用bzip2壓縮并打包/解壓bz2檔案壓縮處理(-z/-j/-v/-c/-x)以gzip方式壓縮/以bzip2方式壓縮/顯示打包過程/建立打封包件/解包

vi編輯器

vim index.php(打開檔案)按i鍵(輸入内容)按esc(傳回标準模式)按:wq(儲存退出)i/I/a/A/o/O/esc(i目前光标處插入/I行首插入/a光标下一個字元處插入/A行尾插入/o下一行插入/O上一行插入/傳回标準模式):w/:w!/:q/:q!/:wq!/:w [filename]/:! Command/:set nu(儲存/強制儲存/退出不儲存,強制退出/強制儲存退出/别存為/臨時執行指令/顯示行号)nG(n為數字)/G/(:/word)/:?word/(:n1,n2s/word1/word2/g)(:n1,$s/word1/word2/gc)(移動到第幾行,如2G移動到第2行/移動到檔案最後一行/向下搜尋word的字元串/向上搜尋word的字元串/從第n1行到第n2行搜尋word1替換為word2/與上相同,隻是在替換時詢問)dd/ndd/yy/nyy/p,P/u/ctrl+r(剪切目前行/剪切向下n行/複制目前行/複制向下n行/p粘貼到下一行,P粘貼到上一行/撤銷前一次操作/重做前一個操作)在通過vim進行檔案編輯時,會生成以.swp為字尾的暫存檔案,這樣當我們意外中斷時,可以用于恢複編輯内容。()

網絡配置

(準備)虛拟機設定網絡連接配接方式為橋接(·修改配置檔案)(vi /etc/sysconfig/network-scripts/ifcfg-eth0)(·修改内容(;為換行))ONBOOT=yes;BOOTPROTO=STATIC;NETMASK=255.255.255.0(子網路遮罩);IPADDR=192.168.1.?(網絡ip);GATEWAY=192.168.1.1(網關位址);DNS1=8.8.8.8(DNS伺服器ip)(配置好後重新開機服務)service network restart(測試網絡)ping baidu.com(清空防火牆規則)iptables -F(儲存規則)service iptables save(·修改配置檔案)vi /etc/selinux/config(·修改内容)SELINUX=disabled(連結主機,可以用軟體)ssh root @192.168.1.?

使用者管理

useradd ma(添加帳号)useradd –G houdunwang hd(添加帳号hd并且指定附加組為houdunwang)passwd –S ma(檢視密碼狀态)passwd ma(修改ma密碼)su root(切換為root帳号su切換賬号操作)usermod –L ma(鎖定使用者)usermod –U ma(解鎖使用者)usermod –G work ma(設定帳号ma附加組到work)userdel ma(删除使用者)userdel –r ma(删除使用者時連同使用者家目錄删除)groupadd ma(新增使用者組)groupdel ma(删除使用者組)id ma(檢視帳号資訊)

權限控制

drwxrwxr-x 2 ma ma 4096 3月 19 11:26 houdunwang.com(檔案權限 連接配接數 所有者 所屬組 大小 修改時間 檔案名)d/-/l(目錄/檔案/連結)r/w/x(可讀/可寫/可執行)權限每3個為一組(第1組rwx代碼所有者/第2組rwx代表所屬組/第3組rwx代表其他使用者)chown ma houdunwang(改變檔案houdunwang所有者為ma)chown ma:ma houdunwang(改變檔案houdunwang所有者為ma,所屬組為ma)chown –R ma:ma hdphp(改變目錄hdphp及其下所有檔案所有者為ma,所屬組為ma)r(4)/w(2)/x(1)(讀權限/寫權限/執行權限)4+2+1=7/4+0+1=5/4+0+0=4(所有者/所屬組/其他人(權限數字表示為754))chmod 777 houdunwang(将所有者、所屬組、其他人的權限全部開啟、即777)如果系統不支援ACL,修改配置檔案/etc/fstab内容如下(/dev/sdb1 /www ext4 defaults,acl 0 0)setfacl -m u:hdxj:rw /www/hd(設定hdxj對hd有rw權限)getfacl /www/hd(檢視檔案hd的權限)setfacl –m g:work:rwx shop(work使用者組對目錄shop有rw權限 )setfacl –b shop(删除所有ACL設定)setfacl -m d:u:hdxj:rwx hdphp(設定預設ACL權限(子目錄會自動繼承))SUID(1.如果檔案中的x權限位為s時,表示設定了SUID;2.SUID隻作用于二進制程式,對目錄無效,對shell腳本無效;3.在程式執行中執行者獲得所有者權限;4.執行者要有x權限)SGID(當對二進制程式設定SGID時,執行者獲得程式;使用者組權限對目錄設定SGID,在此目錄下使用者組變身為目錄組;使用者在設定SGID目錄下建立的檔案組将為目錄所在組)

磁盤操作

準備工作(虛拟機,設定加入磁盤)du –a/du –ah/(du –sh /etc)/df -h/fdisk –l(列出目錄及子目錄大小/以易識别機關顯示大小/列出總大小/以易識别的機關檢視分區情況/檢視計算機中硬碟與分區資訊)磁盤分區(對sdb盤進行分區)fdisk /dev/sdb磁盤分區(建立分區)n磁盤分區(繼續執行操作/新聞邏輯分區)p/l磁盤分區(建立主分區)1磁盤分區(起始柱面,預設為1)enter磁盤分區(結束柱面,填寫磁盤大小)+2G磁盤分區(建立擴充分區)e2磁盤分區(起始柱面,回車預設)enter磁盤分區(結束柱面,回車剩餘空間)enter磁盤分區(列印分區i資訊)p磁盤分區(将分區寫入磁盤)w磁盤分區(格式化分區)mkfs –t ext4 /dev/sdb1磁盤分區(檢視挂載點)mount磁盤分區(建立挂載目錄)mkdir /mnt/sdb1磁盤分區(挂在分區/dev/sdb1到/mnt/sdb1)mount /dev/sdb1 /mnt/sdb1磁盤分區(檢視分區内容)ls /mnt/sdb1磁盤分區(檢視分區内容)df磁盤分區(解除安裝分區)umount /dev/sdb1磁盤分區(分區自動挂載,修改/etc/fstab)/dev/sdb1 /www ext4 defaults 0 0磁盤分區(指令是根據/etc/fstab設定挂載分區)mount -a

軟體安裝(配置lamp環境)/NTP時間伺服器

(安裝wget指令:)yum -y install wgetiftop安裝(iftop是實時檢視網絡流量的工具,用于監控網絡流量非常友善。)iftop安裝(安裝wget指令:)yum -y install wgetiftop安裝(下載下傳軟體:)wget http://www.ex-parrot.com/~pdw/iftop/download/iftop-0.17.tar.gziftop安裝(安裝環境)yum -y install gcc make flex byacc libpcap ncurses perl ncurses-devel libpcap-develiftop安裝(環境檢測,在iftop的檔案夾下進行)./configure --prefix=/usr/local/iftopiftop安裝(編譯安裝)make & make install檢視所有安裝的vim軟體(rpm –qa | egrep -i vi)删除指令(rpm –e mysql)RPM安裝Mysql(下載下傳位址:service)wget http://mirrors.sohu.com/mysql/MySQL-5.5/MySQL-server-5.5.38-1.rhel5.i386.rpmRPM安裝Mysql(下載下傳位址:client)wget http://mirrors.sohu.com/mysql/MySQL-5.5/MySQL-client-5.5.38-1.rhel5.i386.rpmRPM安裝Mysql(安裝: service)rpm -ivh MySQL-server-5.5.38-1.rhel5.i386.rpmRPM安裝Mysql(安裝: client)rpm -ivh MySQL-client-5.5.38-1.rhel5.i386.rpmRPM安裝Mysql(錯誤處理:缺少perl包:error: Failed dependencies:/usr/bin/perl is needed by MySQL-server-5.5.36-1.rhel5.i386)執行:yum install -y perlRPM安裝Mysql(錯誤處理:與原先版本沖突:)檢視系統:mysql rpm -qa | grep mysql 強制删除原版本mysql: rpm -e --nodeps mysql-libs-5.1.71-1.el6.i686RPM安裝Mysql(複制配置檔案: )cp /usr/share/mysql/my-large.cnf /etc/my.cnfRPM安裝Mysql(啟動Mysql:)mysql: service mysql startRPM安裝Mysql(連接配接Mysql: )mysql -uroot -p (新裝的Mysql沒有密碼)yum info mysql(檢視軟體資訊)yum search tree(搜尋包含tree的軟體)yum install mysql(安裝tree軟體)yum update(更新系統中的軟體)yum erase tree(删除軟體tree)安裝apache (yum install httpd )安裝mysql(yum install mysql mysql-server)安裝php (yum install php php-mysql php-mbstring)啟動Apache(service httpd start)啟動mysql(service mysqld start)(*注)Web根目錄預設在/var/www/html中(*注)關閉防火牆 service iptables stop(*注)關閉selinux vi /etc/selinux/config(*注)PHP代碼預設放在/var/www/html(*注)開啟PHP錯誤提示:1)vi /etc/php.ini 2)設定display_errors = On(530行左右)NTP時間伺服器(yum -y install ntp)yum安裝ntpNTP時間伺服器(chkconfig –level 35 ntpd on)開啟服務ntpdNTP時間伺服器(service ntpd restart)開啟服務

計劃任務

啟動crontab服務(service crond start)設定計劃crontab任務(crontab -e)格式(* * * * * /command path)前5個分段表示時間:分 時 本月幾号 月 星期 ;*代碼任何時候; ,代碼多個如時段寫成5,9 指5點和9點; -代表區間如時段寫成5-9指5,6,7,8,9點; /n表示間隔,如分段寫成*/10指每隔10分鐘定時備份資料庫(cd /backup)建立backup.sh檔案,并給他x權限btime=`date +%Y_%m_%d_%H`/usr/bin/mysqldump -uroot -padmin888 hd>/backup/database/hd_$btime.sql

程序管理

kill 2388(正常關閉程序)kill -9 2011(強制關閉程序)ps aux | more(檢視所有程序)top運作中按?獲得幫助()top運作中按P(按CPU使用率排序)top運作中按M(按記憶體占用排序)top運作中按N(按PID排序)top運作中按q(離開top)

系統服務

(centos提供了service腳本,執行/etc/init.d/下的腳本來啟動或關閉服務,service指令也是操作/etc/init.d/下的某個服務腳本)service httpd start(開啟httpd伺服器)service mysqld stop(關閉mysql伺服器)service httpd restart(重起httpd服務)chkconfig --level 345 httpd on(chkconfig開啟服務)chkconfig --level 345 httpd off(chkconfig關閉服務)chkconfig --list httpd(檢視服務啟動狀态)

網絡指令/網絡安全

netstat –a(列出所有端口 (包括監聽和未監聽的))netstat –at(列出所有 tcp 端口 )netstat –pat(顯示 PID 和程序名稱)netstat -tanl(顯示監聽的端口(數字))(wget支援通過HTTP、HTTPS、FTP下載下傳)iftop是實時檢視網絡流量的工具,用于監控網絡流量非常友善。(詳情)網絡安全(iptable鍊 INPUT鍊/OUTPUT鍊)進站資料包的規則/出站資料包規則網絡安全(處理方式 ACCEPT/DROP)資料包允許通過其到達目的地。/資料包被拒絕不傳回任何資訊。網絡安全(iptables –L)檢視防火牆網絡安全(iptables –F)清空防火牆規則網絡安全(iptables -A INPUT -s 192.168.1.106 -p TCP--dport 22 -j DROP)禁止192.168.1.106通過ssh遠端連接配接伺服器網絡安全(-A)附加INPUT規則鍊(-I)插入規則(-s)來源IP,例子中就是目前登入ssh所用的電腦IP(-d)目的位址,例子中就是伺服器IP(-D)删除規則(-p)通信協定(--dport)目的端口,例子中是ssh預設端口22(-j)操作方式(-i)資料包進入的網卡(-o)流出資料包的網卡(-l)檢視防火牆規則(--sprot)來源端口(--dport)目标端口(--line-number)帶行号顯示(-p)預設規則(-n)以數字形式顯示網絡安全(iptables -P INPUT ACCEPT)預設資料包為允許網絡安全(iptables –I INPUT –s 192.168.1.106 –j DROP)不接收來自192.168.1.106資料包網絡安全(iptables -D INPUT 2)删除第2條INPUT鍊規則網絡安全(iptable –I INPUT –s 192.168.1.106 –p tcp –dport 22 –j ACCCEPT)将來自192.168.1.106的ssh服務放行網絡安全(iptables -I INPUT -i lo -j ACCEPT)連接配接localhost的資料包允許網絡安全(iptable –A INPUT –s 192.168.1.106 –p icmp –j DROP)禁止192.168.1.106的ping操作網絡安全(service iptables save)儲存iptables規則網絡安全(WEB伺服器防火牆規則)IPT="/sbin/iptables"#删除所有規則$IPT -F#預設規則為全部禁止$IPT -P INPUT DROP $IPT -P FORWARD DROP $IPT -P OUTPUT DROP#設定當連接配接狀态為RELATED和ESTABLISHED時,允許資料進入伺服器$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT#設定外部用戶端連接配接伺服器端口80,22,21$IPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT$IPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT$IPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT$IPT -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT#允許外部ping伺服器$IPT -A INPUT -p icmp -j ACCEPT#允許内部資料循回$IPT -A INPUT -i lo -j ACCEPT#設定狀态為RELATED和ESTABLISHED的資料可以從伺服器發送到外部$IPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT#允許通路外部dns伺服器$IPT -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT#允許内部資料循回$IPT -A OUTPUT -o lo -j ACCEPT#通路外部伺服器80,22,21端口$IPT -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT$IPT -A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT$IPT -A OUTPUT -p tcp -m tcp --dport 21 -j ACCEPT$IPT -A OUTPUT -p tcp -m tcp --dport 20 -j ACCEPT#允許ping操作的資料輸出$IPT -A OUTPUT -p icmp -j ACCEPT#儲存重起iptables服務生效service iptables saveservice iptables restart

繼續閱讀