約定俗成:java
bin (binaries)存放二進制可執行文件node
sbin (super user binaries)存放二進制可執行文件,只有root才能訪問正則表達式
etc (etcetera)存放系統配置文件shell
usr (unix shared resources)用於存放共享的系統資源vim
home 存放用戶文件的根目錄windows
root 超級用戶目錄tomcat
dev (devices)用於存放設備文件bash
lib (library)存放跟文件系統中的程序運行所須要的共享庫及內核模塊服務器
mnt (mount)系統管理員安裝臨時文件系統的安裝點網絡
boot 存放用於系統引導時使用的各類文件
tmp (temporary)用於存放各類臨時文件
var (variable)用於存放運行時須要改變數據的文件
紅色命令爲本人比較經常使用的命令(會常常更新)
相對路徑和絕對路徑說明:
如今在/home/dijia478/下
./a/b.txt和a/b.txt都表示相對路徑,當前目錄下的a文件夾下的b.txt文件
/home/dijia478/a/b.txt表示絕對路徑,根目錄下的home文件夾下的dijia478文件夾下的a文件夾下的b.txt文件
cd ./a 切換到當前目錄的a文件夾
cd ../ 切換到上一層目錄
cd / 切換到系統根目錄
cd ~ 切換到用戶主目錄
cd - 切換到上一個所在目錄
pwd 顯示當前所在目錄的絕對路徑
ls /path/顯示該目錄全部文件或文件夾名
ls -a 顯示全部文件或文件夾名(包含隱藏的)
ls -l 按列表顯示全部文件或文件夾,縮寫成ll
ll -h 友好的顯示文件大小(顯示成K,MB,GB)
mkdir app 建立app文件夾
mkdir –p app2/test 級聯建立aap2以及test文件夾
rmdir app 刪除app目文件夾(須要是空文件夾)
rm a.txt 刪除a.txt文件,刪除須要用戶確認,y/n
rm -f a.txt 不詢問,直接刪除a.txt文件
rm -r a 遞歸刪除a文件夾(不管是否有內容)
rm -rf a 不詢問遞歸刪除a文件夾(慎用)
rm -rf * 刪除當前目錄下全部內容(最好別用)
rm -rf /* no 做 no die(Linux系統就玩完了)
cp a.txt b.txt 將a.txt複製爲b.txt文件
cp -r dir/ ../ 將dir文件夾及子目錄和文件複製到上一層目錄中
mv a.txt ../ 將a.txt文件移動到上一層目錄中
mv a.txt b.txt 將a.txt文件重命名爲b.txt
touch a.txt 建立一個空的a.txt文件
echo "good good study" > a.txt 把">"左邊的輸出內容放到右邊的文件裏去,若是存在就覆蓋,若是不存在就建立
vim a.txt 用文本編輯器編輯一個文件,若是不存在就建立
tar -cvf file.tar dirpath filepath 將dir文件夾和file文件在當前目錄下打包成file.tar
tar –xvf file.tar 解包到當前目錄
gzip file.tar 壓縮文件或文件夾
gzip –d file.tar.gz 解壓文件或文件夾
tar -czvf file.tar.gz dirpath filepath 將dir文件夾和file文件在當前目錄下打包並壓縮成file.tar.gz
tar -xzvf file.tar.gz 解壓並解包到當前目錄下
tar -xzvf file.tar.gz -C /home/dijia478/ 解壓並解包到/home/dijia478/目錄下
經常使用參數:
-c:建立一個新tar文件
-v:顯示運行過程的信息
-f:指定文件名
-z:調用gzip壓縮命令進行壓縮
-t:查看壓縮文件的內容
-x:解開tar文件
zip test.txt.zip test.txt 也是打包並壓縮
unzip test.txt.zip 解包並解包
.rpm結尾的包,用rpm -ivh 命令安裝
cat a.txt 一次性顯示整個文件內容
more a.txt 能夠分頁看(翻頁:空格,往回翻:b ,退出: q或者 Ctrl+C)
less a.txt 不只能夠分頁,還能夠方便地搜索,回翻等操做(翻頁:空格,往回翻:↑,往下翻:↓,退出:q或者 Ctrl+C)
tail -10 a.txt 查看文件的尾部的10行
tail -f user.log 實時刷新顯示文件的尾部,這條命令對於觀察調試程序的運行很是重要
head -20 a.txt 查看文件的頭部20行
注:ctrl+c 結束查看
grep ‘haha’ ./* 打印當前目錄下全部文件中含有'haha'的地方(支持正則表達式)
grep -c ‘haha’ ./* 顯示匹配到的行數
grep -r ‘haha’ ./* 對子目錄也進行遍歷搜索
grep -l ‘haha’ ./* 只顯示命中的文件名
grep -n ‘haha’ ./* 顯示命中的行號
grep -ld skip ‘haha’ ./* 顯示命中的文件名,不要搜索子目錄
參數含義:
-r 遞歸搜索子目錄
-l 只列出有匹配行的文件名
-n 列出匹配行的行號
-d skip 不搜索子文件夾
經常使用grep跟其餘命令組合使用來查找咱們關心的信息(管道)
示例:
service --status-all | grep 'httpd' 在當前系統全部服務中查找'httpd'
netstat -nltp | grep '22' 查找監聽'22'端口的服務程序
ps –ef | grep java 查找系統中當前運行的java進程
find ./ -name '*.txt' 查找以.txt結尾的文件(會遍歷當前目錄)
find ./ -name ‘install*’ 查找以install開頭的文件或文件夾
find ./ -type f 查找普通文件
find ./ -type l 查找鏈接文件(快捷方式)
> 重定向輸出,覆蓋原有內容;
>> 重定向輸出,又追加功能;
cat /etc/passwd > a.txt 將密碼文件輸出定向到a.txt中
cat /etc/passwd >> a.txt 輸出而且追加
ifconfig > ifconfig.txt 保存ip信息到文件中
wc -l a.txt 統計文本行數
wc -w a.txt 統計文本單詞數
wc -m a.txt 統計文本字符數
wc -c a.txt 統計文本字節數
vim編輯器
vim filepath 打開文件
按Esc鍵 切換到命令行模式
切換到插入模式:
i 在當前位置生前插入
I 在當前行首插入
a 在當前位置後插入
A 在當前行尾插入
o 在當前行以後插入一行
O 在當前行以前插入一行
dd 刪除整行
7 dd 向上刪除7行
U 回退(相似於windows 中 ctrl + z)
R 替換
:(冒號) 切換到底行模式
:q 退出
:wq 保存並退出(shift + zz也能夠保存)
:q! 不保存退出
echo $JAVA_HOME 輸出變量JAVA_HOME的值
rpm -qa | grep tomcat 查看當前系統是否安裝tomcat
rpm -e tomcat 卸載tomcat
rpm 的其餘附加命令
--force 強制操做 如強制安裝刪除等;
--requires 顯示該包的依賴關係;
--nodeps 忽略依賴關係並繼續操做;
whoami 查詢當前登錄的用戶名
which ls 查詢ls命令的$PATH路徑
mkdir test && cd test
只有在 && 左邊的命令返回真(命令返回值 $? == 0),&& 右邊的命令纔會被執行。
只要有一個命令返回假(命令返回值 $? == 1),後面的命令就不會被執行。
基本示例:
useradd user001
passwd 123456 須要設置密碼
參數手冊:
-u 指定組ID(uid)
-g 指定所屬的組名(gid)
-G 指定多個組,用逗號「,」分開(Groups)
-c 用戶描述(comment)
-d 指定用戶目錄
-e 失效時間(expire date)
userdel user002 這樣刪除的時候,用戶的主目錄會被保留
userdel -r user002 刪除用戶的同時刪除用戶的主目錄
指令:usermod
參數:
-l 修改用戶名 (login)usermod -l a b(b改成a)
-g 修改組 usermod -g sys tom
-d 修改用戶的宿主目錄
-G 添加多個組 usermod -G sys,root tom
-L 鎖定用戶帳號密碼(Lock)
-U 解鎖用戶帳號(Unlock)
示例:
usermod -l user002 user001 將user001的登錄名改成user002
usermod -g root user002 將user002的組改成root組
usermod -G hello1,hello2 user002 給user002添加兩個組hello1,hello2
usermod -d /home/dijia478 user002 將user002的主目錄改爲/home/dijia478
(要事先建立dijia478目錄,而且拷入環境變量文件)
用戶組相關屬性:
每一個用戶至少屬於一個用戶組
(建立新用戶時若是不指定所屬組,則會自動建立並歸屬到一個跟用戶名同名的組)
每一個用戶組能夠包含多個用戶
同一個用戶組的用戶享有該組共有的權限
用戶組管理操做命令:
groupadd java 建立用戶組
groupdel hello2 刪除用戶組
groupmod –n newname oldname 修改用戶組名稱
groups user002 查看用所屬的組
用戶配置信息存放位置:
保存用戶信息的文件:/etc/passwd
保存密碼的文件:/etc/shadow
passwd文件示例:
user002:x:500:500:user002:/home/user002:/bin/bash
passwd文件各字段含義:
account:password:UID:GID:GECOS:directory:shell
shadow文件示例:
user002:$1$vRug41$UUxYzdP0i6s6wtUPieGDQ/:18617:0:99999:7:::
shadow文件各字段含義:
用戶名 |
登錄系統的用戶名 |
密碼 |
加密密碼 |
最後一次修改時間 |
用戶最後一次修改密碼距如今的天數,從1970-1-1起 |
最小時間間隔 |
兩次修改密碼之間的最小天數 |
最大時間間隔 |
密碼有效天數 |
警告時間 |
從系統警告到密碼失效的天數 |
帳號閒置時間 |
帳號閒置時間 |
失效時間 |
密碼失效的天數 |
標誌 |
標誌 |
用戶組配置信息存放位置:
保存用戶組的文件:/etc/group
保存用戶組密碼的文件:/etc/gshadow(設置組管理員時纔有用)
id user002 查看一個用戶的UID和GID
su user001 切換到user001用戶
su - user001 切換到user001用戶,而且將環境也切換到user001用戶的環境(推薦使用)
exis 退出當前shell(會退出當前登陸用戶)
檢查網絡連通性:
ping 要測試的ip
查看ip地址
ifconfig 查看全部網絡設備的地址信息
ifconfig eth0 查看指定的eth0以太網卡的地址信息
修改ip地址
ifconfig eth0 192.168.2.150 netmask 255.255.255.0
經過setup修改網絡配置
在root權限下執行setup指令能夠打開一個帶菜單的僞圖形界面來修改網絡配置
經過配置文件修改ip地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改該配置文件便可改ip地址
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none HWADDR=00:0c:29:f1:b2:e8 #網卡物理地址 IPV6INIT=yes NM_CONTROLLED=yes ONBOOT=yes TYPE=Ethernet UUID="b3cd1ac3-aecf-4845-9812-9337135c072b" IPADDR=192.168.2.199 # IP地址 NETMASK=255.255.255.0 #子網掩碼 DNS2=8.8.8.8 #域名服務器2 GATEWAY=192.168.2.1 #網關 DNS1=192.168.2.1 #域名服務器1 USERCTL=no |
查看主機名
在shell提示符的@後有顯示
或者用hostname指令打印出主機名
修改主機名
vi /etc/sysconfig/network 修改其中的hostname配置項:
HOSTNAME=newname
修改完成以後要重啓服務器才能生效
要想當即生效,能夠執行指令 hostname newname,而後註銷重登錄
主機名-IP映射,服務器本地映射
服務器網絡尋址時默認是如今本地的hosts文件中查找IP映射,經過修改hosts來映射局域網內部的主機名很是方便
實現方法,將局域網內的每一臺主機的「hostnamip」寫入每一臺主機的hosts文件中:
vi /etc/hosts
192.168.2.150 user001-server-01
192.168.2.151 user001-server-02
192.168.2.152 user001-server-03
列出系統全部應用服務狀態:
service --status-all
查看指定服務運行狀態:
service servicename status
啓動服務:
service servicename start
中止服務:
service servicename stop
列出全部服務的隨機自起配置:
chkconfig --list
關閉服務的隨機自起:
chkconfig servicename off
開啓服務的隨機自起:
chkconfig servicename on
經常使用示例:
重啓網絡服務:service network restart
中止httpd:service httpd stop
啓動httpd:service httpd start
關閉防火牆服務:service iptables stop
關閉防火牆自動啓動:chkconfig iptables off
指令:netstat
netstat經常使用示例:
netstat -natp
netstat -nltp
netstat -naup
netstat -an | grep 3306 查詢3306端口占用狀況
經常使用參數解釋:
-a 顯示全部鏈接和監聽端口
-l 只顯示監聽進程
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的所有轉化成數字。
-p 顯示創建相關連接的程序名
lsof命令其實要比netstat強大
經常使用參數:
-i 顯示全部鏈接
-i 6 僅獲取IPv6流量
-iTCP 僅顯示TCP鏈接
-i:8080 顯示與8080端口相關的網絡信息
-i@192.168.128.128 顯示指定到192.168.128.128的鏈接
-i@192.168.128.128:22 顯示基於主機與端口的鏈接
-i -sTCP:LISTEN 找出正等候鏈接的端口
-i -sTCP:ESTABLISHED 找出已創建的鏈接
-u 用戶名 顯示指定用戶打開了什麼
-u ^用戶名 顯示除指定用戶之外的其它全部用戶所作的事情
-p 10075 查看指定進程ID已打開的內容
其餘用法:
kill -9 `lsof -t -u 用戶名` 殺死指定用戶所作的一切事情
lsof /var/log/messages/ 顯示與指定目錄或文件交互的全部一切
lsof -u dijia478 -i @1.1.1.1 顯示dijia478鏈接到1.1.1.1所作的一切
df -h 查看磁盤空間狀態信息
du -sh * 查看指定目錄下全部子目錄和文件的彙總大小
free 查看內存使用情況
top 查看實時刷新的系統進程信息
ps -ef 查看系統中當前瞬間的進程信息快照
ps -ef | grep myshell 搜索myshell進程的信息
kill -9 pid 殺掉進程(-9 表示強制殺死)
root用戶由於具備不受限制的權限,使用不慎可能對系統形成不可估量的損害,於是,生產實際中,輕易不要使用su去切換到root的身份
若是普通用戶須要使用一些系統級管理命令,可使用sudo來執行,好比 sudo vi /etc/profile
給普通用戶賦予sudo權限,配置方法以下:
例如,要給hadoop用戶賦予sudo任何指令(或某條指定的命令)的權利,則編輯sudoers文件 vi /etc/sudoers
在其中加入須要賦予權限的用戶(紅色標識)
……
root ALL=(ALL) ALL #讓hadoop用戶能夠用root身份執行全部指令 hadoop ALL=(ALL) ALL #讓user002用戶能夠用root身份執行全部指令 Itcast ALL=(root) /usr/sbin/useradd, /usr/bin/passwd
…… |
檢查是否生效:
[root@user001-server-01 user002]# sudo -lU user002
User user002 is not allowed to run sudo on user001-server-01.
vi /etc/inittab
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
~
用level 3 就啓動全功能狀態的命令行界面,5是圖形界面。不要設置其餘的,容易做死。
在命令行模式下,用startx能夠手動啓動圖形界面(在服務器上操做)
Linux三種文件類型:
普通文件: 包括文本文件、數據文件、可執行的二進制程序文件等。
目錄文件: Linux系統把目錄當作是一種特殊的文件,利用它構成文件系統的樹型結構。
設備文件: Linux系統把每個設備都當作是一個文件
文件類型標識:
普通文件(-)
目錄(d)
符號連接(l)
* 進入etc能夠查看,至關於快捷方式
字符設備文件(c)
塊設備文件(s)
套接字(s)
命名管道(p)
u 表示「用戶(user)」,即文件或目錄的全部者。
g 表示「同組(group)用戶」,即與文件屬主有相同組ID的全部用戶。
o 表示「其餘(others)用戶」。
a 表示「全部(all)用戶」。它是系統默認值。
操做符號能夠是:
+ 添加某個權限。
- 取消某個權限。
= 賦予給定權限並取消其餘全部權限(若是有的話)。
設置mode所表示的權限可用下述字母的任意組合:
r 可讀。
w 可寫。
x 可執行。
文件權限管理:
chmod u+rwx a.txt 爲a.txt添加所屬用戶的rwx權限
chmod 755 a.txt 爲a.txt設置所屬用戶rwx權限,所屬組rx權限,其餘用戶rx權限(r-4,w-2,x-1)
chmod u=rwx,g=rx,o=rx a.txt (u表明所屬用戶 g表明所屬組的成員用戶 o表明其餘用戶)
chown user001:hello1 a.txt 將a.txt的全部者改爲user001用戶,所屬組改爲hello1組(須要root權限)
chown -R user001:hello1 dir 將dir文件夾的全部者改爲user001用戶,所屬組改爲hello1組(須要root權限)
date "+%Y%m%d" 按格式顯示當前系統時間
date -s "2020-01-01 10:10:10" 設置系統時間
clear 清屏幕(只是滾到上面看不到了)uname 顯示系統信息。uname -a 顯示本機詳細信息。依次爲:內核名稱(類別),主機名,內核版本號,內核版本,內核編譯日期,硬件名,處理器類型,硬件平臺類型,操做系統名稱