Linux經常使用基礎命令

1、系統目錄結構

約定俗成: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)用於存放運行時須要改變數據的文件

2、基本命令

紅色命令爲本人比較經常使用的命令(會常常更新)

1.目錄操做

相對路徑和絕對路徑說明:

如今在/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  顯示當前所在目錄的絕對路徑

2.查看文件列表

ls /path/顯示該目錄全部文件或文件夾名
ls -a  顯示全部文件或文件夾名(包含隱藏的)
ls -l  按列表顯示全部文件或文件夾,縮寫成ll

ll -h  友好的顯示文件大小(顯示成K,MB,GB)

3.建立和刪除文件夾

mkdir app  建立app文件夾
mkdir –p app2/test  級聯建立aap2以及test文件夾

rmdir app  刪除app目文件夾(須要是空文件夾)

4.文件操做

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  用文本編輯器編輯一個文件,若是不存在就建立

5.文件打包歸檔和壓縮

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 命令安裝

6.查看文本文件

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 結束查看

7.搜索查找命令

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  查找鏈接文件(快捷方式)

8.文本命令

> 重定向輸出,覆蓋原有內容;
>> 重定向輸出,又追加功能;
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!  不保存退出

9.其餘經常使用命令

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),後面的命令就不會被執行。

3、用戶管理命令

1.添加用戶

基本示例:
useradd user001

passwd 123456  須要設置密碼

參數手冊:
-u 指定組ID(uid)
-g 指定所屬的組名(gid)
-G 指定多個組,用逗號「,」分開(Groups)
-c 用戶描述(comment)
-d 指定用戶目錄
-e 失效時間(expire date)

2.刪除用戶

userdel user002  這樣刪除的時候,用戶的主目錄會被保留
userdel -r user002  刪除用戶的同時刪除用戶的主目錄

3.修改用戶屬性

指令: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目錄,而且拷入環境變量文件)

4.用戶組管理

用戶組相關屬性:
每一個用戶至少屬於一個用戶組
(建立新用戶時若是不指定所屬組,則會自動建立並歸屬到一個跟用戶名同名的組)
每一個用戶組能夠包含多個用戶
同一個用戶組的用戶享有該組共有的權限
用戶組管理操做命令:
groupadd java  建立用戶組
groupdel hello2  刪除用戶組
groupmod –n newname oldname  修改用戶組名稱
groups user002  查看用所屬的組

5.用戶及用戶組相關配置文件

用戶配置信息存放位置:
保存用戶信息的文件:/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(設置組管理員時纔有用)

6.其餘的用戶管理命令

id user002  查看一個用戶的UID和GID
su user001  切換到user001用戶
su - user001  切換到user001用戶,而且將環境也切換到user001用戶的環境(推薦使用)
exis  退出當前shell(會退出當前登陸用戶)

4、網絡配置管理

1.網卡地址配置

檢查網絡連通性:
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

2.主機名配置管理

查看主機名
在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

3.網絡服務啓動與中止

列出系統全部應用服務狀態:
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

4.查看網絡鏈接信息

指令: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所作的一切

5、經常使用系統管理命令

1.磁盤/內存使用信息查看

df -h  查看磁盤空間狀態信息
du -sh *  查看指定目錄下全部子目錄和文件的彙總大小    
free  查看內存使用情況

2.進程管理

top  查看實時刷新的系統進程信息
ps -ef  查看系統中當前瞬間的進程信息快照
ps -ef | grep myshell  搜索myshell進程的信息
kill -9 pid  殺掉進程(-9 表示強制殺死)

3.sudo權限的配置

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.

4.修改系統的默認啓動級別

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能夠手動啓動圖形界面(在服務器上操做)

5.文件權限管理

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權限)

6.其餘系統管理命令

date "+%Y%m%d"  按格式顯示當前系統時間
date -s "2020-01-01 10:10:10"  設置系統時間
clear  清屏幕(只是滾到上面看不到了)uname 顯示系統信息。uname -a 顯示本機詳細信息。依次爲:內核名稱(類別),主機名,內核版本號,內核版本,內核編譯日期,硬件名,處理器類型,硬件平臺類型,操做系統名稱

相關文章
相關標籤/搜索