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 配置內容所找到的命令會不同服務器
添加普通用戶網絡
useradd hadoop # 這個就表示咱們建立了一個普通用戶
passwd hadoop # 表示咱們須要給hadoop這個普通用戶分配一個密碼,密碼須要本身設置
添加用戶組:groupadd storm 表示咱們本身添加了一個storm的組
切換用戶:linux當中可使用su來切換不一樣的用戶角色
su root 表示咱們須要切換成其餘用戶,須要使用密碼
添加用戶組:groupadd storm 表示咱們本身添加了一個storm的組
su 用於用戶之間的切換。可是切換前的用戶依然保持登陸狀態。若是是 root
向普通或虛擬用戶切換不須要密碼, 反之普通用戶切換到其它任何用戶都須要密
碼驗證。
su 在不加任何參數,默認爲切換到 root 用戶,但沒有轉到 root 用戶根目
錄下; su 加參數 - ,表示默認切換到 root 用戶,並轉到 root 用戶根目錄下。
su 不足: 若是某個用戶須要使用 root 權限、則必需要把 root 密碼告訴此
用戶。
退出返回以前的用戶
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 命令就能夠執行。
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目錄添加全部權限
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 服務開機不要自啓
查看主機名
hostname
修改主機名(重啓後無效)
hostname hadoop
修改主機名(重啓後永久生效)
vi /ect/sysconfig/network
HOSTNAME=node01.hadoop.com
用 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命令能夠臨時更改咱們的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 是 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