天天看點

Linux OS 學習筆記(1)

1. root

1)由普通使用者進入root

首先,要允許 su 到 root,在目前使用者(系統安裝時建立的使用者及密碼)終端輸入:sudo passwd

[email protected]:~$ sudo passwd    Password: <--- 輸入安裝時那個使用者的密碼 (輸入時螢幕不會顯示密碼)   Enter new UNIX password: <--- 新的Root使用者密碼    Retype new UNIX password: <--- 重複新的Root使用者密碼    passwd:已成功更新密碼   其次,要切換root,使用su指令

2)退出root權限: 終端輸入:exit   終端輸入:su - username

3)關閉root登入

修改如下檔案:

$vim /etc/sudoers/      

賦予某個使用者root權限。如:使用者sysadmin。確定在編輯上述檔案時使用的使用者是系統已有的使用者。找到下面這行:

root ALL=(ALL) ALL      

增加一行:

root ALL=(ALL) ALL
sysadmin ALL=(ALL) ALL      

關閉通過SSH直接通路root,需要再次打開sshd_config,找到下面這行:

#PermitRootLogin yes      

更改為:

PermitRootLogin no      

然後儲存檔案,重新開機sshd守護程序使改動生效:

sudo /etc/init.d/sshd restart      

  2. linux 裡設定環境變量的方法   一般來說,配置交叉編譯工具鍊的時候需要指定編譯工具的路徑,此時就需要設定環境變量。 “/bin”、“/sbin”、“ /usr/bin”、“/usr/sbin”、“/usr/local/bin”等路徑已經在系統環境變量中了,如果可執行檔案在這幾個标準位置,在終端指令行輸入該軟體可執行檔案的檔案名和參數(如果需要參數),回車即可。 

 1)export指令:

#export $NODE_PATH=/opt/node-v7.8.0-linux-x86/lib/node_modules

可用指令export檢視是否設定成功:

...

declare -x PATH="/opt/node-v7.8.0-linux-x86/lib/node_modules"

export的效力僅及于該次登陸操作。

  指令 export $PATH="路徑”(或“PATH=$PATH:路徑”) ($PATH為環境變量名,如DVSDK;調用時用$DVSDK)可以把這個路徑加入環境變量,但是退出這個指令行就失效了。要想永久生效,需要把這行添加到環境變量檔案裡。有兩個檔案可選:“/etc/profile”和使用者主目錄下的“.bash_profile”,“/etc/profile”對系統裡所有使用者都有效,使用者主目錄下的“.bash_profile”隻對這個使用者有效。與DOS/Window不同,UNIX類系統環境變量中路徑名用冒号分隔,不是分号。

2)修改profile檔案:

#vi /etc/profile

在裡面加入:export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

3) 修改.bashrc檔案:

# vi /root/.bashrc

在裡面加入:export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

後兩種方法一般需要重新登出系統才能生效,最後可以通過echo指令測試一下:

# echo $PATH

3. Linux下源碼的安裝 

Linux下源碼的安裝一般由3個步驟組成:配置(configure)、編譯(make)、安裝(make install).

1)configure

Configure 是一個腳本,可通過指令檢視具體資訊:

./configure -help      
--prefix=PREFIX      install architecture-independent files in PREFIX
                [/usr/local]
--exec-prefix=EPREFIX  install architecture-dependent files in EPREFIX
                [same as prefix]      

其他的參數不管,重點關注上述--prefix參數。使用這個參數可将軟體安裝到--prefix參數後指定的路徑中,友善管理和移植.

2)編譯

make      

3)安裝

make install      

以上操作都是在源檔案目錄裡進行.

4. echo指令

看了别人的介紹已經十分詳細,傳送門如下:

1)echo基礎輸出:http://www.zsythink.net/archives/96,http://www.cnblogs.com/ZhangShuo/articles/1829589.html

2)echo輸出帶格式字元:http://www.zsythink.net/archives/111

5. ssh_config和sshd_config配置檔案

   SSH(Secure Shell)是專為遠端登入會話和其他網絡服務提供安全性的協定。現在遠端管理linux系統基本上都要使用到ssh,原因很簡單:telnet、FTP等傳輸方式是‍以明文傳送使用者認證資訊,本質上是不安全的,存在被網絡竊聽的危險。利用SSH協定可以有效防止遠端管理過程中的資訊洩露問題,透過SSH可以對所有傳輸的資料進行加密,也能夠防止DNS欺騙和IP欺騙。ssh_config和sshd_config都是ssh伺服器的配置檔案,前者是針對用戶端的配置檔案,後者則是針對服務端的配置檔案。

1)ssh_config檔案參數

# Site-wide defaults for various options

帶“#”表示該句為注釋不起作,該句不屬于配置檔案原文,意在說明下面選項均為系統初始預設的選項。說明一下,實際配置檔案中也有很多選項前面加有“#”注釋,雖然表示不起作用,其實是說明此為系統預設的初始化設定。 Host *

"Host"隻對比對後面字串的計算機有效,“*”表示所有的計算機。從該項格式前置一些可以看出,這是一個類似于全局的選項,表示下面縮進的選項都适用于該設定,可以指定某計算機替換*号使下面選項隻針對該算機器生效。 ForwardAgent no

"ForwardAgent"設定連接配接是否經過驗證代理(如果存在)轉發給遠端計算機。 ForwardX11 no

"ForwardX11"設定X11連接配接是否被自動重定向到安全的通道和顯示集(DISPLAY set)。 RhostsAuthentication no

"RhostsAuthentication"設定是否使用基于rhosts的安全驗證。 RhostsRSAAuthentication no

"RhostsRSAAuthentication"設定是否使用用RSA算法的基于rhosts的安全驗證。 RSAAuthentication yes

"RSAAuthentication"設定是否使用RSA算法進行安全驗證。 PasswordAuthentication yes

"PasswordAuthentication"設定是否使用密碼驗證。 FallBackToRsh no

"FallBackToRsh"設定如果用ssh連接配接出現錯誤是否自動使用rsh,由于rsh并不安全,是以此選項應當設定為"no"。 UseRsh no

"UseRsh"設定是否在這台計算機上使用"rlogin/rsh",原因同上,設為"no"。 BatchMode no

"BatchMode":批處理模式,一般設為"no";如果設為"yes",互動式輸入密碼的提示将被禁止,這個選項對腳本檔案和批處理任務十分有用。 CheckHostIP yes

"CheckHostIP"設定ssh是否檢視連接配接到伺服器的主機的IP位址以防止DNS欺騙。建議設定為"yes"。 StrictHostKeyChecking no

"StrictHostKeyChecking"如果設為"yes",ssh将不會自動把計算機的密匙加入"$HOME/.ssh/known_hosts"檔案,且一旦計算機的密匙發生了變化,就拒絕連接配接。 IdentityFile ~/.ssh/identity

"IdentityFile"設定讀取使用者的RSA安全驗證辨別。 Port 22

"Port"設定連接配接到遠端主機的端口,ssh預設端口為22。 Cipher blowfish

“Cipher”設定加密用的密鑰,blowfish可以自己随意設定。 EscapeChar ~

“EscapeChar”設定escape字元。

2)sshd_config檔案參數

Port 22

"Port"設定sshd監聽的端口号。 ListenAddress 192.168.1.1

"ListenAddress”設定sshd伺服器綁定的IP位址。 HostKey /etc/ssh/ssh_host_key

"HostKey”設定包含計算機私人密匙的檔案。 ServerKeyBits 1024

"ServerKeyBits”定義伺服器密匙的位數。 LoginGraceTime 600

"LoginGraceTime”設定如果使用者不能成功登入,在切斷連接配接之前伺服器需要等待的時間(以秒為機關)。 KeyRegenerationInterval 3600

"KeyRegenerationInterval”設定在多少秒之後自動重新生成伺服器的密匙(如果使用密匙)。重新生成密匙是為了防止用盜用的密匙解密被截獲的資訊。 PermitRootLogin no

"PermitRootLogin”設定是否允許root通過ssh登入。這個選項從安全角度來講應設成"no"。 IgnoreRhosts yes

"IgnoreRhosts”設定驗證的時候是否使用“rhosts”和“shosts”檔案。 IgnoreUserKnownHosts yes

"IgnoreUserKnownHosts”設定ssh daemon是否在進行RhostsRSAAuthentication安全驗證的時候忽略使用者的"$HOME/.ssh/known_hosts” StrictModes yes

"StrictModes”設定ssh在接收登入請求之前是否檢查使用者家目錄和rhosts檔案的權限和所有權。這通常是必要的,因為新手經常會把自己的目錄和檔案設成任何人都有寫權限。 X11Forwarding no

"X11Forwarding”設定是否允許X11轉發。 PrintMotd yes

"PrintMotd”設定sshd是否在使用者登入的時候顯示“/etc/motd”中的資訊。 SyslogFacility AUTH

"SyslogFacility”設定在記錄來自sshd的消息的時候,是否給出“facility code”。 LogLevel INFO

"LogLevel”設定記錄sshd日志消息的層次。INFO是一個好的選擇。檢視sshd的man幫助頁,已擷取更多的資訊。 RhostsAuthentication no

"RhostsAuthentication”設定隻用rhosts或“/etc/hosts.equiv”進行安全驗證是否已經足夠了。 RhostsRSAAuthentication no

"RhostsRSA”設定是否允許用rhosts或“/etc/hosts.equiv”加上RSA進行安全驗證。 RSAAuthentication yes

"RSAAuthentication”設定是否允許隻有RSA安全驗證。 PasswordAuthentication yes

"PasswordAuthentication”設定是否允許密碼驗證。 PermitEmptyPasswords no

"PermitEmptyPasswords”設定是否允許用密碼為空的帳号登入。 AllowUsers admin

"AllowUsers”的後面可以跟任意的數量的使用者名的比對串,這些字元串用空格隔開。主機名可以是域名或IP位址。

6. /etc/fstab

      當Linux系統下劃分了新的分區後,需要将這些分區設定為開機自動挂載,否則,Linux是無法使用建立的分區的。 /etc/fstab 檔案負責配置Linux開機時自動挂載的分區。

該檔案包含六個域:

# <file system> <mount point> <type> <options> <dump> <pass>

proc                  /proc                  proc defaults 0 0

/dev/hda1         / ext3               errors=remount-ro 0 1

/swapfile           swap                swap defaults 0 0

/dev/hdc           /media              /cdrom0 udf,iso9660 user,noauto 0 0

1)裝置名稱(file system )

這裡用來指定你要挂載的檔案系統的裝置名稱或塊資訊,也可以是遠端的檔案系統。可以是實際分區名,也可以是實際分區的卷标(Lable)。如果磁盤是SATA接口,且有多個磁盤,則每個磁盤被标記為 /dev/hda 、 /dev/hdb、 /dev/hdc 等以此類推;而每個磁盤的分區被标記為 /dev/hda1、 /dev/hda2等。如果磁盤是SCSI類型,則多個磁盤會被分别标記為 /dev/sda、/dev/sdb等等。分區同理。如果使用标簽來表示,則格式如:1  LABLE=/

2)預設挂載點

建立挂載點方法如下:

    # mkdir /mnt/hda1     建立挂載/dev/hda1分區的目錄;

    # chmod 777 /mnt/hda1   打開權限,所有使用者可讀可寫可執行;

執行完了以上兩步就可以在/etc/fstab裡使用這個挂載點了。

3)檔案系統類形。如果想了解你的kernel目前支援哪些檔案系統,可以檢視/proc/filesystems的内容。

Linux file systems: ext2, ext3, jfs, reiserfs, reiser4, xfs, swap.

Windows:

vfat = FAT 32, FAT 16

ntfs= NTFS

Note: For NTFS rw ntfs-3g

CD/DVD/iso: iso9660

Network file systems:

nfs: server:/shared_directory /mnt/nfs nfs <options> 0 0

smb: //win_box/shared_folder /mnt/samba smbfs rw,credentials=/home/user_name/winbox-credentials.txt 0 0

auto: The file system type (ext3, iso9660, etc) it detected automatically. Usually works. Used for removable devices

(CD/DVD, Floppy drives, or USB/Flash drives) as the file system may vary on thesedevices.

4)挂載選項

fstab中的第四清單示裝置或者分區所需要的挂載選項。這一列也是fstab中最複雜最容易出錯的一列,如果你想知道更多的東西,求助于man。

auto 和 noauto:這是控制裝置是否自動挂載的選項。auto是預設選擇的選項,這樣,裝置會在啟動或者你使用mount -a指令時按照fstab的内容自動挂載。如果你不希望這樣,就使用noauto選項,如果這樣的話,你就隻能明确地通過手工來挂載裝置。

user 和 nouser:這是一個非常有用的選項,user選項允許普通使用者也能挂載裝置,而nouser則隻允許root使用者挂載。nouser是預設選項,這也是讓很多 Linux新手頭疼的東西,因為他們發現沒有辦法正常挂載光驅,Windows分區等。如果你作為普通身份使用者遇到類似問題,或者别的其他問題,就請把 user屬性增加到fstab中。

exec 和 noexec: exec允許你執行對應分區中的可執行二進制程式,同理,noexec的作用剛好相反。如果你擁有一個分區,分區上有一些可執行程式,而恰好你又不願意,或者不能在你的系統中執行他們,就可以使用noexec屬性。這種情況多發生于挂載Windows分區時。exec是預設選項,理由很簡單,如果 noexec變成了你/根分區的預設選項的話……

ro: 以隻讀來挂載檔案系統。

rw: 以可讀可寫的屬性來挂載系統。

sync 和 async:對于該檔案系統的輸入輸出應該以什麼方式完成。sync的意思就是同步完成,通俗點講,就是當你拷貝一個東西到裝置或者分區中時,所有的寫入變化将在你輸入cp指令後立即生效,這個東西應該立馬就開始往裝置或者分區裡面拷貝了。而如果是async,也就是輸入輸出異步完成的話,當你拷貝一個東西到裝置或者分區中時,可能在你敲擊cp指令後很久,實際的寫入操作才會執行,換句話說,就是進行了緩沖處理。

有時候這種機制蠻不錯的,因為sync會影響你系統的運作速度,但是這也會帶來一些問題。想一想,當你希望将一個檔案拷貝到u盤上時,你執行了 cp 指令,卻忘記執行umount指令(它會強行将緩沖區内容寫入),那麼你拷貝的檔案實際上并沒有在u盤上面。如果你是使用的mv指令,而你又很快将u盤拔出……恭喜你,檔案會從這個星球上消失的。是以,雖然async是預設屬性,但是對于u盤,移動硬碟這種可移動儲存設備,最好還是讓他們使用sync選項。

defaults: 所有選項全部使用預設配置,包括rw, suid, dev, exec, auto, nouser, 和 async。

一般使用者沒有特殊需求,直接使用defaults就可以了。看完介紹,我們再回過頭去看看前面的示例内容,以光驅為例,主要關注挂載選項這裡,可以看到,光驅和其他分區裝置的不同是ro,因為普通光驅是隻讀的。而exec則讓你可以從光驅上直接執行某些程式。

5)dump:能否被dump備份指令作用:dump是一個用來作為備份的指令。

通常這個參數的值為0或者1。0:代表不要做dump備份;1:代表要每天進行dump的操作;2:代表不定日期的進行dump操作

6)fsck選項,告訴fsck程式以什麼順序檢查檔案系統,為0就表示不檢查,(/)分區永遠都是1,其它的分區隻能從2開始,當數字相同就同時檢查(但不能有兩1),

 注意:當你修改了/etc/fstab後,一定要重新開機系統才會有效。

參考:http://lspgyy.blog.51cto.com/5264172/1297432;http://diamonder.blog.51cto.com/159220/282542;http://www.cnblogs.com/qiyebao/p/4484047.html

轉載于:https://www.cnblogs.com/weipeng-loaded/p/6684413.html

繼續閱讀