註:本文屬本人原創,轉載請註明出處.linux伺服器配置篇正在學習中......會慢慢推出. 第一天 -------------------------------------------- shutdown -h now 立刻關機 shutdown -r now 現在重新啟動計算機 reboot 現在重新啟動計算機 su - 切換成系統管理員身份 logout 註銷用戶 vi編輯器 示例:使用vi開發一個簡單的java程序Hello.java, 並在linux下運行成功. 開發步驟: 1、輸入 vi Hello.java 2、輸入 i 進入到插入模式,輸入以下代碼: public class Hello{ public static void main(String []args){ System.out.printIn("hello,word"); } } 3、輸入Esc鍵 進入到命令模式 4、輸入 :wq 保存並退出 :q! 不保存並退出 ls 顯示目錄和文件 ls -l 顯示文件的詳細列表 5、輸入javac Hello.java 編譯Hello.java 6、輸入java Hello 運行它 開發一個C程序: vi Hello.cpp include <stdio.h> int main(){ printf("hello!"); return 0; } gcc Hello.ccp 編譯Hello.cpp ls 發現生成了一個a.out,如果下次編譯另一個C程序的話, 它還是會生成a.out,這樣就覆蓋了之前的.解決: 在編譯時加參數-o後面跟文件名: gcc -o my1 Hello.cpp ./a.out 運行a.out 目錄結構 root 存放root用戶相關文件 home 存放普通用戶的相關文件 bin 存放常用命令的目錄 sbin 要具有一定許可權才可以使用的命令 mnt 默認掛載光碟機和軟碟機目錄 boot 存放引導相關的文件 etc 存放配置相關文件 var 存放經常變化的文件 usr 安裝軟體等的默認文件夾 顯示當前在哪個路徑下: pwd 用戶管理 添加用戶xiaoming: useradd xiaoming 設置密碼: passwd xiaoming 注意:要指明是對哪個用戶修改密碼(本例為xiaoming) 根據提示輸入密碼 刪除用戶: userdel xiaoming 刪除用戶xiaoming userdel -r xiaoming 刪除用戶以及用戶主目錄 指定運行級別 命令:init [0123456] 運行級別:0:關機 1:單用戶 2:多用戶狀態沒有網路服務 3:多用戶狀態有網路服務 4:系統未使用,保留給用戶 5:圖形界面 6:系統重啟 常用運行級別是3和5.要修改默認的運行級別可改文件 /etc/inittab 的id:5:initdefault:這一行中的數字 解決錯誤配置的方法: 在出現GRUB引導界面時,按e,選擇第二行(高亮的),輸入e,再輸入1 (1代表單用戶級別) 最后在按b.這樣系統就進入到了單用戶級別.然後修復錯誤. 常用命令 pwd 顯示當前工作目錄 cd 改變目錄 ls 列出文件和目錄 ls -a 顯示隱藏文件 ls -l 顯示長列表格式 mkdir 建立目錄 rmdir 刪除空目錄 touch 建立空文件 cp 複製 cp a.out /home/xiaoming/ 將當前目錄下的a.out複製到/home/xiaoming/下 cp -r dir1 dir2 遞歸複製命令(複製子目錄信息) mv 移動文件和改文件名 rm 刪除文件和目錄 rm a.out 刪除a.out rm -rf * 刪除所有內容(包括目錄和文件) r遞歸 f強制 ln 建立符號連接 ----(相當於快捷方式) ln -s 源 目標 ln -s /etc/inittab inittab inittab指向實際文件/etc/inittab more 顯示文件內容,帶分頁 more install.log 分頁顯示install.log 按空格翻頁 less 顯示文件內容帶分頁 grep 在文本中查詢內容 grep "shunping" aaa.java 查找aaa.java中有沒有shunping.還可以加參數-n 顯示行號 | 管道命令(理解管道:把上一個命令的結果交給|的後面的命令處理) ls -l /etc/ | more 分頁顯示/etc/目錄下的內容 find 搜索文件及目錄 find / -name aaa.java 從根目錄開始按文件名查找aaa.java文件 find /root/ -name aaa.java 從root目錄下按文件名查找aaa.java文件 find /home -size 10K 查找/home目錄下大小為10K的文件 重定向命令: ls -l > a.txt 將列表的內容寫入文件a.txt中(覆蓋寫) ls -al >> aa.txt 將列表的內容追加到文件aa.txt的末尾 grep "shunping" aaa.java > kkk.bak 將查找到的內容寫入文件kkk.bak中 文件許可權、用戶組 文件的所有者:一般為文件的創建者 文件的所在組:當某個用戶創建了一個文件后,這個文件的所在組就是該用戶所在的組 文件的其他組:除開了文件的所有者和所在組的用戶外,系統的其他用戶都是文件的其他組 groupadd policeman 添加組policeman cat /etc/group | more 查看所有組的信息 groupadd tufei 添加組tufei 創建用戶並同時指定將該用戶分配到哪個組: useradd -g 組名 用戶名 useradd -g policeman along useradd -g policeman panpan useradd -g tufei ashuai 查看所有用戶信息: cat /etc/passwd passwd along passwd panpan passwd ashuai 分別設置密碼 用along用戶登陸,並創建文件mytest1.java (略) ls -l 顯示: -rw-r--r-- 1 along policeman 11 Dec 9 09:32 mytest1.java //說明:along前面的1代表後面mytest1.java是文件,如果後面是文件夾,它 在這裡將顯示這個文件夾中文件的個數. -rw-r--r-- 表示是各類用戶對這個文件的操作許可權,下面講解: 它可以分為四部分:- rw- r-- r-- 第一部分 - 代表文件類型,- 代表普通文件 l代錶鏈接文件 第二部分 rw- 代表文件的所有者對該文件的許可權 許可權分為三種: r 可讀 也可用4表示 w 可寫 也可用2表示 x 可執行 也可用1表示 本例表示文件的所有者along對這個文件具有可讀可寫的許可權 第三部分 r-- 代表文件所在組的用戶對該文件的許可權 本例中比如panpan對這個文件只有讀許可權 第四部分 r-- 代表其他組的用戶對該文件的許可權 這時如果用panpan登陸,panpan是進不了along文件夾的. cd .. ls -l drwx------ 3 along policeman 4096 Dec 9 09:42 along //說明:d代表是文件夾.along具有可讀可寫可執行的許可權,其他用戶不具有 任何許可權. panpan是進不了along文件夾 修改文件的訪問許可權:(登陸為along用戶修改即可) chmod 770 along (第一個7代表對所有者訪問許可權進行修改 4 2 1=7,第二個7代表對文件所在 組訪問許可權進行修改) ls -l drwxrwx--- 3 along policeman 4096 Dec 9 09:42 along (用root的許可權)改變某個用戶所在的組: usermod -g 組名 用戶名 usermod -g policeman ashuai 將ashuai由tufei組變為policeman組 修改文件所有者: chown 用戶名 文件名 修改文件所在的組: chgrp 組名 文件名 第二天 ---------------------------------------------------------------- linux下搭建javaee開發環境 jdk的安裝: 1、將安裝的ISO(本例中為mypackage.iso)掛載到linux操作系統上 mount /mnt/cdrom/ 掛載光碟機 cd /mnt/cdrom/ ls 這樣可以查看光碟機上的內容 cd / umount /mnt/cdrom/ 卸載光碟機 2、安裝時建議把要安裝的程序拷貝到/home目錄下 cp j2sdk-1_4_2_07-linux-i586.bin /home (這個文件名很長,可用TAB鍵補全,不用一個個輸入) cd /home/ ls 可以看到已經拷貝成功. 3、cd /home 4、安裝 ./j2sdk-1_4_2_07-linux-i586.bin 輸入yes后開始安裝 安裝好后,ls,可以看到多了個j2sdk1.4.2_07的目錄 cd j2sdk1.4.2_07 ls 可以看到有個bin目錄 cd /bin ls 5、/etc/profile (環境配置文件) vi /etc/profile 用#來註釋掉原來的java的配置文件 #JAVA_HOME=...........(省略) #PATH=...........(省略) #CLASSPATH=...........(省略) #CATALINA_HOME=...........(省略) #export JAVA_HOME PATH CLASSPATH CATALINA_HOME 然後重新登陸一下,就發現原來的java沒有用了 6、配置剛才自己安裝的jdk vi /etc/profile #JAVA_HOME=...........(省略) #PATH=...........(省略) #CLASSPATH=...........(省略) #CATALINA_HOME=...........(省略) #export JAVA_HOME PATH CLASSPATH CATALINA_HOME JAVA_HOME=/home/J2sdk1.4.2_07 PATH=$PATH:/home/J2sdk1.4.2_07/bin CLASSPATH=. :/home/J2sdk1.4.2_07/jre/rt.jar export JAVA_HOME PATH CLASSPATH 保存,然後重新登陸一下,生效. 安裝集成開發環境Eclipse(略) tar -zxvf xxxxxx.tar.gz 安裝以.tar.gz結尾的文件 ./eclipse 運行eclipse 安裝myEclipse(略) java ee的伺服器用的較多是的tomcat 安裝tomcat tar -zxvf xxxxxx.tar.gz & 代表要以後台方式運行 realplay的安裝 1、把安裝文件拷貝到/home 2、安裝: ./RealPlayer10GOLD.bin 3、運行realplay cd RealPlayer ./realplay Linux分區 一塊硬碟上主分區 擴展分區不能超過4個 查看linux系統分區具體情況: fdisk -l hdx~ 其中hd代表IDE硬碟,X為盤號(a為第一塊,b為第二塊,c為第三塊等), ~代表分區,主分區或擴展分區用1-4表示,從5開始是邏輯分區 hda3表示第一塊IDE硬碟上的第三個主分區或擴展分區 sd代表SCSI硬碟 sda1代表第一塊SCSI硬碟的第一個分區 查看某個目錄是在哪個分區: df [目錄全路徑] df /boot/ 可以看到sda1分區是掛載到/boot目錄下的 可以卸載: cd / umount /boot/ 我們可以將sda1分區掛載到/test目錄下 mount /dev/sda1 /test/ 掛載命令格式: mount [-參數] [設備名稱] [掛載點] 查看磁碟使用情況 df [-參數] df -h -h:以可讀性較高的方式顯示文件系統當前的使用情形 linux安裝 linux手動分區: /boot分區,100M swap交換分區,一般是物理內存的2倍,但不要大於256 / 根分區,儘可能的大 第三天 ---------------------------------------------------------------- linux下的shell 常用的shell: /bin/sh即/bin/bash /bin/csh /bin/ksh ls -l /bin/*sh 可查到系統中的shell env 查看目前使用的是哪種shell,該命令可以顯示當前操作系統的環境變數 修改shell: chsh -s 新的shell chsh -s /bin/csh history 查詢歷史記錄命令 history 10 查詢最近使用的10個命令 linux下查看IP情況的命令: ifconfig linux網路環境配置 第一種方法: (以root用戶登陸) setup→Network configuration 配置好后,這時網卡的配置沒有生效的,要運行 /etc/rc.d/init.d/network restart 命令才生效 第二種方法: ifconfig eth0 x.x.x.x 設置IP ifconfig eth0 network x.x.x.x 設置子網掩碼 註:這樣配置網路將立即臨時生效.當重啟或關機后,將還原設置前的配置. 第三種方法: 修改/etc/sysconfig/network-scripts/ifcfg-eth0 這個文件里的各個屬性 配置好后,這時網卡的配置沒有生效的,要運行 /etc/rc.d/init.d/network restart 命令才生效 在linux中,所有的設備都是文件 RPM包的管理 RPM包的名稱格式: apache-1.3.23-11.i386.rpm apache 是軟體名稱 1.3.23-11是軟體的版本號,主版本號,和次版本 i386是軟體所運行的硬體平台 rpm是文件擴展名,代表RPM包 查詢安裝了哪些rpm軟體 rpm -qa 查詢軟體包是否安裝 rpm -q 軟體包名 rpm -q mysql 查詢mysql是否安裝 安裝RPM包: rpm -i RPM包全路徑名稱 rpm -ivh RPM包全路徑名稱 (有提示信息) 參數說明: i=install 安裝 v=verbose 提示 h=hash 進度條 卸載RPM軟體包: rpm -e RPM包的名稱 升級RPM軟體包: rpm -U RPM包全路徑名稱 samba伺服器的安裝與配置 1、看看是否已經安裝了samba rpm -q samba 2、如果有,就卸載 rpm -e samba 但提示,有一個包要依賴這個,刪除不了, rpm -e --nodeps samba (--nodeps可以連同依賴的包一起刪除) 3、開始安裝 rpm -ivh samba-common-2.2.7a-7.9.0.i386.rpm rpm -ivh samba-client-2.2.7a-7.9.0.i386.rpm rpm -ivh samba-2.2.7a-7.9.0.i386.rpm 4、創建一個用戶youyou useradd youyou passwd youyou 5、給youyou設置samba密碼 先將/etc/passwd中的用戶都加到smbpasswd中: cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd 再設置密碼: smbpasswd youyou 6、啟動samba伺服器,測試 service smb start 在windows的運行中,輸入\192.168.222.88 (這個是samba的伺服器地址) 然後傳個文件到samba中,在linux下查看 cd /youyou/ ls 第四天 -------------------------------------------------------------------- 任務調度命令crontab 任務調度:是指系統在某個時間執行的特定命令或程序. 例:每天凌晨2:00去執行date >> /home/mydate2 1、設置任務 crontab -e 2、輸入: 0 2 * * * date >> /home/mydate2 說明: 第一個代表是分鐘,每小時中的第幾分鐘執行,這裡是0 第二個代表是小時,每日的第幾個小時執行,這裡是2 第三個代表是日期,每月的第幾天執行,*代表每天 第四個代表是月,每年的第幾月執行,*代表月 第五個代表是星期,每周的第幾天執行 *代表每星期 3、退出,保存 esc :wq 怎樣去調度多個任務? (1)在crontab -e 中直接寫 這種方法是比較傳統的.不推薦. (2)可以把所有的任務寫入到一個可執行文件(shell編程) 例: vi mytask.sh (一般以.sh結尾) date >> /home/mydate3 cp /home/mydate3 /root 這個可執行文件保存成功,.但它只有rw的許可權,沒有可執行X的許可權 ,要修改許可權: chmod 744 mytask.sh 下面就可以把mytask.sh文件交給crontab去執行了: crontab -e * * * * * /root/mytask.sh 終止任務調度: crontab -r 列出當前有哪些任務調度: crontab -l 進程的概念和管理 進程:就是正在執行的程序 線程:(1)是輕量級的進程;(2)進程有獨立的地址空間,線程沒有 (3)線程不能獨立存在,它是由進程創建的. ps 顯示系統正在執行的進程信息 ps -a 顯示當前的所有進程信息 ps -u 以用戶格式顯示進程信息 ps -x 顯示後台進程運行的參數 終止進程: kill 進程號 kill -9 進程號 (如果不能結束進程,加參-9 動態監控進程top top 直接輸入top,按q退出 14:06:22 up 4min (系統啟動了4分鐘),1 user(當前有1個用戶正在使用), load average:0.02,0.12,0.07(當前系統負載情況,這三個相加除以3,如果大於0.6時,說明負載很大) 37 processes(進程數):36 sleeping 1 running ,0 zombic(這個是殭屍進程數),0 stopped cpu states(cpu狀態):0.0% user 0.1% system 0.0% nice 0.0% iowait 99.8% idle(99.8% idle說明 有99.8%的cpu處於空閑狀態) Mem: 255264K av,(內存總數) 39428k used(正在使用的內存) ,215836k free(空閑內存),0k shrd,5528k buff 30632k actv, 140k in_d ,292k in_c Swap:257032K av,0k used,257032 free 19376k cached 監視特定用戶 top ,按回車然後輸入u,回車,輸入用戶名 date 顯示系統的時間 date MMDDHHMMyyyy.ss 月月日日時時分分年年年年.秒秒 cal 3 2002 查看2002年3月的月曆 cal 2008 查看2008年的年曆 監控網路狀態 netstat -an 顯示整個系統目前的網路情況 netstat -anp -P參數可以顯示進程號 traceroute 追蹤路由.檢測數據包在網路上傳輸的過程 route 查看本機路由的情況 Mysql資料庫在linux下的使用 安裝mysql 1)把安裝文件拷貝到/home cp mysql-* /home/ ( 有兩個文件,這樣用通配符,兩個文件就一同拷貝過去了) mysql-connector-java-3.1.10-bin.jar (這個是驅動文件) mysql-standard-4.0.26-pc-linux-gnu-i686.tar.gz 2)把安裝文件解壓縮 cd /home/ tar -zxvf mysql-standard-4.0.26-pc-linux-gnu-i686.tar.gz 這時會生成一個mysql-standard-4.0.26-pc-linux-gnu-i686的文件夾,我們對它重命名: mv mysql-standard-4.0.26-pc-linux-gnu-i686 mysql 3)繼續安裝 group add mysql (創建一個mysql組) useradd -g mysql mysql (創建一個名叫mysql的用戶並放入到mysql組) cd mysql (進入mysql的文件夾,這樣下面初始化資料庫命令可以運行) scripts/mysql_install_db --user=mysql ( 初始化資料庫) chown -R root . (修改文件的所有者, . 代表當前目錄,把當前目錄及子目錄下的文件(-R參數)的所有者改為root用戶) chown -R mysql data (修改data文件夾的所有者為mysql) chgrp -R mysql . (改變用戶所在組為mysql組) bin/mysqld_safe --user=mysql & (啟動mysql,用mysql用戶來啟動它) ctrl c退出 運行mysql: cd bin/ 要先進入/bin目錄下,才能運行 ./mysql -u root -p 輸入密碼,當前為空 show databases quit退出 修改環境變數,在任意路徑下,輸入./mysql -u root -p 都能運行mysql: env | more 查看環境變數 cd /root/ 在root目錄下,存放有root的用戶變數:.bash_profile vi .bash_profile 在PATH=$PATH:$HOME/bin後面添加mysql程序的路徑: :/home/mysql/bin/ logout註銷用戶,重新登陸root,生效 mysql資料庫的使用 1)運行mysql 2)建立資料庫 creat database spdb1; show databases; 可以看到剛才建立的資料庫spdb1 3)建表 use spdb1; 在資料庫spdb1中建表 create table users(userId varchar(8),userName varchar(8)); 建一張名為users的表 添加數據: insert into users values('0001','shunping'); insert into users values('0002','xiaoming'); 查詢: select * form users 如果進行java開發,要注意mysql驅動的位置: 放在jdk的主目錄下/jre/lib/ext/ 備份和恢復mysql資料庫 備份:./mysqldump -u root -p密碼 資料庫名>data.bak 恢復:./mysql -u root -p密碼 資料庫名<data.bak 例: cd /home/mysql 進入到mysql的安裝目錄 cd /bin ./mysqldump -u root -p123456 spdb1 > /home/myspdb1 備份到/home/下,備份的文件名為myspdb1 註:在恢復時如果報錯:ERROR 1049:Unknown database 'spdb1' 新建成一個空的資料庫spdb1即可: create database spdb1; 第五天 ------------------------------------------------------------------------ ssh 1、windows下安裝ssh客戶端 SSHSecureShellClient-3.2.9.exe linux默認安裝sshd服務,默認是啟動的.監聽的埠是22 2.在windows下使用ssh客戶端登錄到linux 可以上傳下載文件 補講linux重要內容 linux目錄結構 /bin 普通用戶的可執行命令,系統的任何用戶都可以執行該目錄中的命令 /boot 存放linux操作系統啟動時所需使用的文件 /dev 系統中的所有設備文件 /etc 系統中的配置文件 /home 普通用戶的宿主目錄,每個用戶在該目錄下都有一個與用戶名同名的目錄 /mnt中的子目錄用於系統中可移動設備的掛載點 /root 超級用戶root的宿主目錄 /sbin 系統的管理命令,普通用戶不能執行他們 /tmp 系統的臨時目錄 /usr 系統應用程序和相關文件 /var 系統中經常變化的文件如日誌文件和用戶郵件 從當前目錄去訪問某個文件(夾), 就是相對路徑 從根目錄(/)去訪問某個文件(夾),就是絕對路徑 cd 後面什麼都不寫,進入當前用戶的主目錄 複製文件夾的問題: cp /workspace /home 這樣是複製不成功的,提示這是個文件夾不能複製 cp -rf /workspace /home -r複製子目錄,-f強制.這樣就成功複製了. shell使用 配置.bashrc文件可以指定某些應用程序在用戶登陸的時候就自動啟動: vi /root/.bashrc 在最后添加: /home/tomcat/bin/startup.sh start 當root用戶登陸后,自動啟動tomcat 註:要進入用戶主目錄下,修改.每個用戶目錄下都有這個文件 /etc/profile 配置系統的環境變數 /home/用戶名/.bash_profile 配置用戶的環境變數 當你希望臨時加入一個路徑時,使用export export PATH=$PATH:/root 臨時加入/root路徑 $PATH引用原來的值 :是路徑分隔符 runlevel 查看當前的運行級別 使用zip和unzip壓縮和解壓 zip aa.zip 要壓縮的文件名 zip aa.zip 要壓縮的文件名1 要壓縮的文件名2 zip -r aa.zip 要壓縮的文件夾路徑 ,-r子目錄 例: zip bb.zip kkk.bak 把kkk.bak壓縮為bb.zip zip -r aa2.zip ./workspace/ 壓縮當前目錄下的workspace文件夾 .代表當前目錄 unzip aa.zip 直接解壓縮aa.zip |