下文給大家整理一些linux中shell常用操作命令系列:服務操作例子,希望能幫助到大家.
基本操作:
- /etc/init.d/sendmail start # 啟動服務
- /etc/init.d/sendmail stop # 關閉服務
- /etc/init.d/sendmail status # 查看服務當前狀態
- /date/mysql/bin/mysqld_safe --user=mysql & # 啟動mysql后臺運行
- vi /etc/rc.d/rc.local # 開機啟動執行 可用于開機啟動腳本
- /etc/rc.d/rc3.d/S55sshd # 開機啟動和關機關閉服務連接 # S開機start K關機stop 55級別 后跟服務名
- ln -s -f /date/httpd/bin/apachectl /etc/rc.d/rc3.d/S15httpd # 將啟動程序腳本連接到開機啟動目錄
- ipvsadm -ln # lvs查看后端負載機并發
- ipvsadm -C # lvs清除規則
- xm list # 查看xen虛擬主機列表
- virsh # 虛擬化(xenkvm)管理工具 yum groupinstall Virtual*
- ./bin/httpd -M # 查看httpd加載模塊
- httpd -t -D DUMP_MODULES # rpm包httpd查看加載模塊
- echo 內容| /bin/mail -s "標題" 收件箱 -f 發件人 # 發送郵件
- "`echo "內容"|iconv -f utf8 -t gbk`" | /bin/mail -s "`echo "標題"|iconv -f utf8 -t gbk`" 收件箱 # 解決郵件亂碼
- /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg # 檢測nagios配置文件
- chkconfig常用操作
- chkconfig 服務名 on|off|set # 設置非獨立服務啟狀態
- chkconfig --level 35 httpd off # 讓服務不自動啟動
- chkconfig --level 35 httpd on # 讓服務自動啟動 35指的是運行級別
- chkconfig --list # 查看所有服務的啟動狀態
- chkconfig --list |grep httpd # 查看某個服務的啟動狀態
- chkconfig –-list [服務名稱] # 查看服務的狀態 httpd基本操作
編譯參數:
- # so模塊用來提供DSO支持的apache核心模塊
- # 如果編譯中包含任何DSO模塊,則mod_so會被自動包含進核心。
- # 如果希望核心能夠裝載DSO,但不實際編譯任何DSO模塊,則需明確指定"--enable-so=static"
- ./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=most --enable-rewrite --enable-forward # 實例編譯
- --with-mpm=worker # 已worker方式運行
- --with-apxs=/usr/local/apache/bin/apxs # 制作apache的動態模塊DSO rpm包 httpd-devel #編譯模塊 apxs -i -a -c mod_foo.c
- --enable-so # 讓Apache可以支持DSO模式
- --enable-mods-shared=most # 告訴編譯器將所有標準模塊都動態編譯為DSO模塊
- --enable-rewrite # 支持地址重寫功能
- --enable-module=most # 用most可以將一些不常用的,不在缺省常用模塊中的模塊編譯進來
- --enable-mods-shared=all # 意思是動態加載所有模塊,如果去掉-shared話,是靜態加載所有模塊
- --enable-expires # 可以添加文件過期的限制,有效減輕服務器壓力,緩存在用戶端,有效期內不會再次訪問服務器,除非按f5刷新,但也導致文件更新不及時
- --enable-deflate # 壓縮功能,網頁可以達到40%的壓縮,節省帶寬成本,但會對cpu壓力有一點提高
- --enable-headers # 文件頭信息改寫,壓縮功能需要
- --disable-MODULE # 禁用MODULE模塊(僅用于基本模塊)
- --enable-MODULE=shared # 將MODULE編譯為DSO(可用于所有模塊)
- --enable-mods-shared=MODULE-LIST # 將MODULE-LIST中的所有模塊都編譯成DSO(可用于所有模塊)
- --enable-modules=MODULE-LIST # 將MODULE-LIST靜態連接進核心(可用于所有模塊)
- # 上述 MODULE-LIST 可以是:
- 1、用引號界定并且用空格分隔的模塊名列表 --enable-mods-shared='headers rewrite dav'
- 2、"most"(大多數模塊) --enable-mods-shared=most
- 3、"all"(所有模塊)
http轉發配置:
- #針對非80端口的請求處理
- RewriteCond %{SERVER_PORT} !^80$
- RewriteRule ^/(.*) http://fully.qualified.domain.name:%{SERVER_PORT}/$1 [L,R]
- RewriteCond %{HTTP_HOST} ^ss.aa.com [NC]
- RewriteRule ^(.*) http://www.aa.com/so/$1/0/p0? [L,R=301]
- #RewriteRule 只對?前處理,所以會把?后的都保留下來
- #在轉發后地址后加?即可取消RewriteRule保留的字符
- #R的含義是redirect,即重定向,該請求不會再被apache交給后端處理,而是直接返回給瀏覽器進行重定向跳轉。301是返回的http狀態碼,具體可以參考http rfc文檔,跳轉都是3XX。
- #L是last,即最后一個rewrite規則,如果請求被此規則命中,將不會繼續再向下匹配其他規則。
MySQL常用操作,MySQL源碼安裝:
- groupadd mysql
- useradd mysql -g mysql -M -s /bin/false
- tar zxvf mysql-5.1.71.tar.gz
- cd mysql-5.1.71
- ./configure --prefix=/usr/local/mysql
- --with-client-ldflags=-all-static
- --with-mysqld-ldflags=-all-static
- --with-mysqld-user=mysql
- --with-extra-charsets=all
- --with-unix-socket-path=/var/tmp/mysql.sock
- make && make install
- # 生成mysql用戶數據庫和表文件,在安裝包中輸入
- scripts/mysql_install_db --user=mysql
- vi ~/.bashrc
- export PATH="$PATH: /usr/local/mysql/bin"
- # 配置文件,有large,medium,small三個,根據機器性能選擇
- cp support-files/my-medium.cnf /etc/my.cnf
- cp support-files/mysql.server /etc/init.d/mysqld
- chmod 700 /etc/init.d/mysqld
- cd /usr/local
- chmod 750 mysql -R
- chgrp mysql mysql -R
- chown mysql mysql/var -R
- cp /usr/local/mysql/libexec/mysqld mysqld.old
- ln -s /usr/local/mysql/bin/mysql /sbin/mysql
- ln -s /usr/local/mysql/bin/mysqladmin /sbin/mysqladmin
- ln -s -f /usr/local/mysql/bin/mysqld_safe /etc/rc.d/rc3.d/S15mysql5 //Vevb.com
- ln -s -f /usr/local/mysql/bin/mysqld_safe /etc/rc.d/rc0.d/K15mysql5
mysql常用命令:
- ./mysql/bin/mysqld_safe --user=mysql & # 啟動mysql服務
- ./mysql/bin/mysqladmin -uroot -p -S ./mysql/data/mysql.sock shutdown # 停止mysql服務
- mysqlcheck -uroot -p -S mysql.sock --optimize --databases account # 檢查、修復、優化MyISAM表
- mysqlbinlog slave-relay-bin.000001 # 查看二進制日志(報錯加絕對路徑)
- mysqladmin -h myhost -u root -p create dbname # 創建數據庫
- flush privileges; # 刷新
- show databases; # 顯示所有數據庫
- use dbname; # 打開數據庫
- show tables; # 顯示選中數據庫中所有的表
- desc tables; # 查看表結構
- drop database name; # 刪除數據庫
- drop table name; # 刪除表
- create database name; # 創建數據庫
- select 列名稱 from 表名稱; # 查詢
- show grants for repl; # 查看用戶權限
- show processlist; # 查看mysql進程
- select user(); # 查看所有用戶
- show slave statusG; # 查看主從狀態
- show variables; # 查看所有參數變量
- show table status # 查看表的引擎狀態
- drop table if exists user # 表存在就刪除
- create table if not exists user # 表不存在就創建
- select host,user,password from user; # 查詢用戶權限 先use mysql
- create table ka(ka_id varchar(6),qianshu int); # 創建表
- SHOW VARIABLES LIKE 'character_set_%'; # 查看系統的字符集和排序方式的設定
- show variables like '%timeout%'; # 查看超時(wait_timeout)
- delete from user where user=''; # 刪除空用戶
- delete from user where user='sss' and host='localhost' ; # 刪除用戶
- ALTER TABLE mytable ENGINE = MyISAM ; # 改變現有的表使用的存儲引擎
- SHOW TABLE STATUS from 庫名 where Name='表名'; # 查詢表引擎
- CREATE TABLE innodb (id int, title char(20)) ENGINE = INNODB # 創建表指定存儲引擎的類型(MyISAM或INNODB)
- grant replication slave on *.* to '用戶'@'%' identified by '密碼'; # 創建主從復制用戶
- ALTER TABLE player ADD INDEX weekcredit_faction_index (weekcredit, faction); # 添加索引
- alter table name add column accountid(列名) int(11) NOT NULL(字段不為空); # 插入字段
- update host set monitor_state='Y',hostname='xuesong' where ip='192.168.1.1'; # 更新數據
- 創建MySQL自增表
- create table oldBoy (id INTEGER PRIMARY KEY AUTO_INCREMENT, name CHAR(30) NOT NULL, age integer , sex CHAR(15) ); # 創建自增表
- insert into oldBoy(name,age,sex) values(%s,%s,%s) # 自增插入數據
- 登錄mysql的命令
- # 格式: mysql -h 主機地址 -u 用戶名 -p 用戶密碼
- mysql -h110.110.110.110 -P3306 -uroot -p
- mysql -uroot -p -S /data1/mysql5/data/mysql.sock -A --default-character-set=GBK
- shell執行mysql命令
- mysql -u root -p'123' test< file.sql # 針對指定庫執行sql文件中的語句,好處不需要轉義特殊符號,一條語句可以換行.不指定庫執行時語句中需要先use
- mysql -u$username -p$passwd -h$dbhost -P$dbport -A -e "
- use $dbname;
- delete from data where date=('$date1');
- " # 執行多條mysql命令
- mysql -uroot -p -S mysql.sock -e "use db;alter table gift add column accountid int(11) NOT NULL;flush privileges;" # 不登陸mysql插入字段
- 備份MySQL數據庫
- mysqldump -h host -u root -p --default-character-set=utf8 dbname >dbname_backup.sql # 不包括庫名,還原需先創建庫,在use
- mysqldump -h host -u root -p --database --default-character-set=utf8 dbname >dbname_backup.sql # 包括庫名,還原不需要創建庫
- /bin/mysqlhotcopy -u root -p # mysqlhotcopy只能備份MyISAM引擎
- mysqldump -u root -p -S mysql.sock --default-character-set=utf8 dbname table1 table2 > /data/db.sql # 備份表
- mysqldump -uroot -p123 -d database > database.sql # 備份數據庫結構
- innobackupex --user=root --password="" --defaults-file=/data/mysql5/data/my_3306.cnf --socket=/data/mysql5/data/mysql.sock --slave-info --stream=tar --tmpdir=/data/dbbackup/temp /data/dbbackup/ 2>/data/dbbackup/dbbackup.log | gzip 1>/data/dbbackup/db50.tar.gz # xtrabackup備份需單獨安裝軟件 優點: 速度快,壓力小,可直接恢復主從復制
- 還原MySQL數據庫
- mysql -h host -u root -p dbname < dbname_backup.sql
- source 路徑.sql # 登陸mysql后還原sql文件
- 為MySQL賦權限
- # 指定IP: $IP 本機: localhost 所有IP地址: % # 通常指定多條
- grant all on zabbix.* to user@"$IP"; # 對現有賬號賦予權限
- grant select on database.* to user@"%" Identified by "passwd"; # 賦予查詢權限(沒有用戶,直接創建)
- grant all privileges on database.* to user@"$IP" identified by 'passwd'; # 賦予指定IP指定用戶所有權限(不允許對當前庫給其他用戶賦權限)
- grant all privileges on database.* to user@"localhost" identified by 'passwd' with grant option; # 賦予本機指定用戶所有權限(允許對當前庫給其他用戶賦權限)
- grant select, insert, update, delete on database.* to user@'ip'identified by "passwd"; # 開放管理操作指令
- revoke all on *.* from user@localhost; # 回收權限
- MySQL用戶更改密碼
- update user set password=password('passwd') where user='root'
- mysqladmin -u root password 'xuesong'
MySQL忘記密碼后重置:
- cd /data/mysql5
- /data/mysql5/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
- use mysql;
- update user set password=password('123123') where user='root';
MySQL主從復制失敗恢復:
- slave stop;
- reset slave;
- change master to master_host='10.10.10.110',master_port=3306,master_user='repl',master_password='repl',master_log_file='master-bin.000010',master_log_pos=107,master_connect_retry=60;
- slave start;
SQL語句使用變量:
- use xuesong;
- set @a=concat('my',weekday(curdate())); # 組合時間變量
- set @sql := concat('CREATE TABLE IF NOT EXISTS ',@a,'( id INT(11) NOT NULL )'); # 組合sql語句
- select @sql; # 查看語句
- prepare create_tb from @sql; # 準備
- execute create_tb; # 執行
檢測MySQL主從復制延遲:
1、在從庫定時執行更新主庫中的一個timeout數值
2、同時取出從庫中的timeout值對比判斷從庫與主庫的延遲
MySQL慢查詢:
開啟慢查詢日志
log-slow-queries=/var/lib/mysql/slowquery.log # 指定日志文件存放位置,可以為空,系統會給一個缺省的文件host_name-slow.log
long_query_time=2 # 記錄超過的時間,默認為10s
log-queries-not-using-indexes # log下來沒有使用索引的query,可以根據情況決定是否開啟,可不加.
log-long-format # 如果設置了,所有沒有使用索引的查詢也將被記錄,可不加.
mysqldumpslow慢查詢日志查看
-s # 是order的順序,包括看了代碼,主要有 c,t,l,r和ac,at,al,ar,分別是按照query次數,時間,lock的時間和返回的記錄數來排序,前面加了a的時倒序.
-t # 是top n的意思,即為返回前面多少條的數據
-g # 后邊可以寫一個正則匹配模式,大小寫不敏感的
mysqldumpslow -s c -t 20 host-slow.log # 訪問次數最多的20個sql語句
mysqldumpslow -s r -t 20 host-slow.log # 返回記錄集最多的20個sql
mysqldumpslow -t 10 -s t -g "left join" host-slow.log # 按照時間返回前10條里面含有左連接的sql語句
show global status like '%slow%'; # 查看現在這個session有多少個慢查詢
show variables like '%slow%'; # 查看慢查詢日志是否開啟,如果slow_query_log和log_slow_queries顯示為on,說明服務器的慢查詢日志已經開啟
show variables like '%long%'; # 查看超時閥值
desc select * from wei where text='xishizhaohua'G; # 掃描整張表 tepe:ALL 沒有使用索引 key:NULL
create index text_index on wei(text); # 創建索引
mongodb常用操作:
一、啟動:
- # 不啟動認證
- ./mongod --port 27017 --fork --logpath=/opt/mongodb/mongodb.log --logappend --dbpath=/opt/mongodb/data/
- # 啟動認證
- ./mongod --port 27017 --fork --logpath=/opt/mongodb/mongodb.log --logappend --dbpath=/opt/mongodb/data/ --auth
- # 配置文件方式啟動
- cat /opt/mongodb/mongodb.conf
- port=27017 # 端口號
- fork=true # 以守護進程的方式運行,創建服務器進程
- auth=true # 開啟用戶認證
- logappend=true # 日志采用追加方式
- logpath=/opt/mongodb/mongodb.log # 日志輸出文件路徑
- dbpath=/opt/mongodb/data/ # 數據庫路徑
- shardsvr=true # 設置是否分片
- maxConns=600 # 數據庫的最大連接數
- ./mongod -f /opt/mongodb/mongodb.conf
- # 其他參數
- bind_ip # 綁定IP 使用mongo登錄需要指定對應IP
- journal # 開啟日志功能,降低單機故障的恢復時間,取代dur參數
- syncdelay # 系統同步刷新磁盤的時間,默認60秒
- directoryperdb # 每個db單獨存放目錄,建議設置.與mysql獨立表空間類似
- repairpath # 執行repair時的臨時目錄.如果沒開啟journal,出現異常重啟,必須執行repair操作
- # mongodb沒有參數設置內存大小.使用os mmap機制緩存數據文件,在數據量不超過內存的情況下,效率非常高.數據量超過系統可用內存會影響寫入性能
二、關閉
- # 方法一:登錄mongodb
- ./mongo
- use admin
- db.shutdownServer()
- # 方法:kill傳遞信號 兩種皆可
- kill -2 pid
- kill -15 pid
三、開啟認證與用戶管理
- ./mongo # 先登錄
- use admin # 切換到admin庫
- db.addUser("root","123456") # 創建用戶
- db.addUser('zhansan','pass',true) # 如果用戶的readOnly為true那么這個用戶只能讀取數據,添加一個readOnly用戶zhansan
- ./mongo 127.0.0.1:27017/mydb -uroot -p123456 # 再次登錄,只能針對用戶所在庫登錄
- #雖然是超級管理員,但是admin不能直接登錄其他數據庫,否則報錯
- #Fri Nov 22 15:03:21.886 Error: 18 { code: 18, ok: 0.0, errmsg: "auth fails" } at src/mongo/shell/db.js:228
- show collections # 查看鏈接狀態 再次登錄使用如下命令,顯示錯誤未經授權
- db.system.users.find(); # 查看創建用戶信息
- db.system.users.remove({user:"zhansan"}) # 刪除用戶
- #恢復密碼只需要重啟mongodb 不加--auth參數
四、登錄:
- 192.168.1.5:28017 # http登錄后可查看狀態
- ./mongo # 默認登錄后打開 test 庫
- ./mongo 192.168.1.5:27017/databaseName # 直接連接某個庫 不存在則創建 啟動認證需要指定對應庫才可登錄
五、查看狀態:
- #登錄后執行命令查看狀態
- db.runCommand({"serverStatus":1})
- globalLock # 表示全局寫入鎖占用了服務器多少時間(微秒)
- mem # 包含服務器內存映射了多少數據,服務器進程的虛擬內存和常駐內存的占用情況(MB)
- indexCounters # 表示B樹在磁盤檢索(misses)和內存檢索(hits)的次數.如果這兩個比值開始上升,就要考慮添加內存了
- backgroudFlushing # 表示后臺做了多少次fsync以及用了多少時間
- opcounters # 包含每種主要擦撞的次數
- asserts # 統計了斷言的次數
- #狀態信息從服務器啟動開始計算,如果過大就會復位,發送復位,所有計數都會復位,asserts中的roolovers值增加
- #mongodb自帶的命令
- ./mongostat
- insert #每秒插入量
- query #每秒查詢量
- update #每秒更新量
- delete #每秒刪除量
- locked #鎖定量
- qr|qw #客戶端查詢排隊長度(讀|寫)
- ar|aw #活躍客戶端量(讀|寫)
- conn #連接數
- time #當前時間
六、常用命令
- db.listCommands() # 當前MongoDB支持的所有命令(同樣可通過運行命令db.runCommand({"listCommands" : `1})來查詢所有命令)
- db.runCommand({"buildInfo" : 1}) # 返回MongoDB服務器的版本號和服務器OS的相關信息。
- db.runCommand({"collStats" : 集合名}) # 返回該集合的統計信息,包括數據大小,已分配存儲空間大小,索引的大小等。
- db.runCommand({"distinct" : 集合名, "key" : 鍵, "query" : 查詢文檔}) # 返回特定文檔所有符合查詢文檔指定條件的文檔的指定鍵的所有不同的值。
- db.runCommand({"dropDatabase" : 1}) # 清空當前數據庫的信息,包括刪除所有的集合和索引。
- db.runCommand({"isMaster" : 1}) # 檢查本服務器是主服務器還是從服務器。
- db.runCommand({"ping" : 1}) # 檢查服務器鏈接是否正常。即便服務器上鎖,該命令也會立即返回。
- db.runCommand({"repaireDatabase" : 1}) # 對當前數據庫進行修復并壓縮,如果數據庫特別大,這個命令會非常耗時。
- db.runCommand({"serverStatus" : 1}) # 查看這臺服務器的管理統計信息。
- # 某些命令必須在admin數據庫下運行,如下兩個命令:
- db.runCommand({"renameCollection" : 集合名, "to":集合名}) # 對集合重命名,注意兩個集合名都要是完整的集合命名空間,如foo.bar, 表示數據庫foo下的集合bar。
- db.runCommand({"listDatabases" : 1}) # 列出服務器上所有的數據庫
七、進程控制
- db.currentOp() # 查看活動進程
- db.$cmd.sys.inprog.findOne() # 查看活動進程 與上面一樣
- opid # 操作進程號
- op # 操作類型(查詢更新)
- ns # 命名空間,指操作的是哪個對象
- query # 如果操作類型是查詢,這里將顯示具體的查詢內容
- lockType # 鎖的類型,指明是讀鎖還是寫鎖
- db.killOp(opid值) # 結束進程
- db.$cmd.sys.killop.findOne({op:opid值}) # 結束進程
八、備份還原
- ./mongoexport -d test -c t1 -o t1.dat # 導出JSON格式
- -c # 指明導出集合
- -d # 使用庫
- ./mongoexport -d test -c t1 -csv -f num -o t1.dat # 導出csv格式
- -csv # 指明導出csv格式
- -f # 指明需要導出那些例
- db.t1.drop() # 登錄后刪除數據
- ./mongoimport -d test -c t1 -file t1.dat # mongoimport還原JSON格式
- ./mongoimport -d test -c t1 -type csv --headerline -file t1.dat # mongoimport還原csv格式數據
- --headerline # 指明不導入第一行 因為第一行是列名
- ./mongodump -d test -o /bak/mongodump # mongodump數據備份
- ./mongorestore -d test --drop /bak/mongodump/* # mongorestore恢復
- --drop #恢復前先刪除
- db.t1.find() #查看
- # mongodump 雖然能不停機備份,但市區了獲取實時數據視圖的能力,使用fsync命令能在運行時復制數據目錄并且不會損壞數據
- # fsync會強制服務器將所有緩沖區的數據寫入磁盤.配合lock還阻止對數據庫的進一步寫入,知道釋放鎖為止
- # 備份在從庫上備份,不耽誤讀寫還能保證實時快照備份
- db.runCommand({"fsync":1,"lock":1}) # 執行強制更新與寫入鎖
- db.$cmd.sys.unlock.findOne() # 解鎖
- db.currentOp() # 查看解鎖是否正常
九、修復
- # 當停電或其他故障引起不正常關閉時,會造成部分數據損壞丟失
- ./mongod --repair # 修復操作:啟動時候加上 --repair
- # 修復過程:將所有文檔導出,然后馬上導入,忽略無效文檔.完成后重建索引。時間較長,會丟棄損壞文檔
- # 修復數據還能起到壓縮數據庫的作用
- db.repairDatabase() # 運行中的mongodb可使用 repairDatabase 修復當前使用的數據庫
- {"repairDatabase":1} # 通過驅動程序
十、python使用mongodb
- easy_install pymongo # 安裝(python2.7+)
- import pymongo
- connection=pymongo.Connection('localhost',27017) # 創建連接
- db = connection.test_database # 切換數據庫
- collection = db.test_collection # 獲取collection
- # db和collection都是延時創建的,在添加Document時才真正創建
- 文檔添加, _id自動創建
- import datetime
- post = {"author": "Mike",
- "text": "My first blog post!",
- "tags": ["mongodb", "python", "pymongo"],
- "date": datetime.datetime.utcnow()}
- posts = db.posts
- posts.insert(post)
- ObjectId('...')
- 批量插入
- new_posts = [{"author": "Mike",
- "text": "Another post!",
- "tags": ["bulk", "insert"],
- "date": datetime.datetime(2009, 11, 12, 11, 14)},
- {"author": "Eliot",
- "title": "MongoDB is fun",
- "text": "and pretty easy too!",
- "date": datetime.datetime(2009, 11, 10, 10, 45)}]
- posts.insert(new_posts)
- [ObjectId('...'), ObjectId('...')]
- 獲取所有collection
- db.collection_names() # 相當于SQL的show tables
- 獲取單個文檔
- posts.find_one()
- 查詢多個文檔
- for post in posts.find():
- post
- 加條件的查詢
- posts.find_one({"author": "Mike"})
- 高級查詢
- posts.find({"date": {"$lt": "d"}}).sort("author")
- 統計數量
- posts.count()
- 加索引
- from pymongo import ASCENDING, DESCENDING
- posts.create_index([("date", DESCENDING), ("author", ASCENDING)])
- 查看查詢語句的性能
- posts.find({"date": {"$lt": "d"}}).sort("author").explain()["cursor"]
- posts.find({"date": {"$lt": "d"}}).sort("author").explain()["nscanned"]
- JDK安裝
- chmod 744 jdk-6u24-linux-x64.bin
- ./jdk-6u24-linux-x64.bin
- vi /etc/profile # 添加環境變量
- export JAVA_HOME=/usr/java/jdk1.6.0_24
- export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- export PATH=$PATH:$JAVA_HOME/bin
- . /etc/profile
- jps -ml # 查看java進程
新聞熱點
疑難解答