linux初學體會

第一篇隨筆,實際上是爲了寫做業,但是老師的要求是對的,其實本身在配環境和作做業的時候也會把遇到的問題的解決方法記錄下來,以便之後查找方便。此次藉此將那些內容放在這裏,也跟你們一塊兒分享下。html

上週六算是第二次聽liunx的課,感受比第一次聽要輕鬆多了,因此複習是很重要的。mysql

如下是此次課程本身記得筆記  注:絕對不是老師的筆記複製過來的!最後有我作做業遇到的問題的總結!linux

一、http地址默認不寫端口號就是80
二、127.0.0.1和localhost都是本地
三、用戶管理  $是普通用戶,#是管理員用戶
      windows是單用戶的,linux是多用戶的,可同時支持多用戶操做
      id : 能夠查看當前用戶
      whoami  :查看當前用戶
      who  :或者  查看當前已經登陸的用戶
      w   :也能夠看當前已經登陸的用戶
 
四、添加用戶 useradd 用戶名   # 添加用戶
     給用戶加密碼  passwd 密碼  #給添加的用戶加密碼 和 重置密碼  添加用戶不指定家目錄,目錄默認的家目錄在/home/目錄下,在家目錄下顯示波浪線~
       cd ~      快速回到家目錄   或者  直接 cd
       切換用戶: su 用戶名 (切換到root用戶目錄下) 或  su - 用戶名  (切換到普通用戶的家目錄) 
        區別:su -   會從新加載用戶的環境變量
        sudo:獲取超級用戶權限
        添加普通用戶sudo的權限:
             使用root用戶編輯 /etc/sudoers文件,找到 root ALL=(ALL) ALL 這一行,在它下面加入 bestest ALL=(ALL) NOPASSWD:ALL而後保存便可。NOPASSWD表明該用戶使用 sudo的時候不用輸入密碼 •
        刪除用戶:userdel  用戶名
                      userdel -r  刪除用戶同時刪除用戶家目錄
 
五、組管理
        添加組:groupadd name
        修改組:
        刪除組:groupelname
 
六、對目錄(文件夾)操做:瞭解linux文件目錄結構
         pwd     顯示當前你所在的路徑
         cd       進入哪一個目錄(文件夾)
         cd /      根目錄
         /         是頂級目錄
         cd..      回到上級目錄 
         cd../../      回到上幾級目錄,上幾級目錄就幾個..
         cd -        返回上一次操做的目錄
         相對路徑:
         絕對路徑:
         建立文件夾:mkdir   父目錄不存在的話,後面加 -p 先建立父目錄,再建立父目錄下的子文件夾
         mkdir --help   幫助
         刪除文件夾:rm 、  rmdir(刪除空文件夾)
         刪除非空文件夾不詢問:rm -rf
         刪除根目錄:rm -rf /     就完蛋了
         查找文件夾下的東西:ls、ll
         移動文件夾:mv 文件夾名 目標路徑    mv besttest /tmp
         更名:mv 文件夾名 要改的文件名    mv  besttest  linux
         建立空文件:touch 文件名
         文件詳情中顯示drwxr-xr-x前面是個d說明是文件夾,前面沒有d說明是文件
         建立隱藏文件:touch .yincang    建立的文件名前面帶一個點是建立了一個隱藏文件
         查看隱藏文件:ls -a
         複製文件:cp  文件名  目標路徑     cp besttest /tmp/
         複製目錄:cp -r  文件夾  目標路徑   cp -r besttest /tmp/
         強制複製文件/文件夾,不詢問是否覆蓋:cp -f 文件名 目標路徑  
         alias是給命令起別名,可造命令   alias  cp=cp  修改後  cp -f 纔不詢問強制覆蓋
         alias造命令:一、alias hyh=‘cp’  輸入hyh bestest /tmp/  複製besttest問加你夾到tmp下;二、alias  hyh='etc/lammp'     下次輸入hyh就直接跳轉到那個地址   ------  只對當前窗口有效
         讓alias造的命令永久生效:vi etc/profile   里加入alias造的命令
         強制複製任何文件(文件夾):cp -rf              
 
七、對文件操做:vi 或 vim(對vi的升級版)
         vi的命令模式:用i,在當前位置進入編輯模式;o 在下一行進入編輯模式;a  用的比較少,在當前位置的下一位進入編輯模式
         :q   沒有修改直接退出
         :wq   或   :x     保存並退出
         :q! 不保存退出
          /(查找內容)   查找想要查找的內容
          
         :set nu    顯示行號
         :set nonu   取消顯示行號
         :數字    快速渠道某一行
          shift+g   跳轉到文件末尾
          x    刪除單個字符
          dd   刪除整行 
          19dd   刪除19行
          u  撤銷
          yy   複製一行   
          19yy  複製19行
          p   粘貼
          .    重複前一次操做
          shift+$   光標移到行尾
          shift+0   光標移到行首 
         :%s/要替換的內容/替換成的內容/g   %全部  s字符串    替換全部字符串
         vi的編輯模式:esc退出編輯模式到命令模式
          
          cat:查看短文件
          more:查看文件分屏顯示,按回車一行行顯示
          less:查看文件,功能強大,可操做先後翻頁,上下搜索
 
          動態查看日誌:tail   默認顯示後10行;tail -5f  默認顯示後5行;tail -f  看動態日誌 
 
           建立軟鏈接(快捷方式):ln -s 源文件(絕對路徑) 建立的快捷方式名字    ln -s /opt/lampp/xammp ~/hyh   下次輸入ll hyh 直接指向xammp
 
            顯示當前目錄佔用硬盤大小 :du -sh
            顯示當前目錄每一個文件/文件夾佔用硬盤大小:du -sh *
            磁盤用量:df    或df -h
 
           查看文件下的東西:ls -l = ll
           修改權限:chmod     x表明執行  w表明寫  r表明讀   
           加權限:文本形式
                  chmod o+x 文件名 其餘用戶
                  chmod  g+x 文件名   本組用戶
                  chmod  u+x  文件名   本身
                  chmod +xwr 文件名  全部權限
                  chmod  a+x 文件名  全部
            減權限:
                  chmod o-wx 文件名   減寫權限    把+變-就是減權限
            
             修改權限數字形式:r=4  w=2 x=1   rwx:4+2+1;    r-x:4+1;   rw-:4+2;   最高權限777    全部用戶可讀可寫可執行
              只寫一位數表明其餘用戶,寫兩個數表明組和其餘,寫三個數字表明全部用戶
               chmod -R  遞歸  把目錄下全部文件及文件夾加權限
  
               chown:改變文件的全部者   chown 文件名 user 
               若是是文件夾要加-R:chown -R 文件夾名 user
 
               chfrp:改變文件的所屬組   chgrp 文件名 group
               若是是文件夾要加-R:chgrp -R 文件夾名 group
        
               |:管道符,鏈接兩條命令的
               ls |wc -l:ls把他的結果給後面這條命令讓他操做
               cat 文件名 |wc -l:統計文件行數
 
               &&:先後兩條命令同時執行,執行完前面的執行後面的
               做用:能夠啓動某個命令的同時看日誌  用&&執行兩條完整的命令
               例如:/opt/lammp/lammp restart && tail -f /logs/..........:啓動完程序會顯示出日誌內容
              
               查找文件/文件夾:find /-name mysql
               查找文件內容:grep 查找內容 查找文件名   -w 匹配指定字符串;-v 輸出不匹配字符串,過濾掉指定信息
               看日誌查找帶關鍵字的日誌內容:先tail -f 日誌 | grep 關鍵字    
 
               重定向:
               cat test > cc.txt    看test文件的內容,而後放到cc.txt,至關於複製,尖朝誰就往誰裏寫內容
               echo 「hehe」>cc.txt   查看cc,原內容消失,寫入hehe;大於號前面不加內容就可清空cc.txt   可用於清除日誌文件內容
               echo「hehe」>>cc.txt  查看cc,追加新內容
                     
八、安裝軟件
     上傳、下載:ftp工具,設置選sftp,rz命令、sz命令,可是他不能上傳文件夾
      Rz、sz命令安裝:使用yum安裝,yum –y install lrzsz,
      編譯安裝: http://blog.chinaunix.net/uid-20639775-id-  154615.html
 
      rpm安裝包自動配置環境變量:rpm -ivh  **.rpm       
      rpm -e :卸載,用rpm安裝才能用rpm卸載
      rpm -qa:查詢已安裝的軟件包,rpm -qa|grep mysql   管道符後面是要找的軟件包名字
 
      yum安裝:從yum源下載安裝包,下載、安裝、加環境變量都不用管,直接本身配好
      ***liunx安裝包裏有兩個包,1是安裝包,2就是yum源
      經常使用命令:
       • yum install httpd#安裝Apache
       • yum -y install httpd#若是有選項所有贊成安裝
       • yum list|grep httpd#從yum列表中查找你須要的軟 件
       • yum update httpd #yum升級Apache
       • yum list installed |grep mysql#查詢是否安裝 mysql
       • yum remove mysql#卸載yum安裝的mysql
 
       源碼安裝:
       源碼安裝三部曲
       • 一、生成makefile編譯文件 • ./configure 通常安裝包下面都有一個configure文件,用來生成makefile編譯文 件 • 經常使用的參數 • --prefix 指定安裝目錄 • --with-xx 指定依賴文件的目錄
       • 二、make編譯 • make命令也須要安裝,會根據./configure產生makefile文件編譯 寫好的c語言程序,產生可運行的文件
       • 三、make install • make install的做用是把編譯好的文件複製到指定的目錄下,也就是第一步-prefix指定的目錄,若是沒有指定目錄的話,仍是在當前目錄下 
 
九、開關機:普通用戶通常沒有開關機權限  
     關機:shutdown  -h  30 #定時關機 
               shutdown  -h  now  #當即關機
               init 0  當即關機
      重啓:reboot後面可加參數,無所謂加不加;shutdown也能夠重啓,後面可加延遲時間 shutdown -r 20 "我要重啓啦"---定時重啓
十、註銷:exit,切換用戶:exit切換到以前的用戶
 
十一、網絡的
       查看ip地址:ipconfig  或 ip a(不少高版本沒有ifconfig了)
       vmnet8 是僅主機模式,vmnet1是nat模式
       dhclient   #自動獲取ip
 
十二、壓縮、解壓文件
       tar:打包     c 打包; x 解壓縮; z 用gzip壓縮   
       格式:tar cvf  文件名.tar  要打包的文件名---> tar cvf liunx.tar liunx
       壓縮:tar zcvf liunx.gz liunx      ---- tgz和gz結尾的都是壓縮過的
       解壓:tar xvf liunx.gz liunx      xvf是通用的,無論壓縮沒壓縮過,zxvf是解壓壓縮過的包
       打zip包:zip linux.zip linux      zip命令要yum安裝,不是自帶的
       解壓zip包:unzip linux.zip   
        gzip只能壓縮文件,不能壓縮文件夾:gzip 文件名        原來文件就沒了,只保存壓縮文件包,可用來備份日誌
        gunzip解壓:unzip 文件名.gz
 
1三、環境變量:env  查看環境變量
       whereis  ls :顯示環境變量配置
       若是寫了一個腳本,想在任意目錄下執行,加到環境變量裏,查看環境變量文件里加到環境變量裏的目錄,把腳本移過去,也可直接執行
       系統環境變量:全部人都能用   /etc/profile
       用戶環境變量:只針對本身生效,別人用不了   ~/.bashrc
 
1四、進程
       ps:查看當前正在運行的進程(靜態)    -a或-e列出全部進程;-ef 查看進程之間的關係
       ps -ef |grep mysql:篩選mysql進程
       ps -ef |grep mysql|grep -v grep:篩選mysql進程並去除grep自己的進程
       kill -9 進程id(可跟多個進程):結束進程   killall:結束全部進程
       top:查看當前運行的進程(動態),內容顯示多,而且是動態的,和ps區分開
       
       後臺運行進行:nohup ./jmeter-server &        後臺運行,不佔用控制檯,一直運行,關閉界面,ctrl+c等操做都不會影響,不會關閉
 
1四、定製任務:可用於定時備份日誌,數據庫等
       crontab:編輯定時任務
       crontab -e,進入編輯定時任務界面
       crontab 文件的格式爲「M H D m d cmd」。其中,M表明分鐘(0~59),H表明 小時(0~23),D表明天(1~31),m表明月(1~12),d表明一星期內的天 (0~6,0爲星期天)。cmd表示要運行的程序,*表明每分鐘都執行 • 示例 : • * * * * * sh /opt/lampp/test.sh 表示每分鐘執行一次test.sh這個腳本 • */5 * * * * sh /opt/lampp/test.sh 表示每5分鐘執行一次test.sh這個腳本 • 30 21 * * * /usr/local/apache/bin/apachectl restart 表示每晚的21:30重啓apache
       
       crontab -l:查看當前有哪些定時任務
 
1五、查看端口號
netstat :查看端口號
netstat  nlpt|grep 8080:查看8080端口號是否被佔用,查看使用8080端口號進行的進程id
 
1六、shell腳本:多個命令寫在一塊兒 ,其餘內容查看ppt
       注意:shell裏定義變量不能有空格
       取進程id:ps -ef|grep jmeter|grep -v grep|awk'{print $2}'  
       awk'{print $2}' 取第二列的數據,存爲變量才能用
      
       結束進程腳本
       寫入腳本內容爲:(保存爲.sh)
      #!/bin/bash     #須要什麼解釋器來執行,liunx默認的解釋器就是bash,若是不寫也能執行
       count=`ps -ef|grep jmeter|grep -v grep|awk'{print $2}'|wc -1`
       pid=`ps -ef|grep jmeter|grep -v grep|awk'{print $2}'`
       if [ $count -gt 0 ]   #count大於0
         then
           kill -9 $pid
           echo "jmeter stoped"
      else
          echo "jmeter-server not running.."
 
        啓動腳本:
        count=`ps -ef|grep jmeter|grep -v grep|awk'{print $2}'|wc -1`
        if [ $count -gt 0 ]   #count大於0
            then
            echo "jmeter-server is running。。"
        else
           nphup /root/apache-jmeter-2.11/bin/jmeter-server &
 
          重啓腳本:
          結束腳本的絕對路徑
          啓動腳本的絕對路徑
 
         bash:解釋器   
         bash  文件名.sh :指定用bash運行這個腳本,能夠寫在腳本里,也能夠放在外面
 
1七、獲取到當前時間字符串
       date +%Y%m%d%H%M%S
 
--------------------------------下面是做業----------------------------
 
天天23:59分備份lampp的access_log文件,備份的文件名以當時的時間命名 201212241852_access.log到/tmp/logs    備份完要清空原來的
 
首先在tmp文件夾下建立logs文件夾:mkdir logs
logs文件夾下建立一個backup.sh文件:touch backup.sh   建立腳本這裏有個小插曲,下面會提到
寫入相應內容:

#!/bin/sh
rm -rf /tmp/logs/*
cp /opt/lampp/logs/access_log /tmp/logs/`date +%Y%m%d%H%M%S`_access_logsql

而後先執行一下腳本shell

這裏我遇到了第一個問題:腳本沒法tab鍵補全,發現腳本權限有問題,這時直接數據庫

chmod 777 backup.sh   #直接賦予最高權限apache

繼續執行腳本,又報錯:-bash: ./backup.sh: /bin/sh^M: bad interpreter: No such file or directory vim

這裏就是上面提到的小插曲,因爲我開始在在windows下建立的腳本進行的編輯,因此提示這個錯誤windows

百度查詢後找到方法:vi backup  後  輸入::set ff   出現結果:fileformat=dos  這是腳本沒法執行的緣由,由於他是dos格式的,爲了省點事兒,直接刪除腳本從新在linux下命令建立腳本,寫入內容,問題解決bash

以上,腳本里的內容就建立完成
 
下面編寫定時任務:
crontab -e   打開定時任務編輯器
寫入以下內容:

59 23 * * * sh /root/backup.sh

保存退出

進入backup目錄下查看運行結果,文件刪除和建立正常,雖然不知道是否達到老師的要求,可是確實是按照我編寫的腳本運行了。

--------------------------------------以上就是linux課程學習的內容-------------------------------
相關文章
相關標籤/搜索