Linux最全最詳細常用基礎命令

一、系統目錄結構

bin (binaries)存放二進制可執行文件

sbin (super user binaries)存放二進制可執行文件,只有root才能訪問

etc (etcetera)存放系統配置文件

usr (unix shared resources)用於存放共享的系統資源

home 存放用戶文件的根目錄

root 超級用戶目錄

dev (devices)用於存放設備文件

lib (library)存放跟文件系統中的程序運行所需要的共享庫及內核模塊

mnt (mount)系統管理員安裝臨時文件系統的安裝點

boot 存放用於系統引導時使用的各種文件

tmp (temporary)用於存放各種臨時文件

var (variable)用於存放運行時需要改變數據的文件

二、基本命令
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 a.txt ../  將a.txt文件複製到上一層目錄中

 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  把">"左邊的輸出內容放到右邊的文件裏去,如果存在就覆蓋,如果不存在就創建
 vi 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  解包並解包

 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  統計文本字節數
 vi編輯器
 vi 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的值

 whoami  查詢當前登陸的用戶名
 which ls  查詢ls命令的$PATH路徑

 mkdir test && cd test
 只有在 && 左邊的命令返回真(命令返回值 $? == 0),&& 右邊的命令纔會被執行。
 只要有一個命令返回假(命令返回值 $? == 1),後面的命令就不會被執行。

 三、用戶管理命令
 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(會退出當前登錄用戶)

 四、網絡配置管理
 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 顯示建立相關鏈接的程序名

 五、常用系統管理命令
 1.磁盤/內存使用信息查看
 df -h  查看磁盤空間狀態信息
 du -sh *  查看指定目錄下所有子目錄和文件的彙總大小
 free  查看內存使用狀況

 2.進程管理
 top  查看實時刷新的系統進程信息
 ps -ef  查看系統中當前瞬間的進程信息快照
 ps -ef | grep myshell.sh  搜索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)
 文件權限管理:
 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 顯示本機詳細信息。
 依次爲:內核名稱(類別),主機名,內核版本號,內核版本,內核編譯日期,硬件名,處理器類型,硬件平臺類型,操作系統名稱

內容整理於Linux公社,原文鏈接https://www.linuxidc.com/Linux/2017-12/149314.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章