国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

UNIX 生產(chǎn)力技巧

瀏覽:9日期:2024-06-13 14:39:39

引言

Unix® 命令行的語言以功能全面而著稱,通過使用各種小型工具、實用程序,并在 Shell 中將它們組合在一起執(zhí)行,您可以指定許多精確的和復(fù)雜的任務(wù)。

但是,當(dāng)在辦公環(huán)境中使用它們時,同樣的這些工具可能成為提高您工作效率的功能強(qiáng)大的助手。許多 UNIX 獨特的技巧可以用于提高工作效率。

對于使用命令行來改善辦公工作效率,本文給出了一些建議和技巧,包括如何查看當(dāng)前系統(tǒng)習(xí)慣、如何計算工作花費(fèi)的時間、操作日期的秘訣、使用快速而簡單的方法對自己發(fā)送提醒、對重復(fù)性交互任務(wù)實現(xiàn)自動化的方法。

查看日常的習(xí)慣

使用 UNIX 命令行提高辦公工作效率的第一步是,仔細(xì)地研究您當(dāng)前的日常習(xí)慣。通過通常所使用的工具和應(yīng)用程序以及訪問和修改的文件,可以告訴您究竟是什么樣日常工作占用了大量的時間,以及應(yīng)該避免哪些操作。

查看所使用的工具

您需要查看經(jīng)常使用哪些工具和應(yīng)用程序。可以輕松地在 Shell 的內(nèi)置 history 中查明您的日常工作習(xí)慣,它將輸出在當(dāng)前的和過去的會話中發(fā)送給 Shell 的輸入行內(nèi)容的枚舉清單。有關(guān)典型的示例,請參見清單 1。

清單 1. Shell 的內(nèi)置 history 的示例輸出

$ history1 who2 ls3 cd /usr/local/proj4 ls5 cd websphere6 ls7 ls -l$

真實的歷史記錄通常保存在一個文件中,以便能夠提供給將來的會話,例如,Korn Shell 將其命令歷史記錄保存在用戶 home 目錄的隱藏文件 .sh_history 中,而 Bash Shell 則使用 .bash_history。通常在達(dá)到一定的長度后,會對這些文件進(jìn)行覆蓋,但是許多 Shell 具有設(shè)置最大歷史記錄長度的變量,Korn 和 Bash Shell 具有 HISTSIZE 和 HISTFILESIZE 變量,您可以在自己的 Shell 啟動文件中對它們進(jìn)行設(shè)置。

通過 sort 來運(yùn)行 history 非常有用,可以獲得最常用的命令的列表。然后,使用 awk 刪除命令名稱減號選項和參數(shù),然后將經(jīng)過排序的列表傳遞給 uniq 以得到一個枚舉列表。最后,再次調(diào)用 sort 以便對列表的第一列按照相反次序進(jìn)行排序(最大的在前面),這是對其自身進(jìn)行枚舉。清單 2 顯示了實際操作的示例。

清單 2. 根據(jù)使用頻率列舉 Shell 歷史記錄中的命令

$ history|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c|sort -r 4 ls 2 cd 1 who$

如果歷史記錄文件比較大,您可以首先通過管道傳輸?shù)?tail 來運(yùn)行周期性的檢查,例如,要檢查最后的 1,000 條命令,可以嘗試使用:

$ history|tail -1000|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c|sort -r

查看訪問或修改的文件

可以使用相同的原則來查看訪問和修改過的文件。要完成這項工作,可以使用 find 實用程序來定位和查看在某一段時間內(nèi)(今天、昨天或者過去的任何日期或時間段)訪問或更改過的所有文件。

通常,您無法找出到底是誰 對文件進(jìn)行了最后的訪問或修改,因為在 UNIX 中不大容易獲得這種信息,但通過將搜索限制為您的 home 目錄樹中包含的文件,您可以僅查看個人的文件。您還可以對搜索進(jìn)行限制,以便僅搜索您正在監(jiān)視或使用的特定項目目錄中的文件。

find 實用程序有幾個標(biāo)志,可以用來根據(jù)時間定位文件,如表 1 中所列舉的。目錄不是常規(guī)文件,但是在列出目錄內(nèi)容或?qū)⑵渥鳛楫?dāng)前工作目錄時,對其進(jìn)行了訪問,所以需要在搜索中使用否定和 -type 標(biāo)志排除它們。

表 1. find 實用程序的一些標(biāo)志

標(biāo)志描述-daystart 這個標(biāo)志表示從某天凌晨開始。-atime 最后訪問該文件的時間,用天數(shù)表示。-ctime 最后更改該文件狀態(tài)的時間,用天數(shù)表示。-mtime 最后修改該文件的時間,用天數(shù)表示。-amin 最后訪問該文件的時間,用分鐘數(shù)表示。(并不是在所有的實現(xiàn)中都可用。)-cmin 最后更改該文件狀態(tài)的時間,用分鐘數(shù)表示。(并不是在所有的實現(xiàn)中都可用。)-mmin 最后修改該文件的時間,用分鐘數(shù)表示。(并不是在所有的實現(xiàn)中都可用。)-type 這個標(biāo)志描述了文件的類型,如 d 表示目錄。-user X 文件屬于用戶 X。-group X 文件屬于組 X。-newer X 文件比文件 X 更新。

下面介紹了如何列出您的 home 目錄樹中、在整整一個小時之前經(jīng)過修改的所有的文件:

$ find ~ -mmin 60 ! -type d

為標(biāo)志給定一個負(fù)值,表示要匹配該數(shù)值或更近的。例如,下面介紹了如何列出您的 home 目錄樹中、從一個小時之前到現(xiàn)在經(jīng)過修改的所有的文件:

$ find ~ -mmin -60 ! -type d

并非所有的 find 實現(xiàn)都支持 min 標(biāo)志。如果您的 find 不支持,那么您可以使用 touch 創(chuàng)建一個虛擬文件,它的時間戳比要找的文件早,然后使用 -newer 標(biāo)志搜索比它更新的文件:

$ dateMon Oct 23 09:42:42 EDT 2006$ touch -t 10230842 temp$ ls -l temp-rw-r--r--1 joejoe  0 Oct 23 08:42 temp$ find ~ -newer temp ! -type d

特殊的 -daystart 標(biāo)志,當(dāng)與任何日期選項一起使用時,可以度量從當(dāng)天凌晨開始(而不是 24 小時以前)到命令執(zhí)行的時刻。下面的命令嘗試列舉存在于系統(tǒng)中的任何位置、從當(dāng)天凌晨到現(xiàn)在訪問過的所有的文件:

$ find / -user `whoami` -daystart -atime -1 ! -type d

類似地,您可以列出 home 目錄樹中、今天修改 的所有文件:

$ find ~ -daystart -mtime -1 ! -type d

為各種時間標(biāo)志賦于不同的值,可以更改搜索時間。您還可以對這些標(biāo)志進(jìn)行組合。例如,您可以列出 home 目錄樹中、從七天之前到現(xiàn)在經(jīng)過訪問和 修改的所有的文件:

$ find ~ -daystart -atime -7 -mtime -7 ! -type d

您還可以根據(jù)特定日期或時間范圍(以天或分鐘進(jìn)行度量)查找文件。要完成該任務(wù),通常可以使用 touch 創(chuàng)建一個或多個虛擬文件,如前所述。

當(dāng)您需要查找匹配某個范圍的文件時,建立兩個虛擬文件,它們的時間戳可以描述這個范圍。然后,對較舊的文件使用 -newer 標(biāo)志,對第二個文件使用“! -newer。

例如,要在 /usr/share 目錄樹中查找在 2006 年 8 月經(jīng)過訪問的所有文件,可以嘗試下面的命令:

$ touch -d "Aug 1 2006" file.start$ touch -d "Sep 1 2006" file.end$ find /usr/share -daystart -newer file.start ! -daystart -newer file.end

最后,在列出目錄內(nèi)容時,可以按照文件的最后修改時間進(jìn)行排序,這樣做有時很有幫助。有些版本的 ls 工具具有 -c 選項,它可以按照文件修改的時間進(jìn)行排序,最先顯示最后修改的文件。與 -l(長清單)和 -t(按照修改時間排序)選項一同使用,您可以對目錄清單按照最后修改文件在前的順序排序,長清單可以顯示文件的修改時間而不是缺省創(chuàng)建時間:

$ ls -ltc /usr/local/proj/websphere | less

計算工作花費(fèi)的時間

使用 UNIX 提高辦公工作效率的另一種有價值的方式是,計算經(jīng)常執(zhí)行的命令所花費(fèi)的時間。然后,您可以對結(jié)果進(jìn)行評估,并確定是否花費(fèi)了過多的時間等待一個特定的進(jìn)程結(jié)束。

計算命令執(zhí)行所花費(fèi)的時間

系統(tǒng)是否運(yùn)行遲緩?您在 Shell 中等待了多長時間,在某個特定命令執(zhí)行時,什么也做不了?完成早上的日常工作需要花費(fèi)多長時間呢?

當(dāng)您使用 date、sleep 和 echo 命令來計算具體任務(wù)所花費(fèi)的時間時,可以獲得關(guān)于這些問題的實質(zhì)性的解答。

要完成這項工作,可以輸入一行以 date 語句開頭的長輸入行,以便按照需要的格式(通常,小時和分鐘就足夠了)輸出時間和日期。然后,運(yùn)行該命令輸入行(可能是由 Shell 指令串聯(lián)起來的幾行內(nèi)容),最后可以使用相同的輸入行再次得到日期。如果您所測試的這些命令產(chǎn)生了大量的輸出,可以對其進(jìn)行重定向,以便能夠閱讀到開始和停止日期。計算這兩個日期的差:

$ date; system-backup > /dev/null; system-diag > /dev/null;> netstat > /dev/null; df > /dev/null; date

測試您的打字速度

您可以使用相同的方法來測試打字輸入:

$ date;cat|wc -w;date

如果您提供一個至少持續(xù) 1 分鐘以上的輸入示例,但最好是 3 分鐘或更長的時間,那么該命令的結(jié)果將更準(zhǔn)確。計算這兩個日期之間的差(以分鐘為單位),然后使用您所輸入的單詞數(shù)(由中間的命令輸出)除以這個值,以得到平均每分鐘輸入的單詞數(shù)。

通過為開始和停止日期以及輸出單詞數(shù)的命令設(shè)置相應(yīng)的變量,您可以為這項任務(wù)實現(xiàn)自動化。但是為了正確地完成這項任務(wù),您必須在使用這些時間做減法計算的時候避免一個常見的錯誤。GNU 對 date 命令進(jìn)行了擴(kuò)展,即 %s 格式選項,可以用來避免這樣的錯誤,它輸出自UNIX 新紀(jì)元 以來的秒數(shù),該時間定義為 UTC 時間 1970 年 1 月 1 日凌晨。然后,您可以單獨根據(jù)秒數(shù)來計算時間。

分配一個變量 SPEED 作為 echo 命令的輸出,以便設(shè)置正確的公式通過管道傳遞給計算器工具,如 bc。然后,輸出一個新的 echo 語言,該語句將輸出關(guān)于打字速度的消息:

$ START=`date +%s`;WordS=`cat|wc -w`; STOP=`date +%s`; SPEED=> `echo "$WORDS / ( ( $STOP - $START ) / 60 )"|bc`;echo> "You have a typing speed of $SPEED words per minute."

您可以將它放到一個腳本中,然后更改其權(quán)限,以使得所有的用戶都可以執(zhí)行它,以便系統(tǒng)中其他的用戶也可以使用它,如清單 3 所示。

清單 3. 運(yùn)行 typespeed 腳本的示例

$ typespeedThe quick brown fox jumped over the lazy dog. The quick brown dog-- ...--jumped over the lazy fox.^DYou have a typing speed of 82.33333333 words per minute.$

了解日期

date 工具可以完成更多的工作,不僅僅只是打印出當(dāng)前的系統(tǒng)日期。您可以使用它來得到給定的日期究竟是星期幾,并得到相對于當(dāng)前日期的相對日期。

了解某一天是星期幾

GNU 對 date 命令的另一個擴(kuò)展是 -d 選項,當(dāng)您的桌上沒有日歷表時(UNIX 用戶不需要日歷表),該選項非常有用。使用這個功能強(qiáng)大的選項,通過將日期作為引號括起來的參數(shù)提供,您可以快速地查明一個特定的日期究竟是星期幾:

$ date -d "nov 22"Wed Nov 22 00:00:00 EST 2006$

在本示例中,您可以看到今年的 11 月 22 日是星期三。

所以,假設(shè)在 11 月 22 日召開一個重大的會議,您可以立即了解到這一天是星期三,而這一天您將趕到駐地辦公室。

獲得相對日期

-d 選項還可以告訴您,相對于 當(dāng)前日期若干天的究竟是哪一天,從現(xiàn)在開始的若干天或若干星期以后,或者以前(過去)。通過將這個相對偏移使用引號括起來,作為 -d 選項的參數(shù),就可以完成這項任務(wù)。

例如,您需要了解兩星期以后的日期。如果您處于 Shell 提示符處,那么可以迅速地得到答案:

$ date -d '2 weeks'

關(guān)于使用該命令,還有其他一些重要的方法。使用 next 指令,您可以得到以后的星期幾是哪一天:

$ date -d 'next monday'

使用 ago 指令,您可以得到過去的日期:

$ date -d '30 days ago'

您可以使用負(fù)數(shù)以得到相反的日期:

$ date -d 'dec 14 -2 weeks'

這個技巧非常有用,它可以根據(jù)將來的日期為自己設(shè)置提醒,可能是在腳本或 Shell 啟動文件中,如下所示:

DAY=`date -d '2 weeks' +"%b %d"`if test "`echo $DAY`" = "Aug 16"then echo 'Product launch is now two weeks away!'fi

為自己設(shè)置提醒

您可以在系統(tǒng)中使用各種工具為自己設(shè)置離開的提醒,與紙制便箋相比,它們占用更少的空間,并且無論您在任何地方登錄都可以看到它們。

了解何時有事需要離開

當(dāng)您在系統(tǒng)中進(jìn)行工作時,很可能會碰到其他的事情。leave 工具在 IBM AIX® 操作系統(tǒng)和 Berkeley Software Distribution (BSD) 系統(tǒng)(請參見參考資料部分)中非常常見,并且可以為您提供幫助。

為 leave 命令指定需要離開的時間,使用 24 小時的格式:HHMM。它運(yùn)行于后臺,并將在給定時間之前的 5 分鐘時,在終端中輸出提醒您準(zhǔn)備離開的信息。如果在離開前 1 分鐘時,您依然處于登錄狀態(tài),它會再次顯示這個提醒消息,然后是在應(yīng)該離開的時刻,并且在此之后每隔 1 分鐘它都會發(fā)送提醒消息,直至您注銷登錄(或者終止這個 leave 進(jìn)程)。清單 4 給出了一個示例。當(dāng)您注銷時,將終止這個 leave 進(jìn)程。

清單 4. 運(yùn)行 leave 命令的示例

$ leaveWhen do you have to leave? 1830Alarm set for Fri Aug 4 18:30. (pid 1735)$ date +"Time now: %l:%M%p"Time now: 6:20PM$<system bell rings>You have to leave in 5 minutes.$ date +"Time now: %l:%M%p"Time now: 6:25PM$<system bell rings>Just one more minute!$ date +"Time now: %l:%M%p"Time now: 6:29PM$Time to leave!$ date +"Time now: %l:%M%p"Time now: 6:30PM$<system bell rings>Time to leave!$ date +"Time now: %l:%M%p"Time now: 6:31PM$ kill 1735$ sleep 120; date +"Time now: %l:%M%p"Time now: 6:33PM$

您可以提供相對時間。如果您希望在從現(xiàn)在 開始的某個時間后離開,可以在時間參數(shù)前面加上 +。所以,要提醒在兩小時后離開,可以輸入下面的命令:

$ leave +0200

要以分鐘為單位提供時間,可以讓小時字段為 0。例如,如果您知道在 10 分鐘之后必須離開,可以輸入:

$ leave +0010

您還可以指定離開時間作為參數(shù),這使得 leave 成為腳本中非常有用的命令,特別是在 Shell 啟動文件中。例如,如果您通常工作到下午 5 點,但是在星期 5 時必須在下午 4 點離開單位,那么您可以在 Shell 啟動文件中設(shè)置一個周提醒:

if test "`date +%a`" = "Fri"then leave 1600; fi

您可以在啟動腳本中加入一個簡單的 leave 語句,不帶任何參數(shù)。每次登錄 Shell 時,您可以輸入離開的時間,如果您按下 Enter 鍵,即沒有指定任何值,那么 leave 將會退出,而不會設(shè)置提醒。

為自己發(fā)送電子郵件提醒

您還可以使用文本消息為自己發(fā)送提醒。建立一則提醒消息,有些時候非常有用,您將在當(dāng)前登錄會話或下次登錄時了解到這一點。

以前,舊的 elm 郵件代理附帶一個工具,它允許您使用電子郵件發(fā)送備忘錄,實際上是提醒發(fā)送者的腳本、主題和正文文本。通過基于時間的方法,使用命令行 mailx 工具向自己發(fā)送郵件,可以輕松地復(fù)制這個過程。(在一些 UNIX 系統(tǒng)中,使用 mail 來代替 mailx。)

將您的電子郵件地址(或您在本地系統(tǒng)中的用戶名,如果您在本地系統(tǒng)中讀取郵件)作為參數(shù)提供,然后,您可以在提示的 Subject 行中輸入提醒消息(如果它非常短),如清單 5 所示。如果提醒消息不適合于 Subject 行,那么可以在消息正文中輸入它。單獨一行 ^D,表示退出 mailx 并發(fā)送郵件。

清單 5. 使用 mailx 命令向自己發(fā)送提醒的示例

$ mailx joeSubject: Call VP on Monday^DCc:Null message body; hope that's ok$

實現(xiàn)重復(fù)性交互工作的自動化

Expect 語言(是 Tcl/Tk 的擴(kuò)展,還有其他的變種可供使用)用來編寫與交互式程序運(yùn)行會話的腳本,而該腳本就好像是一個用戶,直接與程序進(jìn)行交互。

Expect 腳本可以為您節(jié)省大量的時間,特別是當(dāng)您發(fā)現(xiàn)自己正在進(jìn)行重復(fù)性任務(wù)的時候。Expect 可以與多個程序進(jìn)行交互,包括 Shell 和基于文本的 Web 瀏覽器,它可以啟動遠(yuǎn)程會話,并通過網(wǎng)絡(luò)進(jìn)行執(zhí)行。

例如,如果您需要頻繁地連接到本地內(nèi)部網(wǎng)中的系統(tǒng),以運(yùn)行特定的程序,比如 test-servers 命令,您可以使用一個名為 servmaint 的 Expect 腳本實現(xiàn)自動化,該腳本的內(nèi)容如清單 6 所示。

清單 6. 使用 Expect 腳本實現(xiàn)遠(yuǎn)程系統(tǒng)程序執(zhí)行的自動化的示例

#!/usr/bin/expect -fspawn telnet webserv4expect "login:"send "joer"expect "Password:"send "secretr"expect "webserv4>$"send "test-serversr"expect "webserv4>$"send "byer"expect eof

現(xiàn)在,對于整個執(zhí)行過程,不再需要運(yùn)行 telnet 連接到遠(yuǎn)程系統(tǒng),使用您的用戶名和密碼進(jìn)行登錄,在該系統(tǒng)上運(yùn)行這些命令,然后注銷。您只需運(yùn)行清單 6 中給出的 servmaint 腳本,就可以自動完成所有的工作。當(dāng)然,如果您在這種腳本中提供了密碼或其他專用的信息,那么就有一個安全性因素需要考慮,至少,您應(yīng)該更改該文件的權(quán)限,以確保您是唯一可以讀取它的用戶(除超級用戶之外)。

可以在 Expect 中對涉及到系統(tǒng)交互的重復(fù)性任務(wù)進(jìn)行編程,它提供了分支、條件以及高級語言的所有其他特性,以便與這些程序交互的響應(yīng)和方向能夠完全實現(xiàn)自動化。

結(jié)束語

在辦公環(huán)境中,UNIX 系統(tǒng)可以處理許多任務(wù),而通常情況下,這些任務(wù)由運(yùn)行其他操作系統(tǒng)的單獨的計算機(jī)進(jìn)行處理,使用 UNIX 系統(tǒng)中豐富的命令行工具,可以提高工作效率,而在任何其他的地方根本找不到這些工具。

本文介紹了一些使用 UNIX 命令行工具和應(yīng)用程序來提高辦公工作效率的技巧和概念。您可以將這些思想應(yīng)用于自己的辦公環(huán)境,靈活地使用命令行工具,可以提供更多的方式以節(jié)省時間并提高工作效率。

標(biāo)簽: Unix系統(tǒng)
主站蜘蛛池模板: 在线观看的毛片 | 免费观看日本特色做爰视频在线 | 香港全黄一级毛片在线播放 | 日韩精品午夜视频一区二区三区 | 日本国产一区二区三区 | 成年人在线视频观看 | 国产高清在线精品一区二区三区 | 国产欧美久久久精品 | 国产精品久久久久久久午夜片 | 成人影院欧美大片免费看 | 日韩成人三级 | hd最新国产人妖ts视频 | ccyycom草草影院成人91 | 精品欧美一区二区在线观看 | a毛片全部播放免费视频完整18 | 精品亚洲福利一区二区 | 深夜福利国产 | 老妇综合久久香蕉蜜桃 | 国产成人高清视频在线观看免费97 | 国产成人精品高清不卡在线 | 精品国产91在线网 | 日本一级高清片免费 | 国产精品久久久久久免费播放 | 91精品国产薄丝高跟在线看 | 最近最新中文字幕免费的一页 | 国产不卡视频在线观看 | 国产不卡毛片 | 中国美女隐私无遮挡免费视频 | a一级特黄日本大片 s色 | 草草草在线 | 欧美.亚洲.日本一区二区三区 | 91免费视| 亚洲国产一区在线精选 | 国产成人亚洲综合91精品555 | 久久国产精品国产精品 | 中文字幕免费视频 | 手机看片日韩日韩 | 最新色网址 | 91精品综合久久久久m3u8 | 久草免费在线视频观看 | 纯欧美一级毛片_免费 |