在 Linux 上安裝軟件應該去官網下載比較好,比如去 JDK 的官網下載 JDK ,會給出這樣的下載列表。
對於 Linux 系統來說有三個安裝包可以下載,格式分別爲 rpm 和 deb 和 tar.gz 。tar.gz 是安裝文件的壓縮包,rpm 和 deb 分別是 CentOS 體系的 Linux 系統安裝包和 Ubuntu 體系的安裝包。
1,安裝軟件
下載各自平臺的安裝包之後,CentOS 下面使用 rpm -i jdk-xxx.rpm
進行安裝,Ubuntu 下面使用 dpkg -i jdk-xxx.deb
進行安裝。其中 -i 是 install 的意思。
也可以直接下載 tar.gz 文件,然後使用 tar 工具解壓,就可以了:tar xvzf jdk-xxx.tar.gz
。
2,軟件列表
CentOS 中使用 rpm -qa
指令可以查看所有安裝軟件的列表。其中 -q 就是 query 的意思,-a 就是 all 的意思。
Ubuntu 中使用 dpkg -l
指令可以查看所有安裝軟件的列表。其中 -l 是 list 的意思。
如果要去搜索某個軟件是否安裝可以使用管道符和 grep
配合使用,比如 rpm -qa | grep jdk
可以在 CentOS 中搜索出當前電腦是否已經安裝了 jdk 。
如果安裝的軟件很多,並且又不知道關鍵詞,那麼可以使用 rpm -qa | more
或者 rpm -qa | less
指令來分頁查找。其中 more 的分頁只能往後翻,翻到最後一頁自動結束返回命令行,less 分頁可以前後翻頁,但需要輸入 q 才能返回命令行,q 是 quit 的意思。
3,刪除軟件
如果要刪除軟件,可以使用 rpm -e
和 dbkg -r
來刪除軟件。其中 -e 就是 erase,-r 就是 remove。
4,軟件管理工具 yum 和 apt
Linux 中有自己的軟件管家工具,CtenOS 中是 yum,Ubuntu 下是 apt。
你可以根據關鍵詞搜索,比如搜索 jdk:yum search jdk
和 apt search jdk
,可以搜索出很多的可以安裝的 jdk 版本。
然後選中一個版本使用如下指令進行下載安裝:yum install java-xxx
和 apt install openjdk-xxx
。
這兩個軟件管家配置下載源地址的文件分別在:/etc/yum.repos.d/CentOS-Base.repo
(CentOS)和 /etc/apt/sources.list
(Ubuntu)
分別配置如下:
# CentOS
[base]
name=CentOS-$releasever - Base - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
# Unbuntu
deb http://mirrors.163.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-backports main restricted universe multiverse
這裏的配置都用的是國內的節點。
5,配置環境變量
Linux 下配置環境變量使用 export 命令來操作。
export JAVA_HOME=/root/jdk-XXX_linux-x64
export PATH=$JAVA_HOME/bin:$PATH
export 命令僅在當前命令行的會話中起作用,一旦退出登陸進來就沒用了。要想永久生效,就得配到用戶默認的工作目錄下的 .bashrc 文件中,然後手動通過 source .bashrc
讓環境變量生效。
6,運行程序
Linux 運行程序有三種方式。
第一種: 當前用戶有該文件的 x 執行權限,找到文件所在的目錄,然後通過 ./filename
來運行該程序。當然如果配置在 PATH 設置的路徑下面,就不用 ./ 了,直接輸入文件名即可,Linux 會幫我們找。
這樣執行的程序可能需要和用戶進行交互,例如允許讓用戶輸入,然後輸出結果也可以打印到交互命令行中。一旦交互命令行退出,程序就停止運行了。如果我們要運行一些需要 “永遠” 在線的程序肯定是不行的,比如我們要運行一個博客程序,總不能一直開着交互命令行。
第二種: 後臺運行。使用 nohup
命令,這個命令的意思是 no hang up (不掛起),也就是說,當前交互命令行退出的時候,程序還要在。
當然,這個時候程序不能一直霸佔命令行,而是應該在後臺跑。最後加一個 & ,就表示後臺運行。
最後還要處理的就是輸出文件,原來輸出都是打印在命令行裏了,現在後臺運行,輸出到哪裏是要自己配置的。
所以最終的命令形式應該是這樣的:nohup command >out.file 2>&1 &
。 這裏面 1 表示文件描述符 1,表述標準輸出,2 表示文件描述符 2,表述標準錯誤輸出。”2>&1“ 表示標準輸出和錯誤輸出合併了。合併輸出到 out.file 中。
關閉後臺運行的程序:
ps -ef |grep 關鍵字 |awk '{print $2}'|xargs kill -9
ps -ef
是列出所有正在運行的程序,grep 是匹配到我們要的程序,awk 工具可以對文本進行處理,這裏的 awk ‘{print $2}’ 是指第二列的內容,也就是運行程序的 ID ,然後將 ID 通過 xargs 傳遞給 kill -9,也就是發送給這個運行的程序一個信號,讓它關閉。
第三種: 以服務的方式運行。
在 Ubuntu 中我們可以使用 apt install mysql-server
來安裝 MySQL,然後通過命令 systemctl start mysql
來啓動 MySQL,通過 systemctl enable mysql
設置開機啓動。之所以成爲服務並且能夠開機啓動,是因爲在 /lib/systemd/system
目錄下會創建一個 xxx.service 的配置文件,裏面定義瞭如何啓動和如何關閉。
在 CentOS 裏有點特殊,MySQL 被 Oracle 收購後,因爲擔心授權問題,改爲使用 MariaDB,他是 MySQL 的一個分支。通過 yum install mariadb-server mariadb
進行安裝。使用 systemctl start mariadb
來啓動,使用 systemctl enable mariadb
設置開機啓動。同理,會在 /usr/lib/systemd/system
目錄下,創建一個 xxx.service 的配置文件,從而成爲一個服務。