2. linux基礎加強,Linux命令學習:查找命令、用戶用戶組、su與sudo、權限管理、系統管理、網絡管理

2.一、查找命令

grep命令
grep 命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並
把匹配的行打印出來。
格式: grep [option] pattern [file]
可以使用 —help 查看更多參數。
使用實例:
ps -ef | grep sshd 查找指定 ssh 服務進程
ps -ef | grep sshd | grep -v grep 查找指定服務進程,排除 gerp 自己
ps -ef | grep sshd –c 查找指定進程個數
cat a.txt | grep -f b.txt 從文件中讀取關鍵詞進行搜索
輸出 a.txt 文件中含有從 b.txt 文件中讀取出的關鍵詞的內容行
cat a.txt | grep –nf b.txt 從文件中讀取關鍵詞進行搜索,顯示行號
grep -n 'hello' a.txt  從文件中查找關鍵詞,並顯示行號
cat test.txt |grep ^u 找出以 u 開頭的行內容
cat test.txt |grep ^[^u] 輸出非 u 開頭的行內容
cat test.txt |grep hat$ 輸出以 hat 結尾的行內容
cat test.txt |grep -E "ed|at" 顯示包含 ed 或者 at 字符的內容行java

 

find命令node

find 命令在目錄結構中搜索文件,並對搜索結果執行指定的操做。
find 默認搜索當前目錄及其子目錄,而且不過濾任何結果(也就是返回所
有文件),將它們全都顯示在屏幕上。
實際參數不少,可以使用 —help 查看。
使用實例:
find . -name "*.log" -ls 在當前目錄查找以.log 結尾的文件, 並顯示詳細信息。
find /root/ -perm 777 查找/root/目錄下權限爲 777 的文件
find . -type f -name "*.log" 查找當目錄,以.log 結尾的普通文件
find . -type d | sort 查找當前全部目錄並排序
find . -size +100M 查找當前目錄大於 100M 的文件linux

 

Locate命令正則表達式

locate 讓使用者能夠很快速的搜尋檔案系統內是否有指定的檔案。其方法
是先創建一個包括系統內全部檔案名稱及路徑的數據庫。以後當尋找時就只需查
詢這個數據庫( /var/lib/locatedb)。
Linux 系統自動建立這個數據庫, 默認天天自動更新一次,因此使用 locate
命令查不到最新變更過的文件。爲了不這種狀況,能夠在使用 locate 以前,
先使用 updatedb 命令,手動更新數據庫。
若是是精簡版 CentOS 系統須要安裝 locate 命令
yum -y install mlocate
updatedb 命令來建立 locate 命令依賴的數據庫
updatedb
使用實例:
locate /etc/sh
搜索 etc 目錄下全部以 sh 開頭的文件
locate pwd
查找和 pwd 相關的全部文件shell

 

whereis命令數據庫

whereis 命令是定位可執行文件、源代碼文件、幫助文件在文件系統中的位
置。這些文件的屬性應屬於原始代碼,二進制文件,或是幫助文件。
whereis 和下 locate 同樣,會從數據庫中查找數據,而不是像 find 命令那
樣,經過遍歷硬盤來查找。
使用實例:
whereis ls 將和 ls 文件相關的文件都查找出來
ls: /bin/ls /usr/share/man/man1/ls.1.gz
whereis -m ls 查找 ls 命令說明文檔路徑
whereis -s ls 查找 ls 源文件apache

 

which命令vim

which 命令的做用是在 PATH 變量指定的路徑中,搜索某個系統命令的位置,
而且返回第一個搜索結果。
使用 which 命令,就能夠看到某個系統命令是否存在,以及執行的究竟是哪
一個位置的命令。
使用實例:
which pwd 查找 pwd 命令所在路徑
/bin/pwd
which java 查找 path 中 java 的路徑
/root/apps/jdk1.8.0_65/bin/java
which 是根據使用者所配置的 PATH 變量內的目錄去搜尋可運行檔, 因此,
不一樣的 PATH 配置內容所找到的命令會不同服務器

 

 

2.二、用戶與用戶組

添加普通用戶網絡

useradd   hadoop    #   這個就表示咱們建立了一個普通用戶

passwd   hadoop    # 表示咱們須要給hadoop這個普通用戶分配一個密碼,密碼須要本身設置

 

添加用戶組:groupadd  storm  表示咱們本身添加了一個storm的組

 

2.三、su與sudo

su的使用

切換用戶:linux當中可使用su來切換不一樣的用戶角色

su   root   表示咱們須要切換成其餘用戶,須要使用密碼

添加用戶組:groupadd  storm  表示咱們本身添加了一個storm的組

su 用於用戶之間的切換。可是切換前的用戶依然保持登陸狀態。若是是 root
向普通或虛擬用戶切換不須要密碼, 反之普通用戶切換到其它任何用戶都須要密
碼驗證。
su 在不加任何參數,默認爲切換到 root 用戶,但沒有轉到 root 用戶根目
錄下; su 加參數 - ,表示默認切換到 root 用戶,並轉到 root 用戶根目錄下。

su 不足: 若是某個用戶須要使用 root 權限、則必需要把 root 密碼告訴此

用戶。
退出返回以前的用戶

 

sudo使用

sudo 是爲全部想使用 root 權限的普通用戶設計的。可讓普通用戶具備臨
時使用 root 權限的權利。只需輸入本身帳戶的密碼便可。固然這個普通用戶必
須在/etc/sudoers 文件中有配置項、才具備使用 sudo 的權利。
沒有配置權限以前,普通用戶沒法進行 root 權限操做

使用 root 用戶編輯/etc/sudoers 文件,給普通用戶受權
命令行輸入 visudo,打開/etc/sudoers 文件,加入以下的內容,保存。

hadoop  ALL=(ALL)       ALL

這樣普通用戶就可使用 sudo 執行 root 權限的命令了。

sudo 的工做過程以下:
1.當用戶執行 sudo 時,系統會主動尋找/etc/sudoers 文件,判斷該用戶是
否有執行 sudo 的權限
2. 確認用戶具備可執行 sudo 的權限後,讓用戶輸入用戶本身的密碼確認
3. 若密碼輸入成功,則開始執行 sudo 後續的命令


若是想要更加精準的控制,就須要理解配置中的含義。
hadoop ALL=(ALL) ALL
第一個 ALL 是指網絡中的主機, 咱們能夠指定主機名, 這樣 hadoop 只能夠
在此主機上執行後面的命令。第二個括號裏的 ALL 是指目標用戶,也就是以誰的身份去執行命令。最後一個 ALL 是指命令名了。
例如,咱們想讓 hadoop 用戶在 node-23 主機上以 allen 的身份執行 kill 命令, 就這樣編寫配置文件:
hadoop node-23=(allen) /bin/kill
案例:只容許 hadoop 用戶以 root 身份在 node-23 上執行 ls 、 cat 命令,
而且執行時候免輸入密碼。
配置文件中:
hadoop node-23=NOPASSWD: /bin/ls, /bin/cat

執行非 ls 、 cat 命令也會禁止

而 cat 命令就能夠執行。

 

 

2.四、linux的權限管理

 

 

chown -R hadoop:hadoop abc.txt  改變某個文件或者文件夾的所屬的用戶以及用戶組

第一個參數  -R   表示咱們遞歸的進行改變

第二個參數 hadoop:hadoop  表示咱們的用戶以及用戶組

第三個參數:咱們須要改變的文件或者文件夾

chmod  改變文件的執行權限

chmod 777 abc.txt    表示給某個文件賦予全部人的全部權限

l  chmod(change mode) 功能:變動文件或目錄的權限。

l  語法:chmod [參數] [<權限範圍><符號><權限代號>]

       -R或--recursive  遞歸處理,將指定目錄下的全部文件及子目錄一併處理。

n  權限範圍的表示法以下:

              u:User,即文件或目錄的擁有者。

              g:Group,即文件或目錄的所屬羣組。

              o:Other,除了文件或目錄擁有者或所屬羣組以外,其餘用戶皆屬於這個範圍。

              a:All,即所有的用戶,包含擁有者,所屬羣組以及其餘用戶。

n  符號:

              + 添加權限

-取消權限

n  有關權限代號的部分,列表於下:

              r:讀取權限,數字代號爲"4"。

              w:寫入權限,數字代號爲"2"。

              x:執行或切換權限,數字代號爲"1"。

              -:不具任何權限,數字代號爲"0"。

 

 

mkdir xxx

ll | grep xxx

chmod u-rwx xxx    #取消xxx目錄,用戶「讀寫執行」權限

chmod g-rwx xxx     #取消xxx目錄,組「讀寫執行」權限

chmod 777 xxx      #給xxx目錄添加全部權限

 

 

2.五、系統服務管理

service iptables status  #查看防火牆狀態

service  iptables stop  #關閉防火牆

service --status-all # 查看系統全部的後臺服務進程
service sshd status # 查看指定的後臺服務進程的狀態
service sshd stop
service sshd start
service sshd restart
配置後臺服務進程的開機自啓或關閉

chkconfig iptables on  #配置防火牆開機開啓

chkconfig iptables off #配置防火牆開機關閉
chkconfig httpd on ## 讓 httpd 服務開機自啓
chkconfig httpd off ## 讓 httpd 服務開機不要自啓

2.六、網絡管理

主機名配置

查看主機名

hostname

修改主機名(重啓後無效)

hostname hadoop

 

修改主機名(重啓後永久生效)

vi /ect/sysconfig/network

HOSTNAME=node01.hadoop.com

IP 地址配置

方式一: setup(強烈不建議使用)

用 root 輸入 setup 命令,進入交互式修改界面

Minimal 安裝的系統沒有安裝 setuptool 軟件,可 yum 安裝後使用。

yum install setuptool ntsysv system-config-securitylevel-tui

yum install system-config-network-tui system-config-keyboard

方式二:修改配置文件(重啓後永久生效,強烈建議使用)

修改IP地址:
vi /etc/sysconfig/network-scripts/ifcfg-eth0 

 

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.221.100

NETMASK=255.255.255.0

GATEWAY=192.168.221.1

DNS1=8.8.8.8

 

修改mac地址:

vim /etc/udev/rules.d/70-persistent-net.rules

 

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:3a:57:a5", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

 

方式三: ifconfig 命令(重啓後無效,強烈不建議使用)

經過ifconfig命令能夠臨時更改咱們的ip地址,可是服務器重啓以後無效
ifconfig eth0 192.168.12.22

 

域名映射

/etc/hosts 文件用於在經過主機名進行訪問時作 ip 地址解析之用。
因此,你想訪問一個什麼樣的主機名,就須要把這個主機名和它對應的 ip 地址
配置在/etc/hosts 文件中

vim /etc/hosts

127.0.0.1   localhost

 

192.168.221.100 node01.hadoop.com node01

網絡端口監聽

netstat 是一款命令行工具, 用於列出系統上全部的網絡 socket 鏈接狀況,
包括 tcp, udp 以及 unix socket,另外它還能列出處於監聽狀態(即等待接入
請求)的 socket。 如想確認 Web 服務有沒有起來,可查看 80 端口有沒有打開。
示例:
常見參數:
-a (all)顯示全部選項,默認不顯示 LISTEN 相關
-t (tcp)僅顯示 tcp 相關選項
-u (udp)僅顯示 udp 相關選項
-n 禁用域名反向解析功能,只顯示 ip
-l 僅列出有在 Listen (監聽) 的服務狀態
-p 顯示創建相關連接的進程信息
-ep 能夠同時查看進程名和用戶名
netstat –nlpt 獲取進程名、進程號以及用戶 ID

 

 

 

只列出監聽中的鏈接
netstat –tnl 能夠看處處於監聽狀態的 TCP 端口和鏈接

netstat -nltp查看全部的監聽的端口

crontab 配置

crontab 是 Unix 和 Linux 用於設置週期性被執行的指令。 經過 crontab 命
令,能夠在固定間隔時間執行指定的系統指令或 shell 腳本。時間間隔的單位可

 

以是分鐘、小時、日、月、周及以上的任意組合。
crontab 安裝:
yum install crontabs
服務操做說明:
service crond start ## 啓動服務
service crond stop ## 關閉服務
service crond restart ## 重啓服務
service crond reload ## 從新載入配置
service crond status ## 查看 crontab 服務狀態:
chkconfig crond --list ## 查看 crontab 服務是否已設置爲開機啓動
chkconfig crond on ## 加入開機自動啓動

 

經過crontab配置虛擬機時鐘同步

crontab  -e

*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com

命令格式

crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
參數說明:
-u user:用來設定某個用戶的 crontab 服務
file: file 是命令文件的名字,表示將 file 作爲 crontab 的任務列表文件
並載入 crontab。
-e:編輯某個用戶的 crontab 文件內容。若是不指定用戶,則表示編輯當前
用戶的 crontab 文件。
-l:顯示某個用戶的 crontab 文件內容。 若是不指定用戶,則表示顯示當前
用戶的 crontab 文件內容。
-r:刪除定時任務配置,從/var/spool/cron 目錄中刪除某個用戶的 crontab
文件,若是不指定用戶,則默認刪除當前用戶的 crontab 文件。
-i:在刪除用戶的 crontab 文件時給確認提示。
命令示例:
crontab file [-u user] ## 用指定的文件替代目前的 crontab。
crontab -l [-u user] ## 列出用戶目前的 crontab.
crontab -e [-u user] ## 編輯用戶目前的 crontab.

 

配置說明、實例

* * * * * command 分 時 日 月 周 命令 第 1 列表示分鐘 1~59 每分鐘用*或者 */1 表示 第 2 列表示小時 0~23( 0 表示 0 點) 第 3 列表示日期 1~31 第 4 列表示月份 1~12 第 5 列標識號星期 0~6( 0 表示星期天) 第 6 列要運行的命令 配置實例: */1 * * * * date >> /root/date.txt 每分鐘執行一次 date 命令 30 21 * * * /usr/local/etc/rc.d/httpd restart 每晚的 21:30 重啓 apache。 45 4 1,10,22 * * /usr/local/etc/rc.d/httpd restart 每個月 一、 十、 22 日的 4 : 45 重啓 apache。 10 1 * * 6,0 /usr/local/etc/rc.d/httpd restart 每週6、週日的 1 : 10 重啓 apache。 0,30 18-23 * * * /usr/local/etc/rc.d/httpd restart 天天 18 : 00 至 23 : 00 之間每隔 30 分鐘重啓 apache。 * 23-7/1 * * * /usr/local/etc/rc.d/httpd restart 晚上 11 點到早上 7 點之間,每隔一小時重啓 apache

相關文章
相關標籤/搜索