【Linux】Linux命令學習(筆記二)

來源:互聯網
上載者:User

 

suaLinux賬戶管理】

1, 怎樣登入Linux主機?當你輸入帳號密碼系統怎麼判斷呢?

1)先尋找 /etc/passwd 檔案裡有木有這個帳號

沒有:跳出

有:將跟該帳號對應的UID 與 GID 讀出來,還有 shell設定與家目錄(home)

2)再尋找 /etc/shadow 檔案裡對應的 GID跟UID 密碼是不是符合

符合:登入系統

不符合:跳出

root的 UID 跟 GID均為 0

2, passwd 的構造

第一欄:帳號名稱

第二欄:密碼(由於將密碼搬到etc/shadow 中就用 x代替)

第三欄:UID

第四欄:GID 跟/etc/group 檔案有關

第五欄:說明

第六欄:家目錄

第七欄:shell 溝通人類下達命令與硬體之間真正動作的介面!

3, shadow 的構造

第一欄:使用者名稱

第二欄:密碼(密碼欄第一個字元為 * 表示使用者不用來登陸)就是說管理員只要在“不聽話”的帳號密碼前加一個 * 他就登陸不上了!

【root密碼忘記了怎麼辦?】

Single 模式登陸進入 /etc/shadow 檔案編輯將密碼清空:登陸後用 passwd再設定密碼就可以了。

第四欄:上次更改密碼的日期。15274為累計天數

第五欄:密碼需要變更的天數

第六欄:以後的都不重要了…………囧囧囧

4, /etc/group 與 /etc/gshadow簡介

群組名稱密碼群組ID 支援的帳號名稱

瞭解下就行了

5, 增加使用者的一般步驟

Groupadd –g 600 test //-g 是自行設定GID大小

Groupdel test

Useradd -u 666 -g 600 -d /home2 -s bash tian

// UID 666 屬於GID為600的群組 -d 說明家目錄 -s 說明 shell

//此外使用useradd 時候系統會自動的將 /etc/skel 複製為家目錄要想增加家目錄下面的東西只需要在使用 useradd 之前更改 /etc/skel

6, 關於帳號變更時間、密碼長度、密碼最小值、UID_MIN、GID_MAX的設定在/etc/login.defs

關於useradd 命令的情況及其設定在檔案 /etc/default/useradd

7, passwd 命令的使用

查看其存放位置:which passwd ls –l `which passwd`存放在/usr/bin/passwd

Passwd root 根據提示更改密碼

8, sudo 執行root使用者才能執行的命令

sudo vi /etc/shadow但是需要輸入使用者的密碼而不是 root密碼

9,查詢賬戶的 UID GID (除了在 /etc/passwd /etc/group中直接查看)

Id root

Finger root //查詢相關資訊

Groups //直接輸入就可以看到目前使用者所屬的群組

【一, 例行性命令】定時做的任務

1, 關於使用圖形化設定介面命令的解答

ntsysv //開啟介面

如果 RedHat 提示找不到命令的話,應該是變數設定的問題!

解決方案如下:

1) 先在命令列中輸入
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin:
斷行符號
這樣你可以臨時恢複環境變數設定,
然後就可以用了。想一直有用的話
#或者$ cd ~
vi .bashrc或者vi .bash_profile
然後把上邊那句寫進去,好象要加點什麼吧。
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin$PATH
下次使用bash的時候就生效了。

2) 長久設定(沒有解決)

2, at 用法(一次性執行的命令)

【】/etc/crontabcron服務會每分鐘讀一次這個檔案跟下面的檔案

【】當你下達命令時候,命令會寫在:/var/spool/cron目錄中自動建立一個以使用者名稱命名的文檔記下命令

【】執行的記錄放在:/var/log/cron

1)at –m time (例如:at -m 10pm 在晚上10點執行****任務執行時螢幕輸出結果)

-m //表示螢幕輸出執行結果

time格式:04:20 2011-11-03; 4pm+3 days;三天后的下午4點執行

1am May 30 //5月30 淩晨1點執行

寫上時間後會出現這個符號>寫上要執行的命令 Ctl+D 結束命令

2)atq //查看當前任務

3)atrm number //刪除任務這裡的number 為任務號 atq可以查看

3,crontab用法(可以迴圈執行的命令)

參數解析:-l //列出crontab的內容

-e // 編輯crontab

-r //刪除crontab的內容(全部刪除)

例題:Crontab -e //進入vi編輯介面

59 23 1 5 * mail tianshuai </home/test/lover.txt

解析:分鐘/小時/日/月/年(*代表什麼都適合)

意義:想要在每年的 5月1號 23:59 發一份信給tianshuai

// */5 每隔5分鐘執行一次

收到的mail 會存放在 /var/spool/mail/tianshui 檔案內

【二, 程式與資源管理】

1,X-Window只是Linux下的一套軟體,不能算作業系統

2,man 命令(系統執行man命令的時候會到 /etc/man.conf中尋找 MANPATH而MANPATH存放在 /usr/share/man /usr/local/man中)

, 3,背景工作管理

1) &讓命令在背景執行。如:Find / -name test &

2) Ctrl + Z 背景執行不被 Ctrl +C中斷(比如:vi 編輯時可以先暫停)

3) Jobs 查詢

4) fg number //將暫停任務拿到前台來執行

5) bg number //將背景中任務由暫停à運行

6) kill number // -9 強制中斷進程

7) ps –aux //查看正在執行的系統進程。

重要的一列:STAT:該程式的狀態,( R )為可執行檔,( S )為該程式正在睡眠中,就是沒有執行了,( T )正在偵測或者是停止了,( Z )殭屍程式,就是 zombie 死掉的程式啦!需要以 kill 除去囉!

Ps -l //也可以顯示

8) Top 查看進程 //動態查看,每隔5秒重新整理

9) Free 查看記憶體使用量情況

10) Uname -a //所有系統資訊 -p //CPU資訊 -n //列出host name -r//kenel 版本資訊

ps –aux | grep crondd

【三, 開機流程與Loader】沒仔細看

【四, 原始碼與Tarball】

1),File aa.txt //查看檔案的類型及相關資訊

2),利用Patch 更新原始碼

1,原始代碼,想更新expatch.old

expatch.old

echo tianshuai

expatch.new

echo tianshuai

echo is a student

2,輸入命令查看兩個文檔不同

diff -c expatch.old expatch.new

輸出:

*** expatch.old 2011-11-04 19:42:09.000000000 +0800 //這是等待更新的

--- expatch.new 2011-11-04 20:03:24.000000000 +0800

***************

*** 1 ****

--- 1,2 ----

echo tianshuai

+ echo is a good student //先添加代碼

3,vi patch.path

將上述代碼拷貝進去

執行命令:patch –p0 < expatch.patch

3),靜態連結庫 lib***.a

編譯行為:整個靜態連結庫都整合到執行檔案

獨立執行狀態:編譯成功後可以獨立執行,不必要求讀取函數庫

升級難度:需要從新編譯

動態連結程式庫 lib***.so

編譯行為:編譯後只指向動態函數庫位置,沒有整合到執行檔中

獨立執行狀態:不可以獨立執行,必要求讀取函數庫存在且目錄不變

升級難度:不需要重新編譯

4),驗證軟體的正確性

MD5sum -bct filename

-b //binary 的讀文檔方式

-c //檢驗MD5sun的檔案指紋

-t //文字形態讀取 MD5sum 的檔案指紋

【六,RPM與SRPM套件管理員】

1),RPM (RedHat Package Manager) *******.rpm

安裝套件時不需要將套件源碼編譯,但是一定要跟當初安裝的主機的環境一致才可以安裝。必須滿足套件的相依性屬性需求。安裝的時候會將套件的資訊寫入RPM資料庫,以便未來的查詢、驗證、與反安裝。

缺點:反安裝時,不要把系統底層套件移除,否則會出現問題。

2),SRPM(Source RedHat Package Manager) ********.src.rpm

帶源碼的套件。就是要想安裝需要,編譯一下。

好處是,自己可以修改源碼後再編譯。

3),詳解RPM

rpm -i ****.rpm //安裝時

-I //安裝的意思

-v //顯示細節

-h //已安裝資訊列顯示安裝進度

rpm -e **** //卸載

提示:can't create transaction lock on /var/lib/rpm/__db.000

原因:沒有以root身份登入安裝

解決方案:su root 然後安裝就可以了

4),linuxqq-v1.0.2-beta1.i386.rpm

套件名版本釋放次數適合的硬體平台附檔案名稱

********************製作成功RPM********************************

5)1,下載zxvf rp-pppoe-3.10.tar.gzhttp://www.roaringpenguin.com/pppoe/

2,最好轉到root身份下執行 su root

3, cp /home/rp-pppoe-3.10/rp-pppoe.spec /usr/src/redhat/SOURCES/

cp /home/rp-pppoe-3.10.tar.gz /usr/src/redhat/SOURCES/

//需要將設定檔跟壓縮包同時拷貝到製作RPM 所需路徑下

4, cd /usr/src/redhat/SOURCES/

5,rpmbuild -bb rp-pppoe.spec <==僅編譯成 RPM 檔案

rpmbuild -ba rp-pppoe.spec <==編譯並同時產生RPM 與 SRPM 檔案

出現錯誤:  RPM build errors:

  Installed (but unpackaged) file(s) found:

  解決辦法:

  將/usr/lib/rpm/macros 中

  %__check_files /usr/lib/rpm/check-files %{buildroot} 注釋掉

步驟:cd /usr/lib/rpm/然後:chmod a+w macros

6,rpm –ivh ******.rpm //安裝自己製作的rpm包吧

【七,Tarball跟rpm區別】

Tarball 是原始碼,打包成 .tar.gz 解壓後含:

1. 原始碼2,偵測程式檔案(configure/config)3,套件的安裝說明(INSTALL或READEME)

2. 但是反安裝很麻煩,就是卸載起來不好辦。

RPM 是安裝包 rpm –ivh ******.rpm 安裝即可。可能依賴性比較高!!

【八,核心編譯與模組管理】

概念:將核心的原始碼編譯成binary的可執行檔,成為系統可以認識的執行檔案。

下載命令:wget http://aerosol.ev.ncku.edu.tw/~vbird/download/linux-2.4.18.tar.gz

查看核心版本:uname -r

1),核心的編譯:要將核心放在這個檔案夾下/usr/src/linux

2),如果沒有linux 檔案夾。直接將解壓的kernel 檔案夾放到/usr/src目錄下。然後cd usr/src/linux***

3),make mrproper //去除已經編譯過的檔案

4),特別注意:如果你編譯兩次以上,會有上次編譯的模組放到 /lib/modules中

Cd /lib/modules

Mv file file.old

5),make menuconfig //設定 kernel 的選項(這裡一定要參照說明,有很多服務還有硬體支援一定要選中)

6),開始編譯: make dep //建立相依的屬性關聯性

Make clean //將舊資料去除

Make bzImage //開始編譯核心

Make modules //開始編譯模組

Make modules_install //將資料安裝在 /lib/modules/***中

Make install //將建立的核心安裝上

7)安裝核心:核心編譯完成放在/usr/src/linux/arch/i386/boot/bzImage中了

需要將核心放在/boot目錄下

cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.4.18

【九,系統設定常用指令】

1),setup //一個圖形化設定介面

2),立即啟動服務:啟動apache

/etc/rc.d/init.d/httpd start

【十,認識系統服務】

1),vi /etc/services //視窗與服務的對應關係

第一欄:Daemon name

第二欄:daemon 使用的port以及網路資料包傳送時的類型

第三欄:服務的說明

Service **** start //啟動服務

3),系統開啟的服務

netstat -r //顯示當前的路由表

netstat -a //顯示目前所有網路的聯機狀態

netstat -t/-u //顯示Tcp Udp 封包的狀態

netstat -l //僅顯示LISTEN的內容

netstat -tlp //得到目前在 LISTEN 的 port 的服務名稱

LISTEN:亦即監聽狀態中的 port

ESTABLISHED:已經建立聯機的聯機狀況

TIME_WAIT:該聯機已經是等待的狀態

【十一,認識登入檔】

Chattr +a filename //檔案將不能進行操作

Chattr -a filename //檔案恢複操作

Last // 調出登陸日誌

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.