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 19:26
下一篇 2018-03-26 19:29

相關推薦

  • Function函數實例

    函數:function     把一段獨立功能的代碼當做一個整體,而后為之取一個名字,命令的代碼段,即為函數。 注意:     定義函數的代碼段不會自動執行,在調用時執行;所謂調用函數,在代碼中給定函數名即可     函數名出現的任何位置,…

    Linux干貨 2016-08-21
  • Gitlab代碼管理倉庫安裝部署

    GitLab是利用 Ruby on Rails一個開源的版本管理系統,實現一個自托管的Git項目倉庫,可通過Web界面進行訪問公開的或者私人項目。它擁有與Github類似的功能,能夠瀏覽源代碼,管理缺陷和注釋??梢怨芾韴F隊對倉庫的訪問,它非常易于瀏覽提交過的版本并提供一個文件歷史庫。它還提供一個代碼片段收集功能可以輕松實現代碼復用,便于日后有需要的時候進行查…

    2016-07-26
  • 軟鏈接和硬鏈接的區別

          什么是鏈接文件? 使用windows的朋友們應該會經常接觸到快捷方式吧!它也就是能讓我們快速的打開一個目標應用程序,文件,或者文件夾來使我們的操作更加快捷。那么下面我們就來簡單聊聊linux上的“鏈接文件”吧!            &n…

    Linux干貨 2016-10-19
  • N28-第三周

    1. 列出當前系統上所有已經登入的用戶的用戶名,注意:同一個用戶登入多次,則只顯示一次即可。
    2. 取出最後登入到當前系統的用戶的相關信息。
    3. 取出當前系統上被用戶當做其默認shell的最多的那個shell。
    4. 將/etc/passwd中的第三個字段數值最大的後10個用戶的信息全部改為大寫後保存至/tmp/maxusers.txt文件中。
    5. 取出當前主機的IP地址,提示:對ifconfig命令的結果進行切分。
    6. 列出/etc目錄下所有以.conf結尾的文件的文件名,並將其名字轉換為大寫後保存至/tmp/etc.conf文件中。
    7. 顯示/var目錄下一級子目錄或文件的總各數。
    8. 取出/etc/group文件中第三個字段數值最小的10個組的名字。
    9. 將/etc/fstab和/etc/issue文件的內容合併為同一個內容後保存至/tmp/etc.test文件中。
    10. 請總結描述用戶和組管理類命令的使用方法並完成以下練習:
    (1) 創建組distro,其GID為2016。
    (2) 創建用戶mandriva,其ID號為1005,基本組為distro。
    (3) 創建用戶mageia,其ID號為1100,家目錄為/home/linux。
    (4) 給用戶mageia添加密碼,密碼為mageedu。
    (5) 刪除mandriva,但保留其家目錄。
    (6) 創建用戶slackware,其ID號為2002,基本組為distro,附加組peguin。
    (7) 修改slackware的默認shell為/bin/tcsh。
    (8) 為用戶slackware新增附加組admins。

    2017-12-19
  • 第三天作業

    1、列出當前系統上所有已經登錄的用戶的用戶名。注意:同一個用戶登錄多次,則只顯示一次即可 [root@localhost ~]# who | cut -d ' ' -f1 | sort | uniq [root@localhost ~]# who (unknown) :0         &nbsp…

    Linux干貨 2016-08-30
  • Btrfs文件系統的管理和應用

        Btrfs(我們稱之為Butter FS或者B-tree FS)被稱為新一代的linux文件系統。一直以來,EXT文件系統以其卓越的穩定性成為linux標準的文件系統。但近年來,EXT3暴露出一些擴展性的問題(如單一文件大小限制、總文件系統大小限制等),于是便催生了EXT4。但同時,Btrfs向人們展現出諸多優…

    Linux干貨 2016-02-14
欧美性久久久久