標籤:
1、設定任務調度命令crontab 任務調度是指系統在某個時間執行的特定的命令或程式。任務調度分為:1)系統工作:有些重要的工作必須周而復始的執行,如病毒掃描。2)個別使用者工作:個別使用者可能希望執行某些程式。 (1)設定任務調度檔案:/etc/crontab 1)首先設定個人任務調度。執 行crontab -e命令。 2)接著輸入任務到調度檔案。 如:5**** ls -l /etc/> /tmp/to.txt 表示說每個小時的第五分鐘執行ls -l /etc/>/tmp/to.txt命令。“5****”中第一位表示第幾分鐘,第二位表示第幾個小時,第三位表示第幾天,第四位表示第幾月,第五位表示的是每周的第幾天。 (2)調度多個任務 方法1:在crontab -e中直接寫多任務即可。即換行寫任務。(不推薦使用) 方法2:可以把所有的任務寫入到一個可執行檔中(shell 編程)。步驟如下: 1)vi mytask.sh 輸入下面的命令 date>>/home/mydate3 cp /home/mydate3 /root 2)授予mytask.sh執行許可權 chmod 744 mytask.sh 3)crontab -e 4)再輸入命令:* * * * * /root/mytask.sh即可。 (3)如何終止任務 crontab -r 表示終止任務調度。執行該命令後,crontab -e中的任務都被刪除了。 crontab -l 表示列出當前有哪些任務調度。
2、linux的進程的概念和管理,進程:所謂進程就是正在執行的程式。線程:(1)線程是輕量級的進程,(2)進程有獨立的地址空間,線程沒有。(3)線程不能獨立存在,它是由進程來建立的。在linux中用fork。(4)線程耗費的cpu和記憶體小於進程。 (1)在linux中,每一個執行的程式都稱為一個進程。每一個進程都分配一個ID號。 (2)每一個進程,都會對應一個父進程。而這個父進程可以複製多個子進程。 (3)每個進程都可能以兩種方式存在:前台和後台。所謂前台進程就是使用者目前的螢幕上可以進行的操作。後台進程則是實際在操作,但螢幕上無法看到的進程 (4)一般系統的服務都是以後台進程的方式存在,而且都會常駐在系統中,直到關機才結束。
(5)查看目前系統的進程(靜態)用ps命令。如: 1)ps -a 表示顯示當前終端的所有進程資訊 2)ps -u 表示以使用者的格式顯示進程資訊 3)ps -x 表示顯示後台進程啟動並執行參數 一般使用 ps -aux顯示所有的資訊。
(6)終止進程 若想某個進程執行一半需要停止時,或是以消耗了很大的系統資源時,此時可以考慮停止該進程。使用kill命令來完成。 1)kill 進程號: 表示終止某個進程。 2)kill -9 進程號: 表示有些進程會捕捉某些訊號。如果直接不能結束進程可以用“-9”傳遞資訊。
(7)進程的動態監控進程top top與ps命令很相似,他們都用來顯示正在執行的進程。top與ps最大的不同之處。處於top在執行一段時間可以更新正在啟動並執行進程。 1)監視特定使用者:top:輸入此命令,斷行符號,查看執行的進程。u:然後輸入“u”斷行符號,再輸入使用者名稱,即可。 2)終止指定的進程:top:輸入此命令,斷行符號,查看執行的進程。k:然後輸入“k”斷行符號,再輸入要結束的進程ID號。 3)指定系統狀態更新的時間:top -d 10:指定系統更新進程的時間為10秒
(8)設定系統時間 1)date命令:顯示系統的時間,可以在直接輸入“date”命令來查看系統的時間 2)利用date命令來更改系統的時間: date MMDDHHMMCCYY.SS 表示的是月月日日時時分分年年年年.秒秒 3)查看月曆: cal 3 2002 表示查看2002年3月的月曆 4)查看年曆 cal 2008 表示查看2008的年曆
3、監控網路狀態資訊 (1)顯示網路統計資訊的命令netstat,此命令用來顯示整個系統目前的網路情況。例如目前的串連、資料包傳遞資料、或是路由表內容。此命令直接輸入即可使用: 如: netstat -an netstat -anp 顯示進程的id (2)檢測主機串連命令ping:是一種網路偵查工具,它主要是用檢測遠程主機是否正常,或是兩部主機間的戒指是否為斷、網線是否脫落或網卡故障。 如: ping 對方ip地址
(3)顯示資料包經過的曆程命令:traceroute 此命令可以直接輸入使用,用來檢測資料包在網路上傳輸的過程。從本機到遠端主機完整路徑。協助管理員解決問題 (4)route 所謂路由是指將資料由來源網路送往目的地的網路操作。在大型網路中,路由是非常複雜的,因為資料包在抵達目的地時,可能經過的節點有很多,路由表是儲存在路由器或一些其他串連設定上的表單。其中記錄著了到指定目的地的網路路徑,以及這些路徑的相關數值。此命令可直接使用,查看本機路由的情況。
4、Mysql資料庫在linux下的使用 (1)mysql的安裝 步驟:1)首先將安裝檔案拷貝到安裝目錄下即可,即mount /mnt/cdrom載入 拷貝 cp mysql—* /home/ 2)然後將安裝檔案解壓縮:tar -zxvf 檔案名稱.gz 3)該檔案夾名:mv mysql-standard-4.0.26-pc-linux-gnu-i686 mysql (建立一個檔案夾,名稱為mysql) 4)groupadd mysql ( 表示建立mysql組,便於管理) 5)useradd -g mysql mysql (表示建一個mysql的使用者,並將其放入到mysql組中) 6)scripts/mysql_install_db --user=mysql (表示初始化資料庫,即添加了mysql 的使用者)此命令需要進入到mysql主目錄下才能正確執行。 7)chown -R root .(修改 檔案的 所有者) 表示當前路徑下所有檔案及檔案夾的所有者改為root。其中“.”表示當前路徑下所有檔案及檔案夾,“-R”表示遞迴操作 8)chown -R mysql data(修改date檔案夾的所有者)表示將data檔案夾的所有者修改為mysql。 9)chgrp -R mysql . (改變使用者組) 表示將當前路徑下所有檔案及檔案夾的使用者的使用者組改成mysql使用者組 10)啟動mysql:從bin目錄啟動。 bin/mysqld_safe --user=mysql & (2)如何進入mysql呢? 1)進入安裝目錄下執行 首先cd到bin目錄下 然後執行 ./mysql -u root -p 斷行符號輸入密碼即可。
退出mysql:quit。 2)設定環境變數: env |more 查看環境變數PATH的值。環境變數中所有的路徑都會儲存在root的目錄下.bash_profile檔案中(可利用ls -al來查看)。因此修改路徑只需要在該檔案中添加一個路徑即可。 .bash_profile檔案是每個使用者都有一個的,當採用每一個使用者登入是,都會去讀取每一個使用者的.bash_profile檔案載入相應的環境變數。因此若用別的使用者登入則需要修改相應的使用者下面的.bash_profile檔案。 (3)mysql在linux下的使用 要求: 1)建立資料庫和表 2)加入部分資料 3)編寫一個showUsers.java檔案,在控制台顯示使用者,特別需要注意的是mysql的驅動要存放的位置(即放在jdk的目錄下,jdk的主目錄/jre/lib/ext)。 實現步驟如下: 1)進入mysql 2)建立資料庫和表 create database spdb1;//建庫 create table users(userid varchar(8),username varchar(8)); 3)插入資料 insert into users values(‘002‘,‘shunping‘); 4)編寫一個showuser.java檔案,在控制台顯示使用者名稱 vi showuser.java
improt java.sql.*; public class showuser{ public static void main(String[] args){ try{ //connect to mysql Class.forName("com.mysql.jdbc.Driver"); Connection ct=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mysql?user=root&password=liujiyu"); StateMent sm=ct.createStatement(); ResultSet rs=sm.executeQuery("select * from users"); while(rs.next()){ System.out.println("username="+rs.getString(1)); } }catch(Eception e){ e.printStackTrace(); } } }
(4)如何使用命令列來備份和恢複mysql資料庫 進入到mysql資料庫的安裝主目錄的/bin下,執行下面的命令 1)備份:mysqldump -u root -p密碼 資料庫名>data.bak 2)恢複:mysql -u root -p密碼 資料庫名<data.bak 再恢複資料庫的時候,需要建立一個空資料庫!!也就是說,恢複資料庫之後所有的資料都恢複到該空資料庫中。
5、ssh(secureshellClient)的使用(windows和linux之間的連結工具) ssh是一款遠程操作linux,和進行檔案上傳和下載的軟體,在軟體公司幾乎所有的linux程式員都會使用ssh。安全、方便是他最大的特點。 (1)安裝ssh(secureshellClient) (2)由於linux系統下,其系統內建的就有sshd服務,預設是開啟狀態,且其監聽的連接埠是22.linux下查看監聽的連接埠用netstat -anp命令查看是否真的開啟監聽。 (3)使用ssh用戶端登陸到linux(前提是linux的sshd啟動了。且需要確認windows和linux之間是可以ping通的(若是虛擬機器的話需要保證虛擬機器和主機只在同一個網段即可)。) (4)輸入linux系統的的ip地址和使用者登入資訊即可登陸。 (5)就可以通過ssh在window和linux之間來傳輸檔案(相當於ftp)
6、ftp的安裝與配置
6.1目前的目錄:pwd 相對目錄:指的是從目前的目錄去訪問某個檔案(夾) 絕對目錄:指的是從根目錄去訪問某個檔案(夾) 工作目錄:
cp複製命令 cp -r dir1 dir2 遞迴複製命令(複製子目錄資訊) mv移動檔案和改檔案名稱 rm刪除檔案和目錄 rm -rf * 刪除所有內容(包括目錄和檔案),其中r表示遞迴,f表示強制執行。 ln建立符號連結 ln -s 源 目標 ln -s /etc/inittab inittab (表示inittab指向實際檔案/etc/inittab) grep在文本中查詢內容:grep "12" 檔案名稱;grep -n "12" 檔案名稱; 管道命令:| find / -name *.html|grep bookmark //// -name表示的是按名字尋找 搜尋檔案及目錄 find: 1)尋找特定的檔案和目錄 2)在特定的目錄下搜尋並顯示指定名稱的檔案和目錄 find /home -amin -10 十分鐘記憶體取的檔案或目錄 (內對應的是-) find /home -atime -10 十個小時記憶體取的檔案和目錄 find /home -cmin -10 十分鐘內更改過的檔案和目錄 find /home -ctime +10 十個小時前更改過的檔案和目錄 (前對應的是+) 3)按照檔案的大小進行搜尋: find /home -size +10k 意思是說尋找/home目錄下大小為10k的檔案或目錄
7、shell 的使用 命令曆史和互動:用上下方向鍵可以重複以前所輸入的命令 命令完成功能:用tab鍵能自動完成相關命令,再次按tab可得到清單。 shell指令檔:是一個檔案,命令的集合,有執行的許可權,執行方式(./檔案名稱)
1)使用者登入後自動執行的shell指令檔: .bashrc (其位於主目錄下)在它之前執行系統的指令碼/etc/bashrc主要是基本配置資料檔案:.bash_profile 檔案(其位於主目錄下) ,而又在它之前執行的系統指令檔是:/etc/profile檔案,主要是配置環境變數。 說明:profile檔案配置的環境變數是所有使用者公用的系統內容變數,.bash_profile 檔案是每一個使用者自己需要配置的環境變數。.bashrc 檔案是每個使用者登入時執行的檔案(如需要在某個使用者登入時,自動的執行某個程式,可以將該程式放在該檔案中)。 若需要每個使用者都登入時,都執行某個程式,則可以將該程式放在:profile的檔案中。
2)配置.bashrc檔案可以指定某些程式在使用者登入時啟動。操作方法就是在該檔案中添加相應的執行語句即可。
3)用export PATH=$PATH:$HOME/bin:/root/test/t1 臨時加入一個路徑。 表示輸出環境變數PATH,引用原來的值$PATH $HOME 表示工作主目錄 , “:”是路徑分隔字元 已定義好的環境變數:SHELL:預設shell PATH:路徑 USER:當前登入使用者的使用者名稱 顯示變數內容:echo $PATH echo $USER echo $SHELL
4)萬用字元 * 代表多個字母或數字 ?代表一個字母或數字 如:ls a* ls a? ls ?at? ls abc[1-6].tif 逸出字元:\ ls /mnt/win1/my\document
5)alias的用法 若希望給某個命令語句取個別名就用alias。如:alias showdir=‘ls -l /home‘
8、linux的啟動過程(需要明白單一使用者模式下,啟動不讀取/etc/inittab檔案) linux系統啟動過程如下: 1)BIOS自檢:主要是對硬體的啟動方式檢測。 2)啟動GRUB/LILO: 3)運行LINUX核心並檢測硬體 4)運行系統的第一個進程init 5)init讀取系統檔案引導設定檔/etc/inittab中的資訊進行初始化 6)/etc/rc.d/rc.sysinit系統初始化指令碼 7)/etc/rc.d/rcX.d/[KS]* 根據運行層級X佈建服務 終止以“K”開頭的服務 啟動以“S”開頭的服務 8)/etc/rc.d/rc.local執行本地特殊配置 9)其他特殊服務
9、壓縮和解壓方法 (注意:檔案和檔案夾的區別) 以zip和unzip處理.zip檔案 1)zip命令的基本使用方法: zip file.zip 原檔案名稱; 表示zip後接壓縮後的檔案名稱,在它的後面輸入要壓縮的檔案即可 壓縮多個檔案: zip file.zip 原檔案名稱1,原檔案名稱2、、、; 表示zip後接壓縮後的檔案名稱,在它的後面輸入要壓縮的檔案即可 2)壓縮後,自動刪除原檔案 zip -m file.zip to.txt 表示把to.txt檔案壓縮成file.zip檔案後,to.txt會自動刪除 3)將子目錄一起壓縮 zip -r file.zip 原檔案名稱;表示將目前的目錄下的子目錄一起壓縮 4)忽略子目錄的內容 zip -j file.zip 原檔案名稱 5)將已壓縮的或沒有必要壓縮的檔案去掉 zip -n .mpg:.jpg:.gif (注意檔案中間要用:分開) 6)壓縮某一日之後的檔案 zip -t 102002 file.zip 表示將目前的目錄下的在2002年10月20日之後檔案壓縮。 7)不壓縮連結檔案的原檔案名稱 zip -y file.zip 原檔案名稱 8)壓縮率問題。-1--->-9 -9的壓縮率最高 zip -9 file.zip 原檔案名稱 9)將不需要壓縮的檔案排除在外 zip file.zip 原檔案名稱 -x file2.txt 表示的是在壓縮的時候,將目前的目錄內的file2.txt檔案排除在外。 以unzip命令進行.zip檔案的解壓縮: 1)直接解壓縮檔案 unzip file.zip 2)排除不需要解壓縮的檔案 unzip file.zip -x file2 表示的除了file2檔案外,其他的檔案都解壓縮 3)查看壓縮包的內容 unzip -Z file.zip 表示查看file.zip壓縮包的內容。也可以使用“-l”、“-v”來查看壓縮包的內容。
以gzip和gunzip處理.gz檔案
10、linux下java網路編程->my qq linux服務端 public class myservertest{ public static void main(String[] args){
try{ //伺服器端接受訊息部分 ServerSocket ss=new ServerSocket(8888);//建立一個伺服器,監聽8888連接埠 System.out.println("i am listen"); Socket sk=ss.accept(); //監聽,知道某個用戶端來串連自己,一旦串連成功,返回一個scoket(理解成資料管道) InputStreamReader isr=new InputStreamReader(sk.getinputStream());//可以讀取從用戶端發送的資訊 BufferReader br=new BufferReader(isr);//為了更好的讀取,將其放入到BufferReader中
String kk=br.readline();//讀出來
System.out.println("client send:::"+kk); //從伺服器端回一個訊息給用戶端部分 OutputStreamWriter osw=new OutputStreamWriter(sk.getOutputStream()); //BufferedWriter bw=new BufferedWriter (osw); PrintWriter pw=new PrintWriter(osw,true); //發送 pw.println("i get your mes"+kk);
}catch(Exception e){ e.printStaticTrace(); } }
}
Windows用戶端 public class myclienttest{ public static void main(String[] args){ try{ Scoket s=new Socket("172.16.54.23",8888);//連結的伺服器端 OutputStreamWriter osw=new OutputStreamWriter(s.getOutStreamStream()); //通過檔案流寫入發送資訊 BufferedWriter bw=new BufferedWriter (osw); PrintWriter pw=new PrintWriter(bw,true); //發送 pw.println("hello wrold");
//讀取伺服器端返回的資訊部分 InputStreamReader isr=new InputStreamReader(sk.getinputStream());//可以讀取從用戶端發送的資訊 BufferReader br=new BufferReader(isr);//為了更好的讀取,將其放入到BufferReader中
String response=br.readline();//讀出來
System.out.println("server response is:::"+response); }catch(Exception e){ e.printStackTrace(); } }
}
linux學習筆記4:linux的任務調度,進程管理,mysql的安裝和使用,ssh工具的使用,linux網路編程