① python 模塊的路徑搜索方法
導入一個叫 spam 的模塊時,解釋器先在當前目錄中搜索名為 spam.py 的文件。如果沒有找到的話,接著會到 sys.path 變數中給出的目錄列表中查找。 sys.path 變數的初始值來自如下:
輸入腳本的目錄(當前目錄)。
環境變數 PYTHONPATH 表示的目錄列表中搜索
(這和 shell 變數 PATH 具有一樣的語法,即一系列目錄名的列表)。
Python 默認安裝路徑中搜索。
Note
在支持符號鏈接的文件系統中,輸入的腳本所在的目錄是符號鏈接指向的目錄。 換句話說也就是包含符號鏈接的目錄不會被加到目錄搜索路徑中。
實際上,解釋器由 sys.path 變數指定的路徑目錄搜索模塊,該變數初始化時默認包含了輸入腳本(或者當前目錄), PYTHONPATH 和安裝目錄。這樣就允許 Python 程序了解如何修改或替換模塊搜索目錄。需要注意的是由於這些目錄中包含有搜索路徑中運行的腳本,所以這些腳本不應該和標准模塊重名,否則在導入模塊時 Python 會嘗試把這些腳本當作模塊來載入。這通常會引發錯誤。
② 怎麼進入單用戶模式 把atd服務設置為開機off
運行級就是操作系統當前正在運行的功能級別。這個級別從1到6,具有不同的功能。不同的運行級定義如下#0-停機(千萬不能把initdefault設置為0)#1-單用戶模式#sinits=init1#2-多用戶,沒有NFS#3-完全多用戶模式(標準的運行級)#4-沒有用到#5-X11多用戶圖形模式(xwindow)#6-重新啟動(千萬不要把initdefault設置為6)這些級別在/etc/inittab文件里指定。這個文件是init程序尋找的主要文件,最先運行的服務是放在/etc/rc.d目錄下的文件。在大多數的Linux發行版本中,啟動腳本都是位於/etc/rc.d/init.d中的。這些腳本被用ln命令連接到/etc/rc.d/rcn.d目錄。(這里的n就是運行級0-6)chkconfig命令有五項功能:添加服務,刪除服務,列表服務,改變啟動信息以及檢查特定服務的啟動狀態。語法為:chkconfig--list[name]chkconfig--addnamechkconfig--delnamechkconfig[--levellevels]namechkconfig[--levellevels]namechkconfig沒有參數運行時,顯示用法。如果加上服務名,那麼就檢查這個服務是否在當前運行級啟動。如果是,返回true,否則返回false。--level選項可以指定要查看的運行級而不一定是當前運行級。如果在服務名後面指定了on,off或者reset,那麼chkconfig會改變指定服務的啟動信息。on和off分別指服務在改變運行級時的啟動和停止。reset指初始化服務信息,無論有問題的初始化腳本指定了什麼。對於on和off開關,系統默認只對運行級3,4,5有效,但是reset可以對所有運行級有效。指定--level選項時,可以選擇特定的運行級。需要說明的是,對於每個運行級,只能有一個啟動腳本或者停止腳本。當切換運行級時,init不會重新啟動已經啟動的服務,也不會再次去停止已經停止的服務。選項介紹:--levellevels指定運行級,由數字0到7構成的字元串,如:--level35表示指定運行級3和5。要在運行級別3、4、5中停運nfs服務,使用下面的命令:chkconfig--level345nfsoff--addname這個選項增加一項新的服務,chkconfig確保每個運行級有一項啟動(S)或者殺死(K)入口。如有缺少,則會從預設的init腳本自動建立。--delname用來刪除服務,並把相關符號連接從/etc/rc[0-6].d刪除。--listname列表,如果指定了name那麼只是顯示指定的服務名,否則,列出全部服務在不同運行級的狀態。運行級文件每個被chkconfig管理的服務需要在對應的init.d下的腳本加上兩行或者行的注釋。第一行告訴chkconfig預設啟動的運行級以及啟動和停止的優先順序。如果某服務預設不在任何運行級啟動,那麼使用-代替運行級。第二行對服務進行描述,可以用跨行注釋。例如,random.init包含三行:#chkconfig:23452080#description:#.表明random腳本應該在運行級2,3,4,5啟動,啟動優先權為20,停止優先權為80。好了,介紹就到這里了,去看看自己目錄下的/etc/rc.d/init.d下的腳本吧。設置自啟動服務:chkconfig--level345nfson配置啟動項方法命令行模式#serviceservicenamestatus是當前狀態#chkconfig--listservicename是查看啟動狀態,也就是是否開機自動啟動#chkconfig--list列出所有開機啟動項#chkconfig--level345xxoff把不想啟動的項345級別設置為off(關閉)(服務名xx)界面模式終端中直接輸入#ntsysvLinux啟動項說明apmd--apmd用來監視系統用電狀態,並將相關信息通過syslogd寫入日誌。也可以用來在電源不足時關機arpwatch--用來維護乙太網物理地址和ip地址的對應關系atd--運行用戶用at命令調度的任務。也在系統負荷比較低時運行批處理任務autofs--當您需要時自動轉載文件系統,而當您不需要時自動卸載chargen--tcp版本的chargenserverchargen-udp--udp版本的chargenservercrond--周期地運行用戶調度的任務。比起傳統的unix版本添加了不少屬性,而且更安全,配置更簡單daytime--tcp版本的daytimeserverdaytime-udp--udp版本的daytimeserverecho--tcp版本的echoserverecho-udp--udp版本的echoservereklogin--接受rlogin會話鑒證和用kerberos5加密的一種服務finger--用於應答finger請求的服務gpm--為文本模式下的linux程序提供了滑鼠的支持。它也支持控制台滑鼠的拷貝,粘帖操作以及彈出式菜單(必須)gssftp--接受可被kerberos5驗證的ftp連接httpd--http是著名的www伺服器,可用來提供html文件以及cgi動態內容服務identd--提供驗證身份的方法ipchains--ipchains包過濾防火牆iptables--iptables包過濾防火牆ipvsadm--調用ipvsadm來建立和維護ipvs路由選擇表isdn--啟用isdn(綜合服務數字網)服務kadmin--更改在主控kdc中使用本機的kadmin工具,或透過kadmin服務來完成kdcrotate--設置配置文件/etc/krb5.con中的kdcs表項keytable--該程序的功能是轉載您在/etc/sysconfig/keyboards里說明的鍵盤映射表klogin--接受bsd方式的rlogin會話,但需要使用kerbeos5驗證kprop--是否允許kdc接收來的masterkdc的升級krb5-telnet--允許普通的telnet登陸,但也可使用kerberos5驗證krb524--是以改變kerberos5到kerberosIV的賃證krb5kdc--開啟kerberosIV和5所需的連接以獲得賃證kshell--接受rshell命令鑒證和用kerberos加密的服務kudzu--運行硬體檢測,並可選擇性地設置硬體變化lpd--lpd是系統列印守護程序,負責將lpr等程序提交給列印作業netfs--負責裝載/卸載nfs、samba、ncp文件系統network--激活/關閉啟動時的各個網路介面(必須)nfs--nfs是一個流行的基於tcp/ip網路的文件共享協議.該服務提供了nfs文件共享服務nfslock--提供nfs文件上鎖功能nscd--該服務負責密碼和組的查詢,並且緩沖查詢結果portmap--portmap用來支持rpc連接,rpc被用於nfs以及nis等服務postgresql--postgresql關系資料庫引擎random--保存和恢復系統的高質量隨機數生成器,這些隨機數是系統一些隨機行為提供的rlogin--rlogin程序服務,提供來自遠程信任主機的注冊功能routed--該守護程序支持rip協議的自動ip路由表維護.rip主要使用在小型網路上,大一點的網路就需要復雜一點的協議rsh--提供rcmd程序或者rsh程序的服務rstatd--rstat協議允許網路上的用戶獲得同一網路上各機器的性能參數rsync--對ftp服務的一個很好的附加,允許循環碼求和校驗等rusersd--該服務使網路用戶可以定位同一網路上的其他用戶rwalld--rwall協議允許遠程用戶向在同一系統中活躍著的終端發送消息,類似wall的本地行為rwhod--允許遠程用戶獲得運行rwho精靈的機器上所有已登錄用戶的列表,與finger類似smb--啟動和關閉smbd和nmbd精靈程序以提供smb網路服務snortd--一個輕量級的網路入侵檢測工具swat--samba網路配置工具,可以通過流覽器的901埠連接使用swatsyslog--syslog是操作系統提供一種機制,守護程序通常使用這些機制將各種信息寫到各個系統日誌文件(必須)telnet--提供telnet服務,使用未加密的用戶/密碼組進行驗證time--tcp版本的rfc868timeservertime-udp--udp版本的rfc868timeserverwebmin--webmin是基於web的集系統管理與網路管理於一身的強大管理工具xfs--在引導和關閉時啟動和停上x字體服務,並可能重新生成字體表(必須)xinetd--網際網路操作服務程序。提供類似於inetd+tcp_wrapper的功能,但是更加強大和安全,監控網路對各種它管理的服務的需求,並在要的時候啟動相應的服務程序ypbind--實現網路信息服務的伺服器端redhat下常用服務介紹anacron不考慮系統downtime期間的cron服務amd自動安裝NFS守候進程apmd高級電源管理arpwatch記錄日誌並構建一個在LAN介面上看到的乙太網地址和IP地址對資料庫atd用於at和batch的服務autofs自動安裝管理進程automount,與NFS相關,依賴於NIScrond為Linux下自動安排的進程提供運行服務.Gpm提供字元模式下對滑鼠的支持.Keytable用於裝載鍵盤鏡像Kudzu硬體探測器Netfs安裝和卸載NFS、SAMBA和NETWARE網路文件系統Network激活已配置網路介面的腳本程序NfslockNFS鎖定Pcmcia安裝pcmcia卡(一般用於筆記本電腦)SshdOpenSSH伺服器Syslog一個讓系統引導時啟動syslog和klogd系統日誌守候里程的腳本XfsXwindow字型伺服器,為本地和遠程X伺服器提供字型集Xinetd支持多種網路服務的核心守候程序。
③ lua腳本怎麼獲取當前正在執行的腳本的當前路徑
如果在Windows下(……Linux行不行不知道)
obj=io.popen("cd") --如果不在交互模式下,前面可以添加local
path=obj:read("*all"):sub(1,-2) --path存放當前路徑
obj:close() --關掉句柄
上述原理是利用Windows的cd命令返回工作目錄;至於sub(1,-2)是為了去掉換行符
當然如果你有lua socks或者你有lfs(注意匹配你的Lua版本),你可以使用lfs(Lua File System)
require("lfs")
path=lfs.currentdir()
這個則是Lua文件系統庫中的函數。
……就是這樣
④ 在python中,如何獲取腳本文件所在路徑
用內置函數: __file__
給一個Django的示例,這是獲取當前文件的上一級目錄的實例。
importos
#:os.path.join(BASE_DIR,...)
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
⑤ 如何獲得Python腳本所在目錄的位置
如果想得到腳本的路徑,那麼得這樣:
os.path.split(os.path.realpath(__file__))[0]
其中__file__雖然是所在.py文件的完整路徑,但是這個變數有時候返回相對路徑,有時候返回絕對路徑,因此還要用os.path.realpath()函數來處理一下。
os.getcwd()是不對的,只能得到當前目錄位置
⑥ PHP通過類名 怎麼查找 這個類所在的文件 路徑
dirname(__FILE___) 函數返回的是腳本所在在的路徑。
<?php
$basedir = dirname(__FILE__);
?>
⑦ lua腳本怎麼獲取當前正在執行的腳本的當前路徑
時代在發展科技在進步,互聯網已經不是什麼神秘的領域,現在越來越多的年輕人對於互聯網越來越熟悉,甚至有些開始學習Linux系統方面的知識,下面小猿圈Linux講師就講關於如何在Linux系統獲取當前工作路,希望對你有所幫助。
獲取工作路徑這里介紹兩種方法:
1、使用getcwd()函數。
頭文件:#include
定義函數:char*getcwd(char*buf,size_tsize);
函數說明:getcwd()會將當前的工作目錄絕對路徑復制到參數buf所指的內存空間,參數size為buf的空間大小。
實例:
voidgetPath()
{
charpPath[256]={0};
getcwd(buf,256);
printf("filePath:%s\n",pPath);
}
主函數調用此函數運行結果:
filePath:/home/myTest
2、使用readlink()函數
頭文件:#include<unistd.h>
函數定義:intreadlink(constchar*path,char*buf,size_tbufsiz);
函數說明:此函數會將參數path的符號連接內容到參數buf所指的內存空間,返回的內容不是以NULL作字元串結尾,但會將字元串的字元數返回。若參數bufsiz小於符號連接的內容長度,過長的內容會被截斷。成功返回buf長度,失敗返回-1。
實例:
voidgetPath()
{
charpPath[256]={0};
intret=-1;
ret=readlink("/proc/self/exe",pPath,256);
pPath[ret]="\0"
printf("thefilePath:%s\n",pPath);
}
intmain()
{
getPath();
}
運行結果:
thefilePath:/home/myTest/a.out
小猿圈Linux講師提醒大家:每天學習一點技術問題,只要功夫深,鐵杵磨成針,學習不是一朝一夕的,是需要付出行動的,而且還要堅持,學習新的技術需要不斷的查閱資料,看視頻,復習,練習,如果你工作中或者生活中遇到什麼問題,可以到小猿圈去尋找答案的,相信會給你滿意的答復
⑧ node js-nodejs怎麼獲取腳本所在的路徑
nodejs提供了一個path的模塊,它提供了一系列的工具還是,用於處理文件和目錄的路徑。引入模塊:
constpath=require('path');
1、獲取一個文件的目錄名 path.dirname()
constfilepath='/tmp/demo/js/app.js';//腳本路徑
console.log(path.dirname(filepath));//輸出:/tmp/demo/js
2、獲取當前工作進程的目錄
console.log(process.cwd());
⑨ 如何在腳本中實現自動獲取本腳本的絕對路徑
你這個方法就只有在腳本所在目錄和當前目錄一致的時候好使,但是這兩個大部分情況下都是不一致的。
⑩ 如何確定正在運行腳本的文件夾的路徑
-- PD答:您好,PD。您知道,對於腳本專家,此問題(同我們所收到的許多問題一樣)被我們歸到了「為什麼我們沒有想到」類別之下。腳本專家將花費大量的時間測試腳本,包括由 Windows 腳本編寫社區成員所提交的腳本。(嗯,將會有一位腳本專家花費大量時間測試眾多腳本。請注意,即使他必須做這里幾乎所有的工作,他也不會抱怨。[編者註:包括大多數抱怨。])其中的許多腳本將向某個文件夾添加文件或從該文件夾刪除文件,或者將信息寫入該文件夾中的日誌文件(該腳本本身就在該文件夾中)。這意味著我們經常需要使用 Windows 資源管理器打開腳本的主文件夾。我們如何打開該文件夾呢?嗯,雙擊我的電腦、雙擊 C:、雙擊 Scripts 等等。我們從來沒有想過使用腳本來為我們打開文件夾。 Set objShell = CreateObject("Wscript.Shell") strPath = Wscript.ScriptFullName Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.GetFile(strPath) strFolder = objFSO.GetParentFolderName(objFile) strPath = "explorer.exe /e," & strFolder objShell.Run strPath 正如您所看到的,這個腳本不是特別復雜。首先創建一個 Wscript.Shell 對象的實例;稍後會使用這個對象啟動 Windows 資源管理器。然後使用下面這行代碼獲取運行腳本的完整路徑(例如 C:\Scripts\My_script.vbs): strPath = Wscript.ScriptFullName 進行下一步之前,要馬上澄清一下。有些人可能想知道我們為什麼不使用 CurrentDirectory 屬性來確定腳本的當前目錄。本來可以,但有一個問題:腳本的當前目錄與其運行時所在的文件夾不一定相同。畢竟,您可以輕松地啟動 C:\Scripts 中的一個腳本,然後將當前目錄更改為 C:\Test。對於此專欄,我們需要腳本所駐留的文件夾的名稱。如果您更願意獲取當前目錄,則請使用下面的這個腳本: Set objShell = CreateObject("Wscript.Shell") strPath = objShell.CurrentDirectory strPath = "explorer.exe /e," & strPath objShell.Run strPath 現在,回到我們的原始腳本。將腳本的完整路徑存儲到變數 strPath 中之後,我們會創建 Scripting.FileSystemObject 的實例。接下來我們將使用以下兩行代碼: Set objFile = objFSO.GetFile(strPath) strFolder = objFSO.GetParentFolderName(objFile) 此時,我們已擁有此腳本文件本身的路徑:C:\Scripts\My_script.vbs。很好,但我們真正需要的是去掉文件名而僅保留文件夾路徑:C:\Scripts。盡管有幾種不同的方法可以達到此目的,但是我們認為下面的方法最為簡單。此時我們所要做的是使用 GetFile 方法綁定到文件 C:\Scripts\My_script.vbs(請注意我們是如何將變數 strPath 作為單獨的參數傳遞給 GetFile 的)。連接到該文件之後,我們便可以使用 GetParentFolderName 方法獲取文件所駐留的文件夾的完整路徑;不用說,它恰好是 C:\Scripts。這也恰好是我們想要打開的那個文件夾。 剩下的就很容易了。在將腳本文件夾路徑安全地放到變數 strPath 中之後,我們便可使用下面這行代碼來構造一個命令行字元串,該字元串將打開 Windows 資源管理器窗口(該窗口的焦點設置為 C:\Scripts): strPath = "explorer.exe /e," & strPath現在,剩餘的全部工作就是調用 Run 方法,以傳遞我們剛剛構造的命令行字元串: