Linux下#!/usr/bin/env bash和#!/usr/bin/bash、#!/bin/bash的比較
轉自:http://www.cnblogs.com/EasonJim/p/8308476.html
#!/usr/bin/env bash #在不同的系統上提供了一些靈活性。 #!/usr/bin/bash #將對給定的可執行檔案系統進行顯式控制。
通過/usr/bin/env執行程式,使用者不需要去尋找程式在系統中的位置(因為在不同的系統,命令或程式存放的位置可能不同),只要程式在你的$PATH中;
通過/usr/bin/env執行程式另一個好處是,它會根據你的環境尋找並執行預設的版本,提供靈活性。
不好的地方是,有可能在一個多使用者的系統中,別人在你的$PATH中放置了一個bash,可能出現錯誤。
大部分情況下,/usr/bin/env是優先選擇的,因為它提供了靈活性,特別是你想在不同的版本下執行這個指令碼;而指定具體位置的方式#!/usr/bin/bash,在某些情況下更安全,因為它限制了程式碼注入的可能。
可能在一些系統上/usr/bin/bash沒有,而/bin/bash則一定存在的。所以/bin/bash是顯示指定的優先選擇。
相關推薦
Linux下#!/usr/bin/env bash和#!/usr/bin/bash、#!/bin/bash的比較
轉自:http://www.cnblogs.com/EasonJim/p/8308476.html#!/usr/bin/env bash #在不同的系統上提供了一些靈活性。 #!/usr/bin/bash #將對給定的可執行檔案系統進行顯式控制。通過/usr/bin/env執
王權富貴出錯集:Python指令碼開頭兩行的:#!/usr/bin/env python和# -*- coding: utf-8 -*-的作用
1.#!/usr/bin/env python 是用來說明指令碼語言是 python 的 是要用 /usr/bin下面的程式(工具)python,這個直譯器,來解釋 python 指令碼,來執行 python 指令碼的。 2、# -*- coding:
python中#!/usr/bin/env python與#!/usr/bin/python
通常在指令碼語言的第一行會看到#!/usr/bin/env python 與 #!/usr/bin/python其中之一,這兩句話的目的都是指出你的python檔案用什麼可執行程式去執行它。 #!/usr/bin/python 是告訴作業系統執行這個指令碼的時候,呼叫 /usr/bin 下的 python
#!/usr/bin/env python與#!/usr/bin/python的區別
指令碼語言的第一行,目的就是指出,你想要你的這個檔案中的程式碼用什麼可執行程式去執行它,就這麼簡單。 #!/usr/bin/python是告訴作業系統執行這個指令碼的時候,呼叫/usr/bin下的python直譯器。 #!/usr/bin/env pytho
Python2_模組已經安裝缺無法呼叫的情況/#!/usr/bin/env python與#!/usr/bin/python的區別
【1】問題產生:已經安裝了jieba模組,但是在呼叫時報錯:模組不存在 【2】問題解決:第一行由#!/usr/bin/python改為#!/usr/bin/env python 【3】理由:指令碼語言的第一行,目的就是指出,你想要你的這個檔案中的程式碼用什麼可執行程式去執
LINUX下GDB反匯編和調試
出了 恢復 而是 約定 簡單的 難度 tar link 並且 Linux下的匯編與Windows匯編最大的不同就是第一個操作數是原操作數,第二個是目的操作數。而Windows下卻是相反。 1、 基本操作指令 簡單的操作數類型說明。一般有三種。 (1)馬
linux下安裝mongodb的方法和終端下基本操作
base 當前 操作 god --help 客戶 drop tar -s 在linux環境安裝mongoDB: 一般認為偶數版本為穩定版 如 1.6.x,奇數版本為開發版如1.7.x 32bit的mongoDB最大能存放2g的數據,64bit沒有限制 方法
Linux下使用腳本安裝和升級pip
spa style 通過 腳本 linux下 調用 源碼編譯安裝 trap ont 要安裝或升級pip,需要下載 get-pip.py. 地址:https://bootstrap.pypa.io/get-pip.py ]# wget https://bootstrap.py
Linux下的打包與壓縮和tar命令!
tar.gz 安裝 gin font log 針對 更新 mil emp 本文介紹了linux下的打包壓縮程序tar、gzip、gunzip、bzip2、bunzip2、 compress、uncompress、zip、unzip、rar、unrar程序,以及如何使用它們對
Linux下的命令之clear和reset
linux clear reset 清除屏幕 1) clear : 刷新屏幕 保留歷史命令記錄 說明:此命令本質上是讓終端向後翻一頁 當向上滾動鼠標時,還是可以看到之前的命令操作記錄 2) reset : 重新初始化屏幕,清除歷史命令操作記錄本文出自 “梵高說我腦子有病” 博客,謝絕
linux下生成https的crt和key證書
openssl https今天在配置kibana權限設置時,kibana要求使用https鏈接。於是總結了一下linux下openssl生成 簽名的步驟:x509證書一般會用到三類文,key,csr,crtKey 是私用密鑰openssl格,通常是rsa算法。Csr 是證書請求文件,用於申請證書。在制作
linux 下的軟連接和硬鏈接
linux 軟連接 linux硬鏈接 linux下創建硬鏈接相當於對源文件的拷貝,生成的新文件和源文件的inode值時一致的,當源文件刪除後,硬鏈接不會失效 軟連接類似於源文件的快捷方式,兩者的inode不同,它裏面保存的時源文件的路徑信息,當源文件的刪除消失後,軟連接失效,此時如果在新建源文件,則軟
Linux下iptables 禁止端口和開放端口
怎麽 進行 window 清除 swe dns 53 技術 clas pasv 1、關閉所有的 INPUT FORWARD OUTPUT 只對某些端口開放。下面是命令實現: iptables -P INPUT DROP iptables -P FORWARD DROP i
Linux下開發環境的安裝和配置
一: 1.先下載映象檔案 2.源配置 阿里雲源配置官網:http://mirrors.aliyun.com/ 源配置:(1) 備份 sudo mv /etc/yu
靜態連結庫的編譯與使用 linux下的動態連結庫和靜態連結庫到底是個什麼鬼?(一)靜態連結庫的編譯與使用
linux下的動態連結庫和靜態連結庫到底是個什麼鬼?(一)靜態連結庫的編譯與使用 知識不等於技術,這句話真的是越工作的時間長越深有體會,學習到的知識只有不斷的實踐,才成真正在自已的心裡紮下根,成為自身的一部分,所以無論如何,我希望我的部落格可以
Linux下系統自帶python和Anaconda切換
https://blog.csdn.net/zhangxinyu11021130/article/details/64125058 那麼,如果在~/.bashrc中修改檔案的話,即加入export PATH="/home/myname/anaconda2/bin:$PATH",則輸入python
Linux下檢視系統版本號和核心資訊的方法
本文轉載,侵刪!感謝博主”huoyuanshen”(✈機票點我) 參考URL:http://www.ha97.com/2987.html 簡要:1,lsb_release -a 檢視linux系統版本 &n
linux 下怎樣安裝使用 Yacc 和 Lex
安裝過程參照以下步驟: 1、開啟網址:www.tcpdump.org/ 下載 libpcap-1.0.0.tar.gz (512.0KB) 軟體包,通過命令 tar zxvf libpcap-1.0.0.tar.gz 解壓檔案,並將其放入自定義的安裝目錄。 2、開啟網址:flex.sour
linux下mysql數據備份和導入
roo mysq bsp linu linux p12 usr 進入 table 導出整個數據庫結構和數據 mysqldump -h 127.0.0.1 -uroot -p database > /usr/local/dump.sql 導出單個數據表結構和數據mysq
[運維工具]linux下遠端桌面rdesktop安裝和使用
依然是解壓 configure make make install 這些步驟 rdesktop -f 16 192.168.16.90 -f是全屏,退出全屏是CRTL+ALT+ENTER 記錄一個linux下 的類cr