Linux初學筆記(markdown格式)

Linux基礎命令筆記

# Linux

## 命令格式與目錄處理命令ls

### 命令格式

“`properties
命令格式:命令 [-選項][參數]
例:ls -la /etc
說明:1) 個別命令使用不遵循此格式
2) 當有多個選項時,可以寫在一起
3) 簡化選項與完整選項
-a 等于 –all
“`

### 目錄處理命令ls

“`properties
命令名稱:ls
命令英文原意:list
命令所在路徑:/bin/ls
執行權限:所有用戶
功能描述:顯示目錄文件
語法:ls 選項[-ald][文件或目錄]
-a 顯示所有文件,包括隱藏文件
-l 詳細信息顯示
-d 查看目錄屬性

文件權限標志
-rw-r–r–
–> 文件類型(-文件 d目錄 l軟鏈接文件)
–> rw– r– r–
u????g???o
u所有者 g所屬組 o其他人
r讀??w寫??x執行
“`

## 關機重啟命令

### shutdown命令(推薦)

“`properties
[root@localhost ~]#shutdown [選項] 時間
選項:
-c: 取消前一個關機命令
-h: 關機
-r: 取消前一個關機命令
“`

### 其他關機命令

“`properties
[root@localhost ~]#halt
[root@localhost ~]#poweroff
[root@localhost ~]#init 0
“`

### 其他重啟命令

“`properties
[root@localhost ~]#reboot
[root@localhost ~]#init 6
“`

### 系統運行級別

“`properties
0????????關機
1????????單用戶
2????????不完全多用戶,不含NFS服務
3????????完全多用戶
4????????未分配
5????????圖形界面
6????????重啟

[root@localhost ~]#cat /etc/inittab
#修改系統默認運行級別
id:3:initdefault:

#查詢系統運行級別
[root@localhost ~]#runlevel
“`

### 退出登錄命令

“`properties
#注銷用戶
[root@localhost ~]#logout

#退出控制臺
[root@localhost ~]#exit

#logout和exit的區別
logout 注銷用戶
exit 退出控制臺,對于多層shell,用于逐層退出,到最頂層shell,作用就和logout相同。
如果沒有切換過用戶的話,這兩個命令都是退出控制臺了。
如果切換過用戶的話,這兩個命令都是注銷當前用戶,返回上一個用戶
“`

## 鏈接命令

### ln鏈接命令

“`properties
命令名稱:ln
命令英文原意:link
命令所在路徑:/bin/ln
執行權限:所有用戶
語法:
ln -s [原文件] [目標文件]
-s 創建軟鏈接
ln????創建硬鏈接
功能描述:生成鏈接文件

示例
#創建文件/etc/issue的軟鏈接/tmp/issue.soft
[root@localhost ~]#ln -s /etc/issue /tmp/issue.soft

#創建文件/etc/issue的硬鏈接/tmp/issue.hard
[root@localhost ~]#ln /etc/issue /tmp/issue.hard
“`

### 軟鏈接和硬鏈接的區別

“`properties
#軟鏈接特征:類似Windows快捷方式
1、lrwxrwxrwx l 軟鏈接
軟鏈接文件權限都為rwxrwxrwx
2、文件大小-只是符號鏈接
3、/tmp/issue.soft -> /etc/issue
箭頭指向原文件

#硬鏈接特征:
1、拷貝cp -p + 同步更新
echo “this is a test” >> /etc/motd
2、可通過i節點識別
3、不能跨分區
4、不能針對目錄使用
“`

## 文件處理命令

### touch創建文件命令

“`properties
命令名稱:touch
命令所在路徑:/bin/touch
執行權限:所有用戶

語法:
touch [文件名]

功能描述:創建空文件
#示例:
[root@localhost ~]#touch demo.txt
“`

### cat查看文件內容命令

“`properties
命令名稱:cat
命令所在路徑:/bin/cat
執行權限:所有用戶

語法:
cat [文件名]

功能描述:顯示文件內容
-n??顯示行號

#示例:
[root@localhost ~]#cat demo.txt
hello!
linux

[root@localhost ~]#cat -n demo.txt
1 hello!
2 linux
“`

### more查看長文件內容命令

“`properties
命令名稱:more
命令所在路徑:/bin/more
執行權限:所有用戶

語法:
more [文件名]
(空格)或f 翻頁
(Enter)??換行
q或Q????退出
功能描述:分頁顯示文件內容

示例:
[root@localhost ~]#more /etc/services

“`

### less查看長文件內容命令

“`properties
命令名稱:less
命令所在路徑:/usr/bin/less
執行權限:所有用戶

語法:
less [文件名]

功能描述:分頁顯示文件內容(可向上下翻頁↑↓)

示例:
[root@localhost ~]#less /etc/services
“`

### head查看文件前幾行命令

“`properties
命令名稱:head
命令所在路徑:/usr/bin/head
執行權限:所有用戶

語法:
head [文件名]

功能描述:顯示文件前面幾行
-n???指定行數

示例:
[root@localhost ~]#head -n 20 /etc/services
“`

### tail查看文件后面幾行命令(動態日志查看)

“`properties
命令名稱:tail
命令所在路徑:/usr/bin/tail
執行權限:所有用戶

語法:
tail [文件名]

功能描述:顯示文件后面幾行
-n???指定行數
-f????動態顯示文件末尾內容

示例:
[root@localhost ~]#tail -n 20 /etc/services
[root@localhost ~]#tail -f /tomcat/logs/catalina.out

“`

## vim編輯器

### vim常用操作

#### vim簡介

vim是一個功能強大的全屏幕文本編輯器,是Linux/UNIX上最常用的文本編輯器,它的作用是建立、編輯、顯示文本文件。

**vim沒有菜單,只有命令**

#### vim工作模式

![vim工作模式](D:\Linux\vim工作模式.png)

#### 插入命令

命令????????????作用

a????????????????在光標所在字符后插入

A????????????????在光標所在行尾插入

i????????????????在光標所在字符前插入

I????????????????在光標所在行行首插入

o????????????????在光標下插入新的一行

O????????????????在光標上插入新的一行

#### 定位命令

命令????????????作用

:set nu????????????設置行號

:set nonu????????取消行號

gg????????????????到第一行

G????????????????到最后一行

nG????????????????到第n行

:n????????????????到第n行

$????????????????移至行尾

0????????????????移至行首

#### 刪除命令

命令????????????作用

x????????????????刪除光標所在處的字符

nx????????????????刪除光標所在處后n個字符

dd????????????????刪除光標所在行,ndd刪除n行

dG????????????????刪除光標所在行到文件末尾內容

D????????????????刪除光標所在處到行尾內容

n1,n2d????????????刪除指定范圍的行

#### 復制和剪切命令

命令????????????作用

yy????????????????復制當前行

nyy????????????????復制當前行以下n行

dd????????????????剪切當前行

ndd????????????????剪切當前行以下n行

p????????????????粘貼在當前光標所在行下

P????????????????粘貼在當前光標所在行上

#### 替換和取消命令

命令????????????作用

r????????????????取代光標所在處字符

R????????????????從光標所在處開始替換字符,按Esc結束

u????????????????取消上一步操作

#### 搜索和搜索替換命令

命令????????????作用

/string????????????搜索指定字符串

?????????????????搜索時忽略大小寫:set ic

n????????????????搜索指定字符串的下一個出現位置

:%s/old/new/g????全文替換指定字符串

:n1,n2s/old/new/g 在指定范圍內替換指定字符串

#### 保存和退出命令

命令????????????作用

:w????????????????保存修改

:w new_filename 另存為指定文件

:wq????????????????保存修改并退出

ZZ????????????????快捷鍵,保存修改并退出

:q!????????????????不保存修改退出

:wq!????????????????強制保存修改并退出(文件所有者及root可使用)

### vim使用技巧

1.?導入文檔中的內容 r 文件名

示例:r demo.txt

2.?導入命令執行結果:r !命令

示例:r !date

?????2017年 07月 17日 星期一 10:14:36 CST

3.?自定義快捷鍵:map 快捷鍵 觸發命令 (命令可以任意組合)

示例:map ^P I#<ESC>???注釋

?????:map ^B 0x?????????????取消注釋

4.?連續行注釋:n1,n2s/^/#/g

????????????:n1,n2s/^#//g

????????????:n1,n2s/^/\/\/g????//(java中的單行注釋)

5.?替換:ab syso System.out.println(“”);??(eclipse中快捷鍵syso)

6.?自定義快捷鍵,電腦重啟之后,設置的快捷鍵需要重新設置,如果需要自定義的編輯模式永久生效,需要在用戶根目錄(root用戶[/root] 普通用戶[/home/fei])配置.vimrc文件

示例:cd ~ 打開根目錄

?????touch .vimrc 創建配置文件

?????vim .vimrc?????編輯配置文件

?????????set nu??顯示行號

?????????map ^P I#<ESC>???注釋

?????:wq????????????退出并保存

## 軟件包管理簡介

### 1、軟件包分類

–?源碼包

?????腳本安裝包

–?二進制包

?????RPM包

?????系統默認包

### 2、源碼包

源碼包的優點:

1.?開源,如果有足夠的能力,可以修改源碼
2.?可以自由選擇所需的功能
3.?軟件是編譯安裝,所以更加適合自己的系統,更加穩定也效率更高
4.?卸載方便

源碼包的缺點:

1.?安裝過程步驟較多,尤其安裝較大的軟件集合時(如LAMP環境搭建),容易出現拼寫錯誤
2.?編譯過程時間較長,安裝比二進制安裝時間長
3.?因為是編譯安裝,安裝過程中一旦報錯新手很難解決

### 3、RPM包

二進制包的優點:

1.?包管理系統簡單,只通過幾個命令就可以實現包的安裝、升級、查詢和卸載
2.?安裝速度比源碼包安裝快的多

二進制包的缺點

1.?經過編譯,不再可以看到源代碼
2.?功能選擇不如源碼包靈活
3.?依賴性

## RPM包管理-rpm命令管理

### 1、RPM包命名規則

“`properties
舉例:httpd-2.2.15-15.el6.centos.1.i686.rpm

httpd????????????????????軟件包名

2.2.15????????????????????軟件版本

15????????????????????????軟件發布的次數

el6.centos????????????????適合的Linux平臺

i686????????????????????適合的硬件平臺

rpm????????????????????????rpm包擴展名
“`

### 2、RPM包依賴性

–?樹形依賴:a→b→ c
–?環形依賴:a→b→c→a
–?模塊依賴:模塊依賴查詢網站

?????www.rpmfind.net

### 3、包全名與包名

“`properties
#包全名:操作的包是沒有安裝的軟件包時,使用包全名。而且要注意路徑
#包名:操作已經安裝的軟件包時,使用包名。是搜索/var/lib/rpm/中的數據庫
“`

### 4、RPM安裝

“`properties
rpm -ivh 包全名
選項:
-i(install)????????安裝
-v(verbose)????????顯示詳細信息
-h(hash)????????顯示進度
–nodeps????????不檢測依賴性
“`

### 5、RPM包升級

“`properties
rpm -Uvh 包全名
選項:
-U(upgrade)????????升級
“`

### 6、卸載

“`properties
rpm -e 包名
選項:
-e(erase)????????卸載
–nodeps????????不檢查依賴性
“`

### 7、查詢是否安裝

“`properties
[root@localhost ~]# rpm????-q????包名
#查詢包是否安裝
選項:
-q????查詢(query)
[root@localhost ~]# rpm –qa
#查詢所有已經安裝的RPM包
選項:
-a????所有(all)

“`

### 8、查詢軟件包詳細信息

“`properties
[root@localhost ~]#????rpm –qi 包名
選項:
-i????查詢軟件信息(information)
-p????查詢未安裝包信息(package)

“`

### 9、查詢包中文件安裝位置

“`properties
[root@localhost ~]#????rpm –ql 包名 選項:
-l????列表(list)
-p????查詢未安裝包信息(package)

“`

### 10、查詢系統文件屬于哪個RPM包

“`properties
[root@localhost ~]#????rpm –qf 系統文件名 選項:
-f????查詢系統文件屬于哪個軟件包(file)
“`

### 11、RPM包校驗

“`properties
[root@localhost ~]# rpm –V 已安裝的包名 選項:
-V????校驗指定RPM包中的文件(verify)
#驗證內容中的8個信息的具體內容如下:
? S????文件大小是否改變
? M????文件的類型或文件的權限(rwx)是否被改變
? 5????文件MD5校驗和是否改變(可以看成文件內容是否 改變)
? D????設備的中,從代碼是否改變
? L????文件路徑是否改變
? U????文件的屬主(所有者)是否改變
? G????文件的屬組是否改變
? T????文件的修改時間是否改變
“`

“`properties
#文件類型
1????c????配置文件(config file)
2????d????普通文檔(documentation)
3????g????“鬼”文件(ghost file),很少見,就是該文件不 應該被這個RPM包包含
4????l????授權文件(license file)
5????r????描述文件(read me)

“`

### 12、RPM包中文件提取

“`properties
[root@localhost ~]# rpm2cpio 包全名 |????\ cpio -idv .文件絕對路徑

#將rpm包轉換為cpio格式的命令
rpm2cpio

#是一個標準工具,它用于創建軟件檔案文件和從檔案文件中提取文件
cpio

[root@localhost ~]# cpio 選項 < [文件|設備]
#選項:
-i:copy-in模式,還原
-d:還原時自動新建目錄
-v:顯示還原過程

#示例
#查詢ls命令屬于哪個軟件包
[root@localhost ~]# rpm -qf /bin/ls

#將ls命令移動到/tmp文件夾,造成ls命令誤刪除假象
[root@localhost ~]# mv /bin/ls /tmp/

#提取RPM包中ls命令到當前目錄的/bin/ls下
[root@localhost ~]# rpm2cpio /mnt/cdrom/Packages/coreutils- 8.4-19.el6.i686.rpm | cpio -idv????./bin/ls

#把ls命令復制會/bin/目錄,修復文件丟失
[root@localhost ~]# cp /root/bin/ls????/bin/
“`

## RPM包管理-yum在線管理

### 1、IP地址配置和網絡yum源

#### 1.1 IP地址配置

“`properties
[root@localhost ~]# setup
#使用setup工具

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
把ONBOOT=“no” 改為
ONBOOT=“yes“
#啟動網卡

[root@localhost ~]# service network restart
#重啟網絡服務
“`

#### 1.2 網絡yum源

“`properties
[root@localhost yum.repos.d]# vi /etc/yum.repos.d/CentOS-Base.repo
? [base]????容器名稱,一定要放在[]中
? name????容器說明,可以自己隨便寫
? mirrorlist????鏡像站點,這個可以注釋掉
? baseurl????我們的yum源服務器的地址。默認是CentOS官方的yum源服務 器,是可以使用的,如果你覺得慢可以改成你喜歡的yum源地 址
? enabled????此容器是否生效,如果不寫或寫成enable=1都是生效,寫成
enable=0就是不生效
? gpgcheck????如果是1是指RPM的數字證書生效,如果是0則不生效
? gpgkey????數字證書的公鑰文件保存位置。不用修改
“`

### 2、yum命令

#### 2.1 查詢

“`properties
1)查詢
[root@localhost yum.repos.d]# yum list
#查詢所有可用軟件包列表

[root@localhost yum.repos.d]# yum search 關鍵字
#搜索服務器上所有和關鍵字相關的包
“`

#### 2.2 安裝

“`properties
2)安裝
[root@localhost yum.repos.d]# yum –y install 包名 選項:
install????安裝
-y????自動回答yes
“`

#### 2.3 升級

“`properties
[root@localhost yum.repos.d]# yum -y update 包名 選項:
update????升級
-y????自動回答yes
注意:升級一定要加包名,否則linuk系統全盤升級,一般很牛逼的人都不會輕易去嘗試。
“`

#### 2.4 卸載

“`properties
[root@localhost yum.repos.d]#????yum????-y????remove????包名 選項:
remove????卸載
-y????自動回答yes
注意:盡量不要使用yum卸載,因為它會自動把依賴包也卸載掉,但是有些依賴包不僅僅是一個軟件在使用,其他軟件也在使用這個依賴包。
“`

#### 2.5 yum軟件組管理命令

“`properties
[root@localhost ~]#????yum????grouplist
#列出所有可用的軟件組列表

[root@localhost ~]#????yum????groupinstall????軟件組名
#安裝指定軟件組,組名可以由grouplist查詢出來

[root@localhost ~]#????yum????groupremove????軟件組名
#卸載指定軟件組
“`

### 3、光盤yum源搭建

#### 3.1 光盤yum源搭建步驟

“`properties
1)掛載光盤
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
2)讓網絡yum源文件失效
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@localhost yum.repos.d]# mv CentOS-Debuginfo.repo Centos-Debuginfo.repo.bak
[root@localhost yum.repos.d]# mv CentOS-Vault.repo CentOS-Vault.repo.bak
3)修改光盤yum源文件
[root@localhost yum.repos.d]# vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever-Media
baseurl=file///mnt/cdrom
#地址為你自己的光盤掛載地址
# file:///media/cdrom/
# file:///media/cdrecorder/
#注釋這兩個不存在的地址
gpgcheck=1
enabled=1
#把enabled=0改為enabled=1,讓這個yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RRM-GPG-KEY-CentOS-6

注意:一般配置文件有嚴格的格式限制,不能多加空格或者注釋。
“`
## 源碼包管理

### 1、源碼包與RPM包的區別

“`properties
1、區別
? 安裝之前的區別:概念上的區別
? 安裝之后的區別:安裝位置不同

#RPM包安裝位置
是安裝在默認位置中
#RPM包默認安裝路徑
/etc/????????????????配置文件安裝目錄
/usr/bin/????????????可執行的命令安裝目錄
/usr/lib/????????????程序所使用的函數庫保存位置
/usr/share/doc/????????基本的軟件使用手冊保存位置
/usr/share/man/????????幫助文件保存位置

#源碼包安裝位置
安裝在指定位置當中,一般是
/usr/local/軟件名/

#安裝位置不同帶來的影響
RPM包安裝的服務可以使用系統服務管 理命令(service)來管理,例如RPM包安 裝的apache的啟動方法是:
/etc/rc.d/init.d/httpd start
service httpd start

#而源碼包安裝的服務則不能被服務管理命 令管理,因為沒有安裝到默認路徑中。所 以只能用絕對路徑進行服務的管理,如:
/usr/local/apache2/bin/apachectl start

“`

### 2、源碼包的安裝過程

#### 2.1 安裝準備

“`properties
#安裝C語言編譯器
[root@localhost ~]# yum –y install gcc
#下載源碼包
[root@localhost ~]# wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.34.tar.gz
“`

#### 2.2 安裝注意事項

“`properties
#源代碼保存位置:/usr/local/src/
#軟件安裝位置:/usr/local/
#如何確定安裝過程報錯:
a.安裝過程停止
b.并出現error、warning或no的提示
“`

#### 2.3 源碼包安裝過程

“`properties
#下載源碼包
[root@localhost ~]# wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.34.tar.gz
#解壓縮下載的源碼包
[root@localhost ~]# tar -xvf httpd-2.2.34.tar.gz /usr/local/apache2
#進入解壓縮目錄
[root@localhost ~]# cd /usr/local/apache2/httpd-2.2.34
#定義安裝位置
[root@localhost httpd-2.2.34]# ./configure??–prefix=/usr/local/apache2
“`

#### 2.4 ./configure 軟件配置與檢查

“`properties
???定義需要的功能選項。

???檢測系統環境是否符合安裝要求。

???把定義好的功能選項和檢測系統環境的信息 都寫入Makefile文件,用于后續的編輯。
“`

#### 2.5 源碼包的編譯與安裝

“`properties
#編譯解壓后的源碼包
[root@localhost httpd-2.2.34]# make

#清除上次的make命令所產生的object文件(后綴為“.o”的文件)及可執行文件
[root@localhost httpd-2.2.34]# make clean

#將編譯成功的可執行文件安裝到系統目錄中,一般為/usr/local/bin目錄。
[root@localhost httpd-2.2.34]# make install
“`

#### 2.6 測試是否安裝成功

“`properties
#啟動apache服務
[root@localhost httpd-2.2.34]# /usr/local/apache2/bin/apachectl start
#在瀏覽器輸入
localhost:80
#瀏覽器顯示內容
It works!
“`

#### 2.7 源碼包的卸載

“`properties
#不需要卸載命令,直接刪除安裝目錄即可。不會遺留任何垃圾文件
“`

## 腳本安裝包

### 1、 腳本安裝包簡介

“`properties
# 腳本安裝包并不是獨立的軟件包類型,常見 安裝的是源碼包。
# 是人為把安裝過程寫成了自動安裝的腳本, 只要執行腳本,定義簡單的參數,就可以完 成安裝。
# 非常類似于Windows下軟件的安裝方式
“`

### 2、 Webmin的作用

“`properties
#Webmin 是一個基于 Web 的 Linux 系統管 理界面。您就可以通過圖形化的方式設置 用戶帳號、Apache、DNS、文件共享等服 務。
“`

### 3、Webmin安裝過程

“`properties
#創建文件夾webmin
[root@localhost ~]# mkdir /usr/local/webmin
#進入/usr/local/webmin
[root@localhost ~]# cd /usr/local/webmin

#下載軟件
[root@localhost webmin]# wget https://sourceforge.net/projects/webadmin/files/webmin/1.850/webmin-1.850.tar.gz/download

# 解壓縮,并進入解壓縮目錄
[root@localhost webmin-1.850]# tar -xvf webmin-1.850.tar.gz
# 執行安裝腳本
[root@localhost webmin-1.850]# ./setup.sh

注意:安裝過程中,鍵盤enter鍵,就表示執行下一步;
:安裝過程中,需要設置登錄名和密碼
小技巧:Ctrl+Backspace(退格鍵)?????刪除
# 安裝完之后,測試是否安裝成功
# 開啟防火墻10000端口
[root@localhost webmin-1.850]# /sbin/iptables -I INPUT -p tcp –dport 10000 -j ACCEPT
[root@localhost webmin-1.850]# /etc/rc.d/init.d/iptables save

# 瀏覽器測試,輸入linux Ip+端口號(10000)
成功的話,會進入一個登陸界面
“`
## 用戶和用戶組管理

### 1、用戶管理簡介

“`properties
# 越是對服務器安全性要求高的服務器,越需要建立合理的用戶權限等級制度和 服務器操作規范。
# 在Linux中主要是通過用戶配置文件來查 看和修改用戶信息
“`

### 2、用戶配置文件

#### 2.1????用戶信息文件/etc/passwd

“`properties
#查看用戶信息配置文件信息
[root@localhost ~]# vim /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
demo:x:500:500::/home/demo:/bin/bash
liqi:x:501:501::/home/liqi:/bin/bash
mysql:x:498:498:MySQL server:/var/lib/mysql:/bin/bash
ucenter:x:502:502::/ucenter:/bin/bash

#可以利用man 命令 (man 5 配置文件名) 查看幫助
[root@localhost ~]# man 5 passwd
#看主要內容 The field descriptions are:
accout
password
UID

#第1字段:用戶名稱
#第2字段:密碼標志
#第3字段:UID(用戶ID)
?????0:????????????超級用戶
?????1-499:????????系統用戶(偽用戶)
例如:mysql:x:498:498:MySQL server:/var/lib/mysql:/bin/bash
?????500-65535:????普通用戶
例如:demo:x:500:500::/home/demo:/bin/bash

#第4字段:GID(用戶初始組ID)
#第5字段:用戶說明
#第6字段:家目錄
?????普通用戶:/home/用戶名/
?????超級用戶:/root/
#第7字段:登錄之后的Shell
//shell是用戶和計算機交流的中介,“登錄shell”保證用戶和計算機交流(一般Linux默認的用戶shell都是bash ,也就是說你可以登錄進去敲命令。),“非登陸shell(/bin/nologin 就是一個非登陸shell)”無法讓用戶與計算機交流。
“`

#### 2.2 初始組和附加組

“`properties
#初始組:就是指用戶一登錄就立刻擁有這 個用戶組的相關權限,每個用戶的初始組 只能有一個,一般就是和這個用戶的用戶名相同的組名作為這個用戶的初始組。
#附加組:指用戶可以加入多個其他的用戶 組,并擁有這些組的權限,附加組可以有 多個。
“`

#### 2.3 Shell是什么

“`properties
#Shell就是Linux的命令解釋器。
#在/etc/passwd當中,除了標準Shell是/bin/bash之外,還可以寫如/sbin/nologin(用戶禁用),/usr/bin/passwd等。
“`
### 3、影子文件/etc/shadow

#### 3.1 影子文件/etc/shadow

“`properties
[root@localhost ~]# cat /etc/shadow
root:$6$CDD56Ji0/1P8TRCD$9QaqGR9Jpy6v9tYbs12rnhMynPdyYy2Y.AEsfUbh4bEgc7aF5UvIWB5DjYc6owmWsHus0WAfTOzJPTWAfp2.b/:17350:0:99999:7:::
“`

**配置文件詳解**

“`properties
#第1字段:用戶名
#第2字段:加密密碼
加密算法升級為SHA512散列加密算法
如果密碼位是“!!”或“*”代表沒有密碼,不能登 錄
# 第3字段:密碼最后一次修改日期
使用1970年1月1日作為標準時間,每過一天時間戳 加1
//改密碼提示 it is based on a dictionary word(它是基于字典的詞)????????is too similar to the old one(和之前設置的密碼太相似)

# 第4字段:兩次密碼的修改間隔時間(和 第3字段相比)
# 第5字段:密碼有效期(和第3字段相比)
# 第6字段:密碼修改到期前的警告天數( 和第5字段相比)
# 第7字段:密碼過期后的寬限天數(和第5 字段相比)
?????0:代表密碼過期后立即失效
???-1:則代表密碼永遠不會失效。
# 第8字段:賬號失效時間
?????要用時間戳表示
# 第9字段:保留
“`

#### 3.2 時間戳換算

“`properties
#把時間戳換算為日期
?????date -d “1970-01-01 16066 days”
# 把日期換算為時間戳
?????echo $(($(date –date=”2017/07/29″ +%s)/86400+1))
注意:時間 +%s 有個空格 一定要加上
“`

### 4、組信息文件/etc/group和組密碼文件/etc/gshadow

#### 4.1 組信息文件/etc/group

“`properties
[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
demo:x:500:
liqi:x:501:

第一字段:組名
第二字段:組密碼標志
第三字段:GID
第四字段:組中附加用戶
“`

#### 4.2 組密碼文件/etc/gshadow

“`properties
[root@localhost ~]# cat /etc/gshadow
root:::
bin:::bin,daemon
demo:!::
liqi:!::

第一字段:組名
第二字段:組密碼
第三字段:組管理員用戶名
第四字段:組中附加用戶
“`

### 5、 用戶管理相關文件

#### 5.1 用戶的家目錄

“`properties
# 普通用戶:/home/用戶名/,所有者和所屬
組都是此用戶,權限是700
# 超級用戶:/root/,所有者和所屬組都是
root用戶,權限是550

[root@localhost ~]# cd /home
[root@localhost home]# ll
總用量 24
drwx——. 4 demo demo??4096 7月???6 23:45 demo
drwx——. 4 liqi liqi??4096 7月???6 09:32 liqi
drwx——. 2 root root 16384 7月???4 02:36 lost+found
“`

#### 5.2 用戶的郵箱

“`properties
# /var/spool/mail/用戶名/長度

[root@localhost ~]# cd /var/spool/mail
[root@localhost mail]# ll
總用量 8
-rw-rw—-. 1 demo????mail????0 7月??24 08:22 demo
-rw-rw—-. 1 liqi????mail??609 7月???6 01:55 liqi
-rw——-. 1 root????mail 1215 7月???6 01:57 root
-rw-rw—-. 1 rpc?????mail????0 7月???4 02:43 rpc
-rw-rw—-. 1 ucenter mail????0 7月???7 01:51 ucenter
“`

5.3 用戶的模板目錄

“`properties
# /etc/skel ,每創建一個用戶時,系統會按照模板文件給新得生成對應的文件

[root@localhost ~]# cd /etc/skel
[root@localhost skel]# ls -a
.??..??.bash_logout??.bash_profile??.bashrc??.gnome2

示例:
[root@localhost skel]# touch warning.txt
[root@localhost skel]# vim warning.txt
隨便寫點內容
#創建一個用戶
[root@localhost skel]# useradd user1
#為用戶設置密碼
[root@localhost skel]# passwd user1
更改用戶 user1 的密碼 。
新的 密碼:
無效的密碼: 過于簡單化/系統化
無效的密碼: 過于簡單
重新輸入新的 密碼:
passwd: 所有的身份驗證令牌已經成功更新。

#切換到use1用戶
[root@localhost user1]# su user1
[user1@localhost ~]$ ls -a
.???.bash_logout???.bashrc??warning.txt
..??.bash_profile??.gnome2
我們可以看到這個用戶的家目錄生成了warning.txt

“`

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/92923

(0)
思定思定
上一篇 2018-03-26
下一篇 2018-03-26

相關推薦

  • Linux系統上獲取命令的幫助信息方法

    當我們在操作linux時忘記相關命令的用法時,可以使用man 命令或者命令 -h來查詢該命令的用法; man文檔共有9個章節 1:所有用戶可以操作的指令或可執行文件 2:系統核心調用的函數與工具 3:子調用,常用的函數與函數庫 4:設備,硬件文件說明,通常是/dev/的文件 5:文件格式,配置文件或者是某些檔案的格式 6:游戲相關 7:雜項,例如linux文…

    Linux干貨 2018-03-04
  • IT基礎設施工具—Puppet

    一、Puppet簡介 Puppet是一款使用GPLV2X協議授權的開源管理配置工具,基于ruby語言開發的自動化系統配置工具,可以C/S模式或獨立運行,支持對所有UNIX及類UNIX系統的配置管理,既可以通過客戶端—服務器的方式運行,也可以獨立運行。Puppet適用于服務器管的整個過程 ,比如初始安裝、配置更新以及系統下線。puppet可以為系統管理員提供方…

    Linux干貨 2017-11-26
  • Linux自動備份腳本

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://nolinux.blog.51cto.com/4824967/1541163        今天網上一個朋友問了我一個shell的題目,讓我幫他做下。下面是題目以及解題思路。 題目:…

    Linux干貨 2016-08-15
  • linux進程管理及計劃任務

    進程管理: 什么是進程?   在Linux系統當中:觸法任何一個事件時,系統都會將它定義成為一個進程,并且給予這個進程一個ID,稱為PID,同時依據觸發這個進程的用戶與相關屬性關系,給予這個PID一組有效的權限設置。 進程與程序: 程序(program):通常為二進制程序放置在存儲媒介中,以物理文件的形式存在。 進程(process):程序被觸發后…

    Linux干貨 2016-09-13
  • 第二周-博客

    本文大綱 文件系統層級結構標準 Linux上常見的文件類型 bash的基礎特性 用戶、組和普通權限 一些零散命令的使用 文件系統層級結構標準 FHS是Filesystem Hierarchy Standard(文件系統層次化標準)的縮寫,多數Linux版本采用這種文件組織形式,類似于Windows操作系統中c盤的文件目錄,FHS采用樹形結構組織文件。FHS定…

    Linux干貨 2016-12-07
  • raid各級別特性

      簡介 RAID是一個我們經常能見到的名詞。但卻因為很少能在實際環境中體驗,所以很難對其原理 能有很清楚的認識和掌握。本文將對RAID技術進行介紹和總結,以期能盡量闡明其概念。 RAID全稱為獨立磁盤冗余陣列(Rdeundant Array of Independent Disks),基本思想就是把 多個相對便宜的硬盤組合起來,成為一個硬盤陣列組…

    Linux干貨 2016-01-19
欧美性久久久久