linux下運行文件為什么要加./
原因是可執行文件的目錄沒有包含在環境變量PATH中,linux系統只會搜索PATH變量,而當前目錄不再PATH環境變量中的話,就需要加上"./"來指定到當前目錄下去查找應用程序了;而windows下卻可以,是因為系統會搜索PATH變量和當前目錄。
linux下如何查看某軟件是否已安裝
因為linux安裝軟件的方式比較多,所以沒有一個通用的辦法能查到某些軟件是否安裝了。總結起來就是這樣幾類:
- rpm包安裝的,可以用rpm -qa看到,如果要查找某軟件包是否安裝,用 rpm -qa | grep “軟件或者包的名字”。
[root@hexuweb102 ~] rpm -qa | grep ruby
- yum方法安裝的,可以用yum list installed查找,如果是查找指定包,命令后加 | grep “軟件名或者包名”;
[root@hexuweb102 ~] yum list installed | grep ruby
- 以deb包安裝的,可以用dpkg -l能看到。如果是查找指定軟件包,用dpkg -l | grep “軟件或者包的名字”;
[root@hexuweb102~]dpkg -l | grep ruby
- 如果是以源碼包自己編譯安裝的,例如.tar.gz或者tar.bz2形式的,這個只能看可執行文件是否存在了,
上面幾種方法都看不到這種源碼形式安裝的包。如果是以root用戶安裝的,可執行程序通常都在/sbin:/usr/bin目錄下。
說明:其中rpm yum 是Redhat系linux的軟件包管理命令,dpkg是debian系列的軟件包管理命令
Linux編譯安裝中configure、make和make install各自的作用
這些都是典型的使用GNU的AUTOCONF和AUTOMAKE產生的程序的安裝步驟。AUTOMAKE和AUTOCONF是非常有用的用來發布C程序的東西。
- ./configure是用來檢測你的安裝平臺的目標特征的。比如它會檢測你是不是有CC或GCC,并不是需要CC或GCC,它是個shell腳本。
- make是用來編譯的,它從Makefile中讀取指令,然后編譯。
- make install是用來安裝的,它也從Makefile中讀取指令,安裝到指定的位置。
1. configure
這一步一般用來生成 Makefile,為下一步的編譯做準備,你可以通過在 configure 后加上參數來對安裝進行控制,比如代碼:
./configure --prefix=/usr
上面的意思是將該軟件安裝在 /usr 下面,執行文件就會安裝在 /usr/bin (而不是默認的 /usr/local/bin),資源文件就會安裝在 /usr/share(而不是默認的/usr/local/share)。
同時一些軟件的配置文件你可以通過指定 --sys-config= 參數進行設定。有一些軟件還可以加上 --with、--enable、--without、--disable 等等參數對編譯加以控制,你可以通過允許 ./configure --help 察看詳細的說明幫助。
2. make
這一步就是編譯,大多數的源代碼包都經過這一步進行編譯(當然有些perl或python編寫的軟件需要調用perl或python來進行編譯)。
make 的作用是開始進行源代碼編譯,以及一些功能的提供,這些功能由他的 Makefile 設置文件提供相關的功能,比如 make install 一般表示進行安裝,make uninstall 是卸載,不加參數就是默認的進行源代碼編譯。
使用make就是要將源碼編譯成為可以被執行的可執行文件,而這個可執行文件會放置在目前所在的目錄之下,尚未被安裝到預定安裝的目錄下。
3. make install
這條命令來進行最后的安裝,make會依據Makefile這個文件里面關于install的選項,將之前所編譯完成的數據安裝到默認的目錄中,這一步一般需要你有 root 權限(因為要向系統寫入文件)。
shell命令:
{AA} ] && echo "success" || echo "fail" )
如果變量AA存在,將輸出 success 提示信息;否則輸出 fail 提示信息。
如何在Linux下啟動Tomcat像Windows一樣把啟動信息打印到控制臺
可以通過運行./catalina.sh run啟動,就可以像windows中一樣查看tomcat啟動信息了。
查看Linux端口占用,并kill掉相關進程
方式一:lsof命令
- 查看占用端口進程的PID:
lsof -i:{端口號}
- 根據PID kill掉相關進程:
kill -9 {PID}
方式二:netstat命令
- 查看占用端口進程的PID:
netstat -tunlp|grep {port}
- kill方法如上
kill -9 {PID}
補充:根據程序名查看對應的PID
- 用ps命令(zb專用):
ps -ef | grep {programName}
kill -9 {PID}
- 用pgrep命令:
pgrep命令的p表明了這個命令是專門用于進程查詢的grep。
pgrep {programName}
kill -9 {PID}