1.列出文件清單命令:ls
目前成都創(chuàng)新互聯(lián)已為成百上千家的企業(yè)提供了網站建設、域名、網站空間、網站改版維護、企業(yè)網站設計、康縣網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
ls命令能夠列出當前目錄下的所有內容。ls 命令的執(zhí)行方式為:
# ls [-選項] [文件名或者目錄名]
進入到Linux命令行中后,我們至少要知道當前所處的位置有哪些內容,這些信息就可以使用ls命令來獲得。
在Linux中,ls命令是最常使用的命令之一,因為在命令行下要隨時查看目錄內容。如果不加任何選項的話,ls命令僅列出當前目錄下的文件和目錄名,例如,想要查看/etc目錄下的內容,可以使用下列命令:
# ls /etc
如果想要列出當前目錄下所有文件,則可以使用下列命令:
# ls -a
2、cat命令
功能:在標準輸出上顯示文件。
語法:cat [-vTEuAte] 文件
例子: cat example.txt
cat -A exam2.txt
cat file1 file2 file2
3、more命令
功能:在終端屏幕按屏顯示文本文件。
語法: more [-pcdls] 文件
例子: more example.c
more -dc example.c
more -c -10 example.c
4、less命令
less命令的功能幾乎和more命令一樣,也是用來按頁顯示文件,不同之處在于less命令在顯示文件時允許用戶既
可以向前又可以向后翻閱文件。
5、head命令
功能:顯示指定文件的前若干行。缺省設置為顯示10行
語法:head [-n] 文件
例子: head example.c
head -3 example.c
6、tail命令
功能:顯示指定文件的末尾若干行。缺省設置為顯示10行
語法:tail [+ / - num ] [參數(shù)] 文件
+num 從第num行以后開始顯示。- num 從距文件尾num行處開始顯示。
例子: tail example.c
tail -4 example.c
7、grep、fgrep和egrep命令
功能:
這組命令以指定模式搜索文件,并通知用戶在什么文件中搜索到與指定的模式匹配的字符串,并打印出所有包含該字符串的文本行,在該文本行的最前面是該行所在的文件名。grep命令一次只能搜索一個指定的模式;egrep命令檢索擴展的正則表達式(包括表達式組和可選項);fgrep命令檢索固定字符串,它不識別正則表達式,是快速搜索命令。
語法:
grep [-EFbcihlnvxef] [查找模式] [文件名1,文件名2,……]
egrep [選項] [查找模式] [文件名1,文件名2,……]
fgrep [選項] [查找模式] [文件名1,文件名2,……]
例子: grep "text file" example
grep data *
grep goto *.c
現(xiàn)行的公歷是格利戈里歷法,這個歷法的是1582年教皇格利戈里根據愷撒大帝引進的算法改進的。它采用的是閏年制也就是現(xiàn)行的制度,不過有一個需要注意的地方就是,這個歷法并不是連續(xù)的,中間缺少了11天。1752年9月2日之后的那一天并不是1752年9月3日,而是1752年9月14日。也就是說,從1752年9月3日到1752年9月13日的11天并不存在。抹掉這11天是由英國議會做出的決定。所以要計算某年每個月的天數(shù)的,除了要考慮是否是閏年以外,還要考慮1752年的9月。
-------------------------
公元元年的第一天,也就是公元1年1月1日。具體:公元1年1月1日是星期六。
---------------------
太陽歷又稱為陽歷,是以地球繞太陽公轉的運動周期為基礎而制定的歷法。太陽歷的歷年近似等于回歸年,一年12個月,這個“月”,實際上與朔望月無關。陽歷的月份、日期都與太陽在黃道上的位置較好地符合,根據陽歷的日期,在一年中可以明顯看出四季寒暖變化的情況;但在每個月份中,看不出月亮的朔、望、兩弦。
如今世界通行的公歷就是一種陽歷,平年365天,閏年366天,每四年一閏,每滿百年少閏一次,到第四百年再閏,即每四百年中有97個閏年。公歷的歷年平均長度與回歸年只有26秒之差,要累積3300年才差一日。
現(xiàn)行公歷的產生、變化和發(fā)展
目前通行世界的公歷,是我們大家最熟悉的一種陽歷。這部歷法浸透了人類幾千年間所創(chuàng)造的文明,是古羅馬人向埃及人學得,并隨著羅馬帝國的擴張和基督教的興起而傳播于世界各地。
公歷最早的源頭,可以追溯到古埃及的太陽歷。尼羅河是埃及的命根子,正是由于計算尼羅河泛濫周期的需要,產生了古埃及的天文學和太陽歷。七千年前,他們觀察到,天狼星第一次和太陽同時升起的那一天之后,再過五、六十天,尼羅河就開始泛濫,于是他們就以這一天作為一年的開始,推算起來,這一天是7月19日。 最初一年定為360天,后來改為365天。這就是世界上第一個太陽歷。后來他們又根據尼羅河泛濫和農業(yè)生產的情況,把一年分為三季,叫做洪水季、冬季和夏季。每季4個月,每月30天,每月里10天一大周,五天一小周。全年12個月,另加5天在年尾,為年終祭祀日。
這種以365天為一年的歷年,是由于觀測天狼星定出來的,叫天狼星年。 它和回歸年相差約0.25天,因而在日歷上每年的開始時間越來越早,經過1461個歷年,各個日期再次與原來的季節(jié)吻合,以后又逐漸脫離。看起來,天狼星年好象在回歸年周期左右徘徊,因而又叫它為徘徊年、游移年,1461年的循環(huán)周期被稱為天狼周期。
后來,埃及人通過天文觀測,發(fā)現(xiàn)年的真正周期是365.25日,但僧侶們?yōu)榱耸拱<暗墓?jié)日能與祭神會同時舉行,以維護宗教的“神圣”地位,寧愿保持游移年。后來出土了一塊石碑,上面有用埃及文和希臘文所寫的碑文,記載了歐吉德皇帝在公元前238年發(fā)布的一道命令: 每經過四年,在第四年的年末五天祭祀日之后、下一年元旦之前,再加一天,并在這天舉行歐吉德皇帝的節(jié)日慶祝會,以便讓大家記住。歐吉德皇帝校正了以前歷法的缺陷,這增加一天的年叫定年,其它年叫不定年。
古羅馬人使用的歷法經歷了從太陰歷到陰陽歷、陽歷的發(fā)展過程。羅馬古時是意大利的一個小村,羅馬人先是統(tǒng)一了意大利,而后又成為地跨歐、亞、非三洲的大帝國。最早,古羅馬歷全年10個月,有的歷月30天,有的歷月29天(這十分類似太陰歷),還有70幾天是年末休息日。羅馬城第一個國王羅慕洛時期,各月有了名稱,還排了次序。全年10個月,有的月30天,有的月31天,共304天,另外60幾天是年末休息日。以羅馬城建立的那一年,即公元前753年作為元年,這就是羅馬紀元。某些歐洲歷史學家直到17世紀末還使用這個紀年來記載歷史事件。
第二個國王努馬,參照希臘歷法進行了改革,增加了第十一月和第十二月,同時調整各月的天數(shù),改為1、3、5、8四個月每月31天,2、4、6、7、9、10、11七個月每月29天, 12月最短,只有28天。根據那時羅馬的習慣,雙數(shù)不吉祥,于是就在這個月里處決一年中所有的死刑犯。這樣,歷年為355天,比回歸年少10多天。 為了糾正日期與季節(jié)逐年脫離的偏差,就在每四年中增加兩個補充月,第一個補充月22天,加在第二年里,另一個23天加在第四年里,所增加的天數(shù)放在第十二月的24日與25日之間。這實際上就是陰陽歷了,歷年平均長度為366.25天,同時用增加或減少補充月的辦法來補救歷法與天時不和的缺點。但這樣卻更增加了混亂:月份隨意流轉。比如,掌管歷法的大祭司長在自己的朋友執(zhí)政的年份,就硬插進一個月,而當是仇人執(zhí)政,就減少補充月,來縮短其任期。民間契約的執(zhí)行也受到影響,祭祀節(jié)與齋戒日都在逐漸移動,本該夏天的收獲節(jié)竟跑到了冬天舉行。
當儒略·凱撒第三次任執(zhí)政官時,指定以埃及天文學家索西琴尼為首的一批天文學家制定新歷,這就是儒略歷。
儒略歷的主要內容是:每隔三年設一閏年,平年365天,閏年366天,歷年平均長度為365.25日。以原先的第十一月1日為一年的開始,這樣,羅馬執(zhí)政官上任時就恰值元旦。 儒略歷每年分12個月,第1、3、5、7、9、11月是大月,大月每月31天。第4、6、8、10、12月為小月,小月每月30天。第二月(即原先的第十二月)在平年是29天,閏年30天,雖然月序不同于改歷前,可是仍然保留著原來的特點,是一年中最短的月份。
儒略歷從羅馬紀元709年,即公元前45年1月1日開始實行。 這一年,為了彌補羅馬歷與太陽年的年差,除了355天的歷年和一個23天的附加月外, 又插進兩個月,其中一個月為33天,另一個月為34天。這樣,這一年就有355+23+33+34=445天。這就是歷史上所稱的“亂年”。
西方歷法從儒略歷實施開始,終于走上正軌。滑稽的是,那些頒發(fā)歷書的祭司們,有本事從烏鴉的爭斗預卜吉兇,卻把改歷命令中的“每隔三年設一閏年”誤解為“每三年設一閏年”。這個錯誤直到公元前9年才由奧古斯都下令改正過來。
“奧古斯都”是神圣、莊嚴、崇高的意思。在古羅馬,這個尊號過去只是在舉行宗教儀式上才授予的。在公元前27年,元老院把它授給了屋大維。他是儒略·凱撒姐姐的兒子,是凱撒遺囑的第一繼承人。
想當年,偉大的凱撒大帝南征北戰(zhàn),東討西伐,雄才大略,不可一世,后來更成為事實上的獨裁者。樹大招風,遭到許多人嫉妒。公元前44年,當凱撒意圖公開稱帝時,卻在元老院的議事廳遭到刺殺。此時屋大維還不滿20歲,但他卻頗具智力和手腕,逐漸積蓄力量,到公元前30年,擊敗所有對手,成了羅馬“第一公民”。屋大維實際上就是唯一具有無限權力的統(tǒng)治者,他結束了羅馬共和時期。因此,歷史上把從公元前27年開始的羅馬,稱為羅馬帝國。
當奧古斯都準備改正閏年錯誤時,已經多閏了三次,于是他下令從公元前8年到公元4年停止閏年,即公元前5年、公元前1年和公元4年仍是平年,以后又恢復為每四年一閏了。 為了紀念他的這一功績,羅馬元老院通過決議,把儒略歷的第八月改稱為“Augustus”,即奧古斯都月,因為他在這個月里曾取得過巨大的軍事勝利。但這個月是小月,未免有點遜色,何況羅馬人以單數(shù)為吉,而30天卻是個雙數(shù),于是就從2月份拿出一天,加到奧古斯都月里,8月就31天了,可憐的2月在平年只有28天,碰上四年一次的閏年也不過29天。7、8、9月連續(xù)三個月都是大月,看起來很不順眼,使用也不方便, 就把9月改為30天,10月為31天,11月為30天,12月為31天。這樣,大小月相間的規(guī)律破壞了,一直到兩千年后的今天還受到影響。
奧古斯都修改過的歷法格式與現(xiàn)行公歷一模一樣了,但它的紀元,即計算年代的起算點還不是公元元年,它的閏年方法與現(xiàn)行公歷還不完全一致。這兩點差別與基督教的起源和發(fā)展有密切的關系。
基督教產生于公元一世紀的巴勒斯坦,“基督”一詞是古希臘語的譯音,意為“救世主”。傳說基督教的創(chuàng)始人是耶穌,他作為救世主,許諾窮人死后升入天堂,而富人要進入天堂比駱駝穿過針眼還難。由于撥動了社會下層人民的心弦,基督教逐漸傳播開來,引起羅馬統(tǒng)治者不安,在提庇留皇帝時代,羅馬派駐猶太的總督,將耶穌釘死在十字架上。但是第三天,耶穌從墳墓中復活過來,并升了天,他將來還要對所有的死人、活人施行末日審判。后來,基督教徒把這些傳說和耶穌言行記錄下來,編寫了《新約圣經》。
早期的基督教,因為打破了羅馬帝國的神權統(tǒng)治,而多次遭到鎮(zhèn)壓。后來,羅馬帝國日漸衰落,奴隸制日趨瓦解,原來的社會上層分子在彷徨中紛紛加入基督教,并逐步控制了它,努力尋求統(tǒng)治者對教會的支持。統(tǒng)治者對教會轉而采取懷柔政策,到四世紀末,羅馬帝國終于宣布基督教為其國教。
公歷的紀元,就是從“耶穌降生”的那年算起的。這與基督教的興盛密切相關。
此后,儒略歷被認為是準確無誤的歷法, 于是人們把3月21日固定為春分日,卻帶來了未曾料想到的麻煩。隨著時間的推移,人們發(fā)覺,真正的春分不再與當時的日歷一致,這個晝夜相等的日期越來越早,到16世紀末已提前到3月11日了。 春分逐漸提前,是由于儒略歷并非最精確的歷法,它的歷年平均長度等于365.25日,還是比回歸年長了11分14秒,這個差數(shù)雖然不大,但累積下去,128年就差一天,400年就差三天多。
為了不違背宗教會議的規(guī)定,滿足教會對歷法的要求,羅馬教皇格里高利十三世設立了改革歷法的專門委員會,比較了各種方案后, 決定采用意大利醫(yī)生利里奧的方案,在400年中去掉儒略歷多出的三個閏年。
1582年3月1日,格里高利頒發(fā)了改歷命令,內容是:
一、1582年10月4日后的一天是10月15日,而不是10月5日,但星期序號仍然連續(xù)計算,10月4日是星期四,第二天10月15日是星期五。這樣,就把從公元325年以來積累的老賬一筆勾銷了。
二、為避免以后再發(fā)生春分飄離的現(xiàn)象,改閏年方法為: 凡公元年數(shù)能被4整除的是閏年,但當公元年數(shù)后邊是帶兩個“0”的“世紀年”時,必須能被400整除的年才是閏年。
格里高利歷的歷年平均長度為365日5時49分12秒,比回歸年長26秒。雖然照此計算,過3000年左右仍存在1天的誤差,但這樣的精確度已經相當了不起了。
由于格里高利歷的內容比較簡潔,便于記憶,而且精度較高,與天時符合較好,因此它逐步為各國政府所采用。我國是在辛亥革命后根據臨時政府通電,從1912年1月1日正式使用格里高利歷的。
西方歷法的第一次改革是羅馬朱利烏斯·凱撒大帝引進的。他采用的四年一閏的閏年方式。由于一個太陽年不剛好是365.25天,而是 365.242199…天。到16世紀,每年11分14秒的誤差已經累積成10天,也就是歷法上多了10天。于是教皇格利戈里八世進行了一次校正。他在1582年2月24日以教皇訓令頒布,將1582年10月5日至14日抹掉,并且對原來的閏年方法進行了校正。經過校正的歷法叫格利戈里歷法,也就是我們現(xiàn)在用的公歷。1752年,英國人決定采用格利戈里歷法,不過從1582年到那時,歷法又多出了1天,所以英國議會在1752年作出決定,抹掉11天——1752年9月3日至13日。”
----------------
如何求某一天是星期幾?
請注意這樣一個事實,即從公元元年一月一日開始到現(xiàn)在,每一天都是連續(xù)的,而每個星期有7天,也是連續(xù)的,也就是說日期和星期是一對一的,沒有斷檔現(xiàn)象。我的基本思想是計算出當前天是從公元元年一月一日開始的第幾天,再利用星期的周期性來計算公元任何一天是星期幾。
假設當前年份為y,并忽略閏年,則從公元元年一月一日到y(tǒng)-1年共有365*(y-1)天,加上閏年多出來的天數(shù),即加上1*((y-1)/4-(y-1)/100+(y-1)/400),"/"為整除,得:365*(y-1)+((y-1)/4-(y-1)/100+(y-1)/400)。我們再補上從當前1月1日開始到當前天的天數(shù)e,即為所求。即:365*(y-1)+((y-1)/4-(y-1)/100+(y-1)/400)+e。它的值即為當前天是從公元元年一月一日開始算起的第幾天。補上一個x(x是與公元元年一月一日是星期幾有關的一個0~6的整數(shù)),并將這個表達式賦給變量t,即:t=x+365*(y-1)+((y-1)/4-(y-1)/100+(y-1)/400)+e再用t除以7,余幾即為星期幾(余0為星期日)。
下面討論x的求法,如果知道公元元年一月一日是星期幾,就可以直接得到x的值,但現(xiàn)在公式還沒有求出來,不知道公元元年一月一日是星期幾。不過沒關系,畢竟知道最近的日期是星期幾。不妨看一下2001年1月1日是星期幾,結果是星期一,代入公式得t=x+730516,用730516除以7,得104355,余數(shù)是1,則為了保證2001年1月1日是星期一,取x 為0,所以公元元年一月一日也是星期一。至此,得到了完整的公式:
t=365*(y-1)+((y-1)/4-(y-1)/100+(y-1)/400)+e
再將它做一下改進,我們將公式變形為:
t=(52*7+1)*(y-1)+((y-1)/4-(y-1)/100+(y-1)/400)+e
利用星期的周期性,將52*7+1從公式中刪除,得:
t=(y-1)+((y-1)/4-(y-1)/100+(y-1)/400)+e
以下是這種算法的C語言程序:
#includestdio.h
char *name[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
void main(void)
{
int d,m,y,e,t,f;
printf("請輸入日:");
fflush(stdout);
scanf("%d",d);
printf("請輸入月:");
fflush(stdout);
scanf("%d",m);
printf("請輸入年:");
fflush(stdout);
scanf("%d",y);
switch(m)
{
case 1:e=d;break;
case 2:e=31+d;break;
case 3:e=59+d;break;
case 4:e=90+d;break;
case 5:e=120+d;break;
case 6:e=151+d;break;
case 7:e=181+d;break;
case 8:e=212+d;break;
case 9:e=243+d;break;
case 10:e=273+d;break;
case 11:e=304+d;break;
case 12:e=334+d;break;
default:return;
}
if(y%4==0y%100!=0||y%400==0)
if(m2)
++e;
--y;
t=y+y/4-y/100+y/400+e;
f=t%7;
printf("這一天是 %s\n",name[f]);
}
再談星期的計算
“讓我們看看1752年9月14號這個星期四吧,我們的公式最遠只能推算到這里了。”
——Kim S. Larsen
“從公元元年1月1日開始到現(xiàn)在,每一天都是連續(xù)的。”
——于鵬
“西方歷法的第一次改革是羅馬朱利烏斯·凱撒大帝引進的。他采用的四年一閏的閏年方式。由于一個太陽年不剛好是365.25天,而是 365.242199…天。到16世紀,每年11分14秒的誤差已經累積成10天,也就是歷法上多了10天。于是教皇格利戈里八世進行了一次校正。他在1582年2月24日以教皇訓令頒布,將1582年10月5日至14日抹掉,并且對原來的閏年方法進行了校正。經過校正的歷法叫格利戈里歷法,也就是我們現(xiàn)在用的公歷。1752年,英國人決定采用格利戈里歷法,不過從1582年到那時,歷法又多出了1天,所以英國議會在1752年作出決定,抹掉11天——1752年9月3日至13日。”
日期的限制是Kim S. Larsen算法的問題嗎?不。
公元元年1月一日開始到現(xiàn)在,每一天都是連續(xù)的嗎?不。
一個簡單的方法就可以證明上述事實——用Linux的cal命令。啟動你的Linux在#提示符下輸入
cal 9 1752
你會看到:
September 1752
Su Mo Tu We Th Fr Sa
1 2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
有趣吧一個只有19天的九月。
讓我們來看看這兩個算法,Kim S. Larsen博士的算法和于鵬同學的算法在本質上其實是相同的。只不過在實現(xiàn)的細節(jié)上略有不同。如果讓兩個算法去計算同一天(無論在1752年9月14日之前還是之后)是星期幾,二者的答案肯定是相同的。讓我們來分析一下吧。
首先,他們把日期對星期的決定作用都分為年、月、日三個決定因素。對于年的因素,從兩者的計算公式 就能看出是相同的;對于日的因素,兩者都是直接計入,故也是相同的;而對于月的因素,Kim S. Larsen博士構造了一個公式,(一個非常巧妙的公式,)通過以月份為自變量算出的函數(shù)值作為對星期的影響量。而于鵬同學采用了查表的方法,即先構造好一個以月份為索引的表對于相應的月份,通過查表得出其對星期的影響量。(以switch語句實現(xiàn))不妨作如下演算:(為了一致起見,采用一、二月作為上年的十三、十四月。這是一個非常聰明的方法。)用于鵬同學的方法建表,并對7取模(表一)。再建立Kim S. Larsen函數(shù) 的函數(shù)值表(表二)。很顯然二者是相同的。
三月 0 0 三月 0
四月 31 3 四月 3
五月 61 5 五月 5
六月 92 1 六月 1
七月 122 3 七月 3
八月 153 6 八月 6
九月 184 2 九月 2
十月 214 4 十月 4
十一月 245 0 十一月 0
十二月 275 2 十二月 2
十三月 306 5 十三月 5
十四月 337 1 十四月 1
表一 表二
其次,在處理閏年2月29日的問題上,兩者的做法略有不同,但效果還是相同的。Kim S. Larsen博士采用的方法相當高明,他把二月排在一年的最后,管他閏不閏,反正是最后一天。而于鵬同學加了一個if分支,直觀有效。
大師不愧為大師,設計的算法簡潔、優(yōu)美;而于鵬同學的算法,簡單易懂,并且效率并不差。
好了,該解決這個“歷史遺留問題”了。其實,并沒有什么數(shù)學公式能算出指定日期是星期幾,我們可以試著拼湊一個,不過何必呢?加個if分枝不就解決問題了嗎?(Kim S. Larsen算法+于鵬思想)對Kim S. Larsen 博士的程序作一些必要的添加,可得到突破1752年9月14日日期限制的C語言程序。
/*C++Builder5下編譯通過*/
/*假設輸入的是正確的日期*/
#include stdio.h
char *name[] = { "Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"
};
void main(){
int D,M,Y,A;
printf("Day: "); fflush(stdout);
scanf("%d",D);
printf("Month: "); fflush(stdout);
scanf("%d",M);
printf("Year: "); fflush(stdout);
scanf("%d",Y);
if ((M == 1) || (M == 2)){/*一月、二月當作前一年的十三、十四月*/
M += 12;
Y--;
}
if ((Y 1752)||((Y == 1752)(M 9))
||((Y == 1752)(M == 9)(D 3)))/*判斷是否在1752年9月3日前*/
A = (D + 2*M + 3*(M+1)/5 + Y + Y/4 +5) % 7;/*1752年9月3日前的公式*/
else A = (D + 2*M + 3*(M+1)/5 + Y + Y/4 - Y/100 + Y/400) % 7;/*1752年9月3日后的公式*/
printf("It's a %s.\n",name[A]);
}
另外:
1.公元1年1月1日是星期六。
2.如果有朋友對這個問題感興趣,或是有什么好的算法,歡迎和我聯(lián)系。我的聯(lián)系方法是:andrew80@163.net。
3.據說現(xiàn)行公歷2800年左右還會有一天的誤差,那時程序又要修正了。:)
高斯--澤勒公式:
A=(y+[y/4]-[y/100]+[y/400]+x ) mod 7
星期幾:A
(A=0 為星期 天!)
公元年: y
天數(shù) :x ( 由當年月份和日期定,即距離當年初的天數(shù)。例:2001/3/1 x=31+28+1 )
Linux常用的命令可以分為以下幾類:安裝和登錄命令、文件處理命令、系統(tǒng)管理相關命令、網絡操作命令、系統(tǒng)安全相關命令、其它命令。
安裝和登錄命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last。
文件處理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln。
系統(tǒng)管理相關命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab。
網絡操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup。
系統(tǒng)安全相關命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who。
其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
Linux簡介
Linux,全稱GNU/Linux,是一套免費使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統(tǒng)。伴隨著互聯(lián)網的發(fā)展,Linux得到了來自全世界軟件愛好者、組織、公司的支持。
它除了在服務器方面保持著強勁的發(fā)展勢頭以外,在個人電腦、嵌入式系統(tǒng)上都有著長足的進步。使用者不僅可以直觀地獲取該操作系統(tǒng)的實現(xiàn)機制,而且可以根據自身的需要來修改完善Linux,使其最大化地適應用戶的需要。
Linux不僅系統(tǒng)性能穩(wěn)定,而且是開源軟件。其核心防火墻組件性能高效、配置簡單,保證了系統(tǒng)的安全。在很多企業(yè)網絡中,為了追求速度和安全,Linux不僅僅是被網絡運維人員當作服務器使用,甚至當作網絡防火墻,這是Linux的一大亮點。
Linux運維人員必會的120個命令
來自《跟老男孩學Linux運維:核心系統(tǒng)命令實戰(zhàn)》一書
前言
第1章 Linux命令行簡介 / 1
1.1Linux命令行概述 / 1
1.2在Linux命令行下查看命令幫助 / 4
1.3Linux shutdown reboot halt / 9
關機:
shutdown -h now
halt
init 0
第2章 文件和目錄操作命令 / 13
2.1pwd:顯示當前所在的位置 / 13
2.2cd:切換目錄 / 16
2.3tree:以樹形結構顯示目錄下的內容 / 18
2.4mkdir:創(chuàng)建目錄 / 22
2.5touch:創(chuàng)建空文件或改變文件的時間戳屬性 / 27
2.6ls:顯示目錄下的內容及相關屬性信息 / 30
2.7cp:復制文件或目錄 / 39
2.8mv:移動或重命名文件 / 42
2.9rm:刪除文件或目錄 / 45
2.10rmdir:刪除空目錄 / 48
2.11ln:硬鏈接與軟鏈接 / 49
2.12readlink:查看符號鏈接文件的內容 / 54
2.13find:查找目錄下的文件 / 55
2.14xargs:將標準輸入轉換成命令行參數(shù) / 68
2.15rename:重命名文件 / 71
2.16basename:顯示文件名或目錄名 / 72
2.17dirname:顯示文件或目錄路徑 / 72
2.18chattr:改變文件的擴展屬性 / 73
2.19lsattr:查看文件擴展屬性 / 75
2.20file:顯示文件的類型 / 76
2.21md5sum:計算和校驗文件的MD5值 / 77
2.22chown:改變文件或目錄的用戶和用戶組 / 80
2.23chmod:改變文件或目錄權限 / 81
2.24chgrp:更改文件用戶組 / 85
2.25umask:顯示或設置權限掩碼 / 86
2.26老男孩從新手成為技術大牛的心法 / 90
第3章 文件過濾及內容編輯處理命令 / 91
3.1cat:合并文件或查看文件內容 / 91
3.2tac:反向顯示文件內容 / 103
3.3more:分頁顯示文件內容 / 104
3.4less:分頁顯示文件內容 / 107
3.5head:顯示文件內容頭部 / 109
3.6tail:顯示文件內容尾部 / 111
3.7tailf:跟蹤日志文件 / 114
3.8cut:從文本中提取一段文字并輸出 / 115
3.9split:分割文件 / 117
3.10paste:合并文件 / 118
3.11sort:文本排序 / 123
3.12join:按兩個文件的相同字段合并 / 127
3.13uniq:去除重復行 / 129
3.14wc:統(tǒng)計文件的行數(shù)、單詞數(shù)或字節(jié)數(shù) / 131
3.15iconv:轉換文件的編碼格式 / 133
3.16dos2unix:將DOS格式文件轉換成UNIX格式 / 134
3.17diff:比較兩個文件的不同 / 135
3.18vimdiff:可視化比較工具 / 138
3.19rev:反向輸出文件內容 / 139
3.20tr:替換或刪除字符 / 140
3.21od:按不同進制顯示文件 / 143
3.22tee:多重定向 / 145
3.23vi/vim:純文本編輯器 / 147
3.24老男孩逆襲思想:做Linux運維的多個好處 / 152
第4章 文本處理三劍客 / 153
4.1grep:文本過濾工具 / 153
4.2sed:字符流編輯器 / 159
4.3awk基礎入門 / 165
第5章 Linux信息顯示與搜索文件命令 / 176
5.1uname:顯示系統(tǒng)信息 / 176
5.2hostname:顯示或設置系統(tǒng)的主機名 / 178
5.3dmesg:系統(tǒng)啟動異常診斷 / 179
5.4stat:顯示文件或文件系統(tǒng)狀態(tài) / 181
5.5du:統(tǒng)計磁盤空間使用情況 / 183
5.6date:顯示與設置系統(tǒng)時間 / 186
5.7echo:顯示一行文本 / 190
5.8watch:監(jiān)視命令執(zhí)行情況 / 193
5.9which:顯示命令的全路徑 / 195
5.10whereis:顯示命令及其相關文件全路徑 / 196
5.11locate:快速定位文件路徑 / 197
5.12updatedb:更新mlocate數(shù)據庫 / 199
5.13老男孩逆襲思想:新手在工作中如何問問題不會被鄙視 / 200
第6章 文件備份與壓縮命令 / 201
6.1tar:打包備份 / 201
6.2gzip:壓縮或解壓文件 / 208
6.3zip:打包和壓縮文件 / 211
6.4unzip:解壓zip文件 / 212
6.5scp:遠程文件復制 / 214
6.6rsync:文件同步工具 / 216
6.7老男孩逆襲思想:新手如何高效地提問 / 220
第7章 Linux用戶管理及用戶信息查詢命令 / 222
7.1 useradd:創(chuàng)建用戶 / 222
7.2usermod:修改用戶信息 / 227
7.3userdel:刪除用戶 / 229
7.4groupadd:創(chuàng)建新的用戶組 / 230
7.5groupdel:刪除用戶組 / 231
7.6passwd:修改用戶密碼 / 232
7.7chage:修改用戶密碼有效期 / 237
7.8chpasswd:批量更新用戶密碼 / 238
7.9su:切換用戶 / 240
7.10visudo:編輯sudoers文件 / 242
7.11sudo:以另一個用戶身份執(zhí)行命令 / 244
7.12id:顯示用戶與用戶組的信息 / 248
7.13w:顯示已登錄用戶信息 / 249
7.14who:顯示已登錄用戶信息 / 250
7.15users:顯示已登錄用戶 / 252
7.16whoami:顯示當前登錄的用戶名 / 253
7.17last:顯示用戶登錄列表 / 253
7.18lastb:顯示用戶登錄失敗的記錄 / 254
7.19lastlog:顯示所有用戶的最近登錄記錄 / 255
第8章 Linux磁盤與文件系統(tǒng)管理命令 / 257
8.1fdisk:磁盤分區(qū)工具 / 257
8.2partprobe:更新內核的硬盤分區(qū)表信息 / 265
8.3tune2fs:調整ext2/ext3/ext4文件系統(tǒng)參數(shù) / 266
8.4parted:磁盤分區(qū)工具 / 268
8.5mkfs:創(chuàng)建Linux文件系統(tǒng) / 272
8.6dumpe2fs:導出ext2/ext3/ext4文件系統(tǒng)信息 / 274
8.7resize2fs:調整ext2/ext3/ext4文件系統(tǒng)大小 / 275
8.8fsck:檢查并修復Linux文件系統(tǒng) / 278
8.9dd:轉換或復制文件 / 281
8.10mount:掛載文件系統(tǒng) / 284
8.11umount:卸載文件系統(tǒng) / 288
8.12df:報告文件系統(tǒng)磁盤空間的使用情況 / 289
8.13mkswap:創(chuàng)建交換分區(qū) / 293
8.14swapon:激活交換分區(qū) / 294
8.15swapoff:關閉交換分區(qū) / 295
8.16sync:刷新文件系統(tǒng)緩沖區(qū) / 296
第9章 Linux進程管理命令 / 298
9.1ps:查看進程 / 298
9.2pstree:顯示進程狀態(tài)樹 / 305
9.3pgrep:查找匹配條件的進程 / 306
9.4kill:終止進程 / 307
9.5killall:通過進程名終止進程 / 310
9.6pkill:通過進程名終止進程 / 311
9.7top:實時顯示系統(tǒng)中各個進程的資源占用狀況 / 313
9.8nice:調整程序運行時的優(yōu)先級 / 320
9.9renice:調整運行中的進程的優(yōu)先級 / 323
9.10nohup:用戶退出系統(tǒng)進程繼續(xù)工作 / 324
9.11strace:跟蹤進程的系統(tǒng)調用 / 325
9.12ltrace:跟蹤進程調用庫函數(shù) / 332
9.13runlevel:輸出當前運行級別 / 334
9.14init:初始化Linux進程 / 335
9.15service:管理系統(tǒng)服務 / 335
第10章 Linux網絡管理命令 / 338
10.1ifconfig:配置或顯示網絡接口信息 / 338
10.2ifup:激活網絡接口 / 343
ifup eth0
10.3ifdown:禁用網絡接口 / 343
ifdown eth0
service network restart(/etc/init.d/network restart) 激活整個網絡,所有網卡。
10.4route:顯示或管理路由表 / 344
10.5arp:管理系統(tǒng)的arp緩存 / 350
10.6ip:網絡配置工具 / 351
10.7netstat:查看網絡狀態(tài) / 358
10.8ss:查看網絡狀態(tài) / 362
10.9ping:測試主機之間網絡的連通性 / 363
10.10traceroute:追蹤數(shù)據傳輸路由狀況 / 366
10.11arping:發(fā)送arp請求 / 367
10.12telnet:遠程登錄主機 / 369
10.13nc:多功能網絡工具 / 370
10.14ssh:安全地遠程登錄主機 / 373
10.15wget:命令行下載工具 / 376
10.16mailq:顯示郵件傳輸隊列 / 379
10.17mail:發(fā)送和接收郵件 / 381
10.18nslookup:域名查詢工具 / 386
10.19dig:域名查詢工具 / 389
10.20host:域名查詢工具 / 393
10.21nmap:網絡探測工具和安全/端口掃描器 / 394
10.22tcpdump:監(jiān)聽網絡流量 / 398
第11章 Linux系統(tǒng)管理命令 / 407
11.1lsof:查看進程打開的文件 / 407
11.2uptime:顯示系統(tǒng)的運行時間及負載 / 411
11.3free:查看系統(tǒng)內存信息 / 411
11.4iftop:動態(tài)顯示網絡接口流量信息 / 413
11.5vmstat:虛擬內存統(tǒng)計 / 415
11.6mpstat:CPU信息統(tǒng)計 / 419
11.7iostat:I/O信息統(tǒng)計 / 420
11.8iotop:動態(tài)顯示磁盤I/O統(tǒng)計信息 / 423
11.9sar:收集系統(tǒng)信息 / 425
11.10chkconfig:管理開機服務 / 430
11.11ntsysv:管理開機服務 / 433
11.12 setup:系統(tǒng)管理工具 / 434
11.13ethtool:查詢網卡參數(shù) / 436
11.14mii-tool:管理網絡接口的狀態(tài) / 437
11.19rpm:RPM包管理器 / 443
11.20yum:自動化RPM包管理工具 / 446
top命令
第12章 Linux系統(tǒng)常用內置命令 / 450
12.1Linux內置命令概述 / 450
12.2Linux內置命令簡介 / 450
12.3Linux常用內置命令實例 / 452
什么是NetworkManager?
NetworkManager由幾個部分組成:一個管理系統(tǒng)網絡連接、并且將其狀態(tài)通過D-BUS進行報告的后臺服務,以及一個允許用戶管理網絡連接的客戶端程序。開發(fā)NetworkManager的初衷是簡化網絡連接的工作,讓桌面本身和其他應用程序能感知網絡。
絕大部分用戶不必關心NetworkManager的后臺服務,他們只通過GUI的applets來管理網絡連接。對于GNOME和Xfce那就是 nm-applet工具,而對于KDE用戶來說就是KNetworkManager了。
許多Linux用戶不記得,甚至根本不曾認識到在早期Linux里面管理網絡連接時的那種折騰與痛苦。尤其是對于筆記本用戶這種需要連接到兩個甚至更多網 絡的情況。雖然早期版本的NetworkManager用起來也是一種痛苦(那個時候曾經有個外號叫NetworkMangler,即網絡磨肉機),不過現(xiàn)在它已經成為了一個強大的工具,讓管理網絡不再痛苦。
比如說吧,我記得兩年前我把我的Verizon無線EV-DO卡裝入openSUSE 11.0的時候,NetworkManager根本不需要任何設置。它識別了這張卡,并且出現(xiàn)在GNOME工具欄的下拉菜單里面,唯一須要進行的操作就是 點擊“連接”。這是這些年來我碰到的最簡單的配置無線網卡的方式。
不過總是有需要改進的地方,因此NetworkManager也在繼續(xù)發(fā)展。即將到來的0.8.1版本已經可以在Fedora 13中找到,帶來了許許多多的改進和新功能。
0.8.1的新功能
最新版本的NetworkManager包括了許多新的特征,其中絕大部分都跟支持更多的的網絡設備有關。移動用戶將會很喜歡這個版本,因為 0.8.1增加了用于GSM、UMTS和CDMA卡等移動寬帶設備ModemManager的支持。使用ModemManager也有新的功能,比如信號強度顯示和選擇2G/3G模式的功能。最后(當然并不止這些),你還可以關掉漫游功能以避免產生額外的連接費用。
0.8.1還支持使用藍牙,不僅支持個人區(qū)域網絡(PAN)上網,也支持老的藍牙撥號網絡(DUN)協(xié)議。所有(或者說最多)支持的設備可以在 wiki上找到。
如果你是為數(shù)不多的使用IPv6聯(lián)網的用戶之一(事實上他們發(fā)誓以后每個人都會用上),你會很高興地發(fā)現(xiàn)現(xiàn)在NetworkManager支持 IPv6的自動配置和靜態(tài)IP了。0.8.1版本還會帶來IPv6的DHCP支持。
盡管大多數(shù)最近的改變都是增強設備或者協(xié)議的支持,可0.8.1也同樣給我們代來了一個新的漂亮的客戶端界面。
命令行接口
在我看來,0.8.1中最有趣的特征是nmcli,一個NetworkManager的命令行接口。雖然NetworkManager在管理網絡連接方面有著巨大的飛躍,但是有一點倒退到老風格的管理方式的是忽略了命令行接口。只用GUI配置網絡有錯嗎?
有幾個問題。一部分用戶可能沒有使用能夠方便地支持NetworkManager的applet的桌面環(huán)境或者窗口管理器。有些人或者根本就沒有使用GUI環(huán)境。用戶也有可能想通過編寫腳本的方式來管理網絡接口,如果唯一可用的控制器是GUI的話這會變得非常困難。
終于,NetworkManager有了自己 的CLI工具,nmcli。使用nmcli用戶可以查詢網絡連接的狀態(tài),也可以用來管理。這個工具依然有點原始,不過其語法相對簡單,并且對于那些真正需 要在CLI中使用NetworkManager的人來說并不太難掌握。比如,列舉系統(tǒng)中的網絡接口只需要運行:
nmcli dev list就會顯示一些類似于下面的輸出:
- Device: eth0 -----------------------------------------------------------------
Type 802-3-ethernet
Driver pcnet32
State connected
Default no
HW Address 00:0C:29:C3:87:30
Capabilities:
Carrier Detect yes
Wired Properties
Carrier on
IPv4 Settings:
Address 172.16.146.140
Prefix 24 (255.255.255.0)
Gateway 172.16.146.2
DNS 172.16.146.2
如果你想要關閉一個連接,你可以使用諸如nmcli con down id id的東西, 這里id是某個連接的ID。nmcli現(xiàn)在還不像ifconfig那樣靈活和功能完善,不過這僅僅是一個開始。
展望未來
毫無疑問,NetworkManager尚未完成,或許永遠也不可能完成。總有新的設備需要支持,新的功能需要增加。另外,NetworkManager在讓許多用戶在使用主流、標準的網絡配置時變得簡便,但未必適應那些不常見的配置。
比如,很有可能在0.8.2或者以后版本中出現(xiàn)的功能有 網絡接口bonding 和為一個以太網接口 同時分配一個PPPoE地址和本地地址。
不管怎么說,NetworkManager已經成為Linux桌面的一項殺手級功能。如果你不曾想過管理家里,辦公室和旅途中的各種網絡連接是多么的復雜,那么你可以感謝NetworkManager,是它讓你的生活變得更加輕松。
網站名稱:Linux有趣的人命令,好玩的Linux命令
本文來源:http://chinadenli.net/article26/hescjg.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站策劃、用戶體驗、商城網站、品牌網站制作、App開發(fā)、移動網站建設
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)