linux学习笔记4:linux的任务调度,进程管理,mysql的安装和使用,ssh工具的使用,linux网络编程...
1、設(shè)置任務(wù)調(diào)度命令crontab 任務(wù)調(diào)度是指系統(tǒng)在某個(gè)時(shí)間執(zhí)行的特定的命令或程序。任務(wù)調(diào)度分為:1)系統(tǒng)工作:有些重要的工作必須周而復(fù)始的執(zhí)行,如病毒掃描。2)個(gè)別用戶工作:個(gè)別用戶可能希望執(zhí)行某些程序。 (1)設(shè)置任務(wù)調(diào)度文件:/etc/crontab ?1)首先設(shè)置個(gè)人任務(wù)調(diào)度。執(zhí) 行crontab -e命令。 ?2)接著輸入任務(wù)到調(diào)度文件。 ?如:5**** ls -l? /etc/> /tmp/to.txt? 表示說(shuō)每個(gè)小時(shí)的第五分鐘執(zhí)行l(wèi)s -l /etc/>/tmp/to.txt命令。“5****”中第一位表示第幾分鐘,第二位表示第幾個(gè)小時(shí),第三位表示第幾天,第四位表示第幾月,第五位表示的是每周的第幾天。 (2)調(diào)度多個(gè)任務(wù) ?方法1:在crontab -e中直接寫(xiě)多任務(wù)即可。即換行寫(xiě)任務(wù)。(不推薦使用) ?方法2:可以把所有的任務(wù)寫(xiě)入到一個(gè)可執(zhí)行文件中(shell 編程)。步驟如下: ??1)vi mytask.sh 輸入下面的命令 ??date>>/home/mydate3 ??cp /home/mydate3 /root ??2)授予mytask.sh執(zhí)行權(quán)限 chmod 744 mytask.sh ??3)crontab -e ??4)再輸入命令:* * * * * /root/mytask.sh即可。 ?? (3)如何終止任務(wù) ?crontab -r 表示終止任務(wù)調(diào)度。執(zhí)行該命令后,crontab -e中的任務(wù)都被刪除了。 ?crontab -l 表示列出當(dāng)前有哪些任務(wù)調(diào)度。
2、linux的進(jìn)程的概念和管理,進(jìn)程:所謂進(jìn)程就是正在執(zhí)行的程序。線程:(1)線程是輕量級(jí)的進(jìn)程,(2)進(jìn)程有獨(dú)立的地址空間,線程沒(méi)有。(3)線程不能獨(dú)立存在,它是由進(jìn)程來(lái)創(chuàng)建的。在linux中用fork。(4)線程耗費(fèi)的cpu和內(nèi)存小于進(jìn)程。 (1)在linux中,每一個(gè)執(zhí)行的程序都稱(chēng)為一個(gè)進(jìn)程。每一個(gè)進(jìn)程都分配一個(gè)ID號(hào)。 (2)每一個(gè)進(jìn)程,都會(huì)對(duì)應(yīng)一個(gè)父進(jìn)程。而這個(gè)父進(jìn)程可以復(fù)制多個(gè)子進(jìn)程。 (3)每個(gè)進(jìn)程都可能以兩種方式存在:前臺(tái)和后臺(tái)。所謂前臺(tái)進(jìn)程就是用戶目前的屏幕上可以進(jìn)行的操作。后臺(tái)進(jìn)程則是實(shí)際在操作,但屏幕上無(wú)法看到的進(jìn)程 (4)一般系統(tǒng)的服務(wù)都是以后臺(tái)進(jìn)程的方式存在,而且都會(huì)常駐在系統(tǒng)中,直到關(guān)機(jī)才結(jié)束。
(5)查看目前系統(tǒng)的進(jìn)程(靜態(tài)的)用ps命令。如: ?1)ps -a 表示顯示當(dāng)前終端的所有進(jìn)程信息 ?2)ps -u 表示以用戶的格式顯示進(jìn)程信息 ?3)ps -x 表示顯示后臺(tái)進(jìn)程運(yùn)行的參數(shù) ?一般使用 ps -aux顯示所有的信息。
(6)終止進(jìn)程 若想某個(gè)進(jìn)程執(zhí)行一半需要停止時(shí),或是以消耗了很大的系統(tǒng)資源時(shí),此時(shí)可以考慮停止該進(jìn)程。使用kill命令來(lái)完成。 ?1)kill 進(jìn)程號(hào): 表示終止某個(gè)進(jìn)程。 ?2)kill -9 進(jìn)程號(hào): 表示有些進(jìn)程會(huì)捕捉某些信號(hào)。如果直接不能結(jié)束進(jìn)程可以用“-9”傳遞信息。
(7)進(jìn)程的動(dòng)態(tài)的監(jiān)控進(jìn)程top top與ps命令很相似,他們都用來(lái)顯示正在執(zhí)行的進(jìn)程。top與ps最大的不同之處。處于top在執(zhí)行一段時(shí)間可以更新正在運(yùn)行的進(jìn)程。 ?1)監(jiān)視特定用戶:top:輸入此命令,回車(chē),查看執(zhí)行的進(jìn)程。u:然后輸入“u”回車(chē),再輸入用戶名,即可。 ?2)終止指定的進(jìn)程:top:輸入此命令,回車(chē),查看執(zhí)行的進(jìn)程。k:然后輸入“k”回車(chē),再輸入要結(jié)束的進(jìn)程ID號(hào)。 ?3)指定系統(tǒng)狀態(tài)更新的時(shí)間:top -d 10:指定系統(tǒng)更新進(jìn)程的時(shí)間為10秒
(8)設(shè)置系統(tǒng)時(shí)間 ?1)date命令:顯示系統(tǒng)的時(shí)間,可以在直接輸入“date”命令來(lái)查看系統(tǒng)的時(shí)間 ?2)利用date命令來(lái)更改系統(tǒng)的時(shí)間:? ??date MMDDHHMMCCYY.SS 表示的是月月日日時(shí)時(shí)分分年年年年.秒秒 ?3)查看月歷: ?cal 3 2002? 表示查看2002年3月的月歷 ?4)查看年歷 ?cal 2008? 表示查看2008的年歷
3、監(jiān)控網(wǎng)絡(luò)狀態(tài)信息 (1)顯示網(wǎng)絡(luò)統(tǒng)計(jì)信息的命令netstat,此命令用來(lái)顯示整個(gè)系統(tǒng)目前的網(wǎng)絡(luò)情況。例如目前的連接、數(shù)據(jù)包傳遞數(shù)據(jù)、或是路由表內(nèi)容。此命令直接輸入即可使用: ?如: netstat -an? ?netstat -anp? 顯示進(jìn)程的id (2)檢測(cè)主機(jī)連接命令ping:是一種網(wǎng)絡(luò)檢測(cè)工具,它主要是用檢測(cè)遠(yuǎn)程主機(jī)是否正常,或是兩部主機(jī)間的戒指是否為斷、網(wǎng)線是否脫落或網(wǎng)卡故障。 ?如: ping 對(duì)方ip地址
(3)顯示數(shù)據(jù)包經(jīng)過(guò)的歷程命令:traceroute ?此命令可以直接輸入使用,用來(lái)檢測(cè)數(shù)據(jù)包在網(wǎng)絡(luò)上傳輸?shù)倪^(guò)程。從本機(jī)到遠(yuǎn)程的主機(jī)完整路徑。幫助管理員解決問(wèn)題 (4)route ?所謂路由是指將數(shù)據(jù)由來(lái)源網(wǎng)絡(luò)送往目的地的網(wǎng)絡(luò)操作。在大型網(wǎng)絡(luò)中,路由是非常復(fù)雜的,因?yàn)閿?shù)據(jù)包在抵達(dá)目的地時(shí),可能經(jīng)過(guò)的節(jié)點(diǎn)有很多,路由表是存儲(chǔ)在路由器或一些其他連接設(shè)置上的窗體。其中記錄著了到指定目的地的網(wǎng)絡(luò)路徑,以及這些路徑的相關(guān)數(shù)值。此命令可直接使用,查看本機(jī)路由的情況。
4、Mysql數(shù)據(jù)庫(kù)在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? (創(chuàng)建一個(gè)文件夾,名稱(chēng)為mysql) ??4)groupadd mysql??? ( 表示創(chuàng)建mysql組,便于管理) ??5)useradd -g mysql mysql? (表示建一個(gè)mysql的用戶,并將其放入到mysql組中) ??6)scripts/mysql_install_db --user=mysql? (表示初始化數(shù)據(jù)庫(kù),即添加了mysql 的用戶)此命令需要進(jìn)入到mysql主目錄下才能正確執(zhí)行。 ??7)chown -R root .(修改 文件的 所有者) 表示當(dāng)前路徑下所有文件及文件夾的所有者改為root。其中“.”表示當(dāng)前路徑下所有文件及文件夾,“-R”表示遞歸操作 ??8)chown -R mysql data(修改date文件夾的所有者)表示將data文件夾的所有者修改為mysql。 ??9)chgrp -R mysql . (改變用戶組) 表示將當(dāng)前路徑下所有文件及文件夾的用戶的用戶組改成mysql用戶組 ??10)啟動(dòng)mysql:從bin目錄啟動(dòng)。 ??bin/mysqld_safe? --user=mysql & ? (2)如何進(jìn)入mysql呢? ?1)進(jìn)入安裝目錄下執(zhí)行 ?首先cd到bin目錄下 ?然后執(zhí)行 ./mysql -u root -p 回車(chē)輸入密碼即可。?
?退出mysql:quit。 ? ?2)設(shè)置環(huán)境變量: ?env |more? 查看環(huán)境變量PATH的值。環(huán)境變量中所有的路徑都會(huì)保存在root的目錄下.bash_profile文件中(可利用ls -al來(lái)查看)。因此修改路徑只需要在該文件中添加一個(gè)路徑即可。 ?.bash_profile文件是每個(gè)用戶都有一個(gè)的,當(dāng)采用每一個(gè)用戶登錄是,都會(huì)去讀取每一個(gè)用戶的.bash_profile文件加載相應(yīng)的環(huán)境變量。因此若用別的用戶登錄則需要修改相應(yīng)的用戶下面的.bash_profile文件。 ? (3)mysql在linux下的使用 ???? 要求: ?1)建立數(shù)據(jù)庫(kù)和表 ?2)加入部分?jǐn)?shù)據(jù) ?3)編寫(xiě)一個(gè)showUsers.java文件,在控制臺(tái)顯示用戶,特別需要注意的是mysql的驅(qū)動(dòng)要存放的位置(即放在jdk的目錄下,jdk的主目錄/jre/lib/ext)。 實(shí)現(xiàn)步驟如下: ?1)進(jìn)入mysql ?2)建立數(shù)據(jù)庫(kù)和表 ?create database spdb1;//建庫(kù) ?create table users(userid varchar(8),username varchar(8)); ?3)插入數(shù)據(jù) ?insert into users values('002','shunping'); ?4)編寫(xiě)一個(gè)showuser.java文件,在控制臺(tái)顯示用戶名 ?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)如何使用命令行來(lái)備份和恢復(fù)mysql數(shù)據(jù)庫(kù) ?進(jìn)入到mysql數(shù)據(jù)庫(kù)的安裝主目錄的/bin下,執(zhí)行下面的命令 ?1)備份:mysqldump -u? root -p密碼 數(shù)據(jù)庫(kù)名>data.bak ? ?2)恢復(fù):mysql -u root -p密碼 數(shù)據(jù)庫(kù)名<data.bak ?再恢復(fù)數(shù)據(jù)庫(kù)的時(shí)候,需要建立一個(gè)空數(shù)據(jù)庫(kù)!!也就是說(shuō),恢復(fù)數(shù)據(jù)庫(kù)之后所有的數(shù)據(jù)都恢復(fù)到該空數(shù)據(jù)庫(kù)中。
5、ssh(secureshellClient)的使用(windows和linux之間的鏈接工具) ssh是一款遠(yuǎn)程操作linux,和進(jìn)行文件上傳和下載的軟件,在軟件公司幾乎所有的linux程序員都會(huì)使用ssh。安全、方便是他最大的特點(diǎn)。 (1)安裝ssh(secureshellClient) (2)由于linux系統(tǒng)下,其系統(tǒng)自帶的就有sshd服務(wù),默認(rèn)是打開(kāi)狀態(tài),且其監(jiān)聽(tīng)的端口是22.linux下查看監(jiān)聽(tīng)的端口用netstat -anp命令查看是否真的開(kāi)啟監(jiān)聽(tīng)。 (3)使用ssh客戶端登陸到linux(前提是linux的sshd啟動(dòng)了。且需要確認(rèn)windows和linux之間是可以ping通的(若是虛擬機(jī)的話需要保證虛擬機(jī)和主機(jī)只在同一個(gè)網(wǎng)段即可)。) (4)輸入linux系統(tǒng)的的ip地址和用戶登錄信息即可登陸。 (5)就可以通過(guò)ssh在window和linux之間來(lái)傳輸文件(相當(dāng)于ftp)
6、ftp的安裝與配置
6.1當(dāng)前目錄:pwd 相對(duì)目錄:指的是從當(dāng)前目錄去訪問(wèn)某個(gè)文件(夾) 絕對(duì)目錄:指的是從根目錄去訪問(wèn)某個(gè)文件(夾) 工作目錄:
cp復(fù)制命令 ?cp -r dir1 dir2 遞歸復(fù)制命令(復(fù)制子目錄信息) mv移動(dòng)文件和改文件名 rm刪除文件和目錄 ?rm -rf * 刪除所有內(nèi)容(包括目錄和文件),其中r表示遞歸,f表示強(qiáng)制執(zhí)行。 ln建立符號(hào)鏈接 ?ln -s 源 目標(biāo) ?ln -s /etc/inittab inittab?? (表示inittab指向?qū)嶋H文件/etc/inittab) grep在文本中查詢內(nèi)容:grep "12" 文件名;grep -n "12" 文件名; 管道命令:|? ?find / -name *.html|grep bookmark??? -name表示的是按名字查找 搜索文件及目錄 find: ?1)查找特定的文件和目錄 ?2)在特定的目錄下搜索并顯示指定名稱(chēng)的文件和目錄 ?find /home -amin -10 十分鐘內(nèi)存取的文件或目錄?? (內(nèi)對(duì)應(yīng)的是-) ?find /home -atime -10 十個(gè)小時(shí)內(nèi)存取的文件和目錄 ?find /home -cmin -10 十分鐘內(nèi)更改過(guò)的文件和目錄 ?find /home -ctime +10 十個(gè)小時(shí)前更改過(guò)的文件和目錄?? (前對(duì)應(yīng)的是+) ?3)按照文件的大小進(jìn)行搜索: ?find /home -size +10k 意思是說(shuō)查找/home目錄下大小為10k的文件或目錄
7、shell 的使用 命令歷史和互動(dòng):用上下箭頭鍵可以重復(fù)以前所輸入的命令 命令完成功能:用tab鍵能自動(dòng)完成相關(guān)命令,再次按tab可得到清單。 shell腳本文件:是一個(gè)文件,命令的集合,有執(zhí)行的權(quán)限,執(zhí)行方式(./文件名)
1)用戶登錄后自動(dòng)執(zhí)行的shell腳本文件: ?.bashrc (其位于主目錄下)在它之前執(zhí)行系統(tǒng)的腳本/etc/bashrc主要是基本配置數(shù)據(jù)文件:.bash_profile 文件(其位于主目錄下) ,而又在它之前執(zhí)行的系統(tǒng)腳本文件是:/etc/profile文件,主要是配置環(huán)境變量。 ?說(shuō)明:profile文件配置的環(huán)境變量是所有用戶公用的系統(tǒng)環(huán)境變量,.bash_profile 文件是每一個(gè)用戶自己需要配置的環(huán)境變量。.bashrc 文件是每個(gè)用戶登錄時(shí)執(zhí)行的文件(如需要在某個(gè)用戶登錄時(shí),自動(dòng)的執(zhí)行某個(gè)程序,可以將該程序放在該文件中)。 ?若需要每個(gè)用戶都登錄時(shí),都執(zhí)行某個(gè)程序,則可以將該程序放在:profile的文件中。
2)配置.bashrc文件可以指定某些程序在用戶登錄時(shí)啟動(dòng)。操作方法就是在該文件中添加相應(yīng)的執(zhí)行語(yǔ)句即可。
3)用export PATH=$PATH:$HOME/bin:/root/test/t1? 臨時(shí)加入一個(gè)路徑。 ?表示輸出環(huán)境變量PATH,引用原來(lái)的值$PATH $HOME 表示工作主目錄 , “:”是路徑分隔符 ?已定義好的環(huán)境變量:SHELL:默認(rèn)shell??? PATH:路徑?? USER:當(dāng)前登錄用戶的用戶名 ?顯示變量?jī)?nèi)容:echo $PATH ??????? echo $USER ??????? echo $SHELL
4)通配符 ?* 代表多個(gè)字母或數(shù)字 ??代表一個(gè)字母或數(shù)字 ? 如:ls a*????? ls a?????? ls ?at???? ls abc[1-6].tif ?轉(zhuǎn)義字符:\ ?ls /mnt/win1/my\document
5)alias的用法 ?若希望給某個(gè)命令語(yǔ)句取個(gè)別名就用alias。如:alias showdir='ls -l /home'
8、linux的啟動(dòng)過(guò)程(需要明白單用戶模式下,啟動(dòng)不讀取/etc/inittab文件) linux系統(tǒng)啟動(dòng)過(guò)程如下: ?1)BIOS自檢:主要是對(duì)硬件的啟動(dòng)方式檢測(cè)。 ?2)啟動(dòng)GRUB/LILO: ?3)運(yùn)行LINUX內(nèi)核并檢測(cè)硬件 ?4)運(yùn)行系統(tǒng)的第一個(gè)進(jìn)程init ?5)init讀取系統(tǒng)文件引導(dǎo)配置文件/etc/inittab中的信息進(jìn)行初始化 ?6)/etc/rc.d/rc.sysinit系統(tǒng)初始化腳本 ?7)/etc/rc.d/rcX.d/[KS]* 根據(jù)運(yùn)行級(jí)別X配置服務(wù) ??終止以“K”開(kāi)頭的服務(wù) ??啟動(dòng)以“S”開(kāi)頭的服務(wù) ?8)/etc/rc.d/rc.local執(zhí)行本地特殊配置 ?9)其他特殊服務(wù)
9、壓縮和解壓方法? (注意:文件和文件夾的區(qū)別) 以zip和unzip處理.zip文件 ?1)zip命令的基本使用方法: ?zip file.zip 原文件名; 表示zip后接壓縮后的文件名,在它的后面輸入要壓縮的文件即可 ?壓縮多個(gè)文件: ?zip file.zip 原文件名1,原文件名2、、、; 表示zip后接壓縮后的文件名,在它的后面輸入要壓縮的文件即可 ?2)壓縮后,自動(dòng)刪除原文件 ?zip -m file.zip to.txt 表示把to.txt文件壓縮成file.zip文件后,to.txt會(huì)自動(dòng)刪除 ?3)將子目錄一起壓縮 ?zip -r file.zip 原文件名;表示將當(dāng)前目錄下的子目錄一起壓縮 ?4)忽略子目錄的內(nèi)容 ?zip -j file.zip 原文件名 ?5)將已壓縮的或沒(méi)有必要壓縮的文件去掉 ?zip -n .mpg:.jpg:.gif? (注意文件中間要用:分開(kāi)) ?6)壓縮某一日之后的文件 ?zip -t 102002 file.zip 表示將當(dāng)前目錄下的在2002年10月20日之后文件壓縮。 ?7)不壓縮鏈接文件的原文件名 ?zip -y file.zip 原文件名 ?8)壓縮率問(wèn)題。-1--->-9? -9的壓縮率最高 ?zip -9 file.zip 原文件名 ?9)將不需要壓縮的文件排除在外 ?zip file.zip 原文件名 -x file2.txt 表示的是在壓縮的時(shí)候,將當(dāng)前目錄內(nèi)的file2.txt文件排除在外。 以u(píng)nzip命令進(jìn)行.zip文件的解壓縮: ?1)直接解壓縮文件 ?unzip file.zip ?2)排除不需要解壓縮的文件 ?unzip file.zip -x file2 表示的除了file2文件外,其他的文件都解壓縮 ?3)查看壓縮包的內(nèi)容 ?unzip -Z file.zip 表示查看file.zip壓縮包的內(nèi)容。也可以使用“-l”、“-v”來(lái)查看壓縮包的內(nèi)容。
以gzip和gunzip處理.gz文件
10、linux下java網(wǎng)絡(luò)編程->my qq linux服務(wù)端 public class myservertest{ ?public static void main(String[] args){
?try{ ??//服務(wù)器端接受消息部分 ??ServerSocket ss=new ServerSocket(8888);//創(chuàng)建一個(gè)服務(wù)器,監(jiān)聽(tīng)8888端口 ??System.out.println("i am listen"); ??Socket sk=ss.accept(); //監(jiān)聽(tīng),知道某個(gè)客戶端來(lái)連接自己,一旦連接成功,返回一個(gè)scoket(理解成數(shù)據(jù)管道) ??InputStreamReader isr=new InputStreamReader(sk.getinputStream());//可以讀取從客戶端發(fā)送的信息 ??BufferReader br=new BufferReader(isr);//為了更好的讀取,將其放入到BufferReader中
??String kk=br.readline();//讀出來(lái)
??System.out.println("client send:::"+kk); ?? ??//從服務(wù)器端回一個(gè)消息給客戶端部分 ??OutputStreamWriter osw=new OutputStreamWriter(sk.getOutputStream()); ??//BufferedWriter bw=new BufferedWriter (osw); ?? ??PrintWriter pw=new PrintWriter(osw,true); ?? ??//發(fā)送 ??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);//鏈接服務(wù)器端 ??OutputStreamWriter osw=new OutputStreamWriter(s.getOutStreamStream()); //通過(guò)文件流寫(xiě)入發(fā)送信息 ??BufferedWriter bw=new BufferedWriter (osw); ?? ??PrintWriter pw=new PrintWriter(bw,true); ?? ??//發(fā)送 ??pw.println("hello wrold");
??//讀取服務(wù)器端返回的信息部分 ??InputStreamReader isr=new InputStreamReader(sk.getinputStream());//可以讀取從客戶端發(fā)送的信息 ??BufferReader br=new BufferReader(isr);//為了更好的讀取,將其放入到BufferReader中
??String response=br.readline();//讀出來(lái)
??System.out.println("server response is:::"+response); ??? ? ?}catch(Exception e){ ?e.printStackTrace(); ?} ?}
}
轉(zhuǎn)載于:https://www.cnblogs.com/ljy2013/p/4295288.html
總結(jié)
以上是生活随笔為你收集整理的linux学习笔记4:linux的任务调度,进程管理,mysql的安装和使用,ssh工具的使用,linux网络编程...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: maven下载spring
- 下一篇: SQL Server 2014 安装小记