linux基础及常用命令的使用
linux系統是一個主要使用命令進行日常工作的系統,所以了解并熟練掌握常用命令的使用是進入linux大門的基本,以下便是linux學習過程中學習的常用的命令的用法:
linux的日常管理工作一般有如下幾個部分,下面通過這幾個方面的管理工作來整理與其相關的常用命令;
一 ?shell的介紹
1.普通用戶需要直接使用計算機系統提供的功能,是非常困難的,因為計算機系統能接收的指令和人發出的指令是不相同的,因此需要在計算機系統及用戶之間建立一個可以將相互的指令進行“翻譯”的功能。shell就是一個人機交互的接口,用戶通過shell,可以完成與計算機的對話。
根據界面的不同,可將shell分為兩種,圖像化接口(GUI)和命令行接口(CLI);
常用圖形化接口(GUI)
Gnome、KDE、xfce
常用命令行接口(CLI)
bsh、csh、tcsh、ksh、bash、zsh
在linux中命令行接口shell的種類非常的多,在大多數的linux的發行版本中默認使用的shell是bash。
2.bash的基礎特性
2.1 命令歷史:
當用戶在bash中輸入一個命令時,shell會在環境變量中找到命令對應的可執行的文件,并提交給系統執行,執行完成后并將結果返回給用戶,bash會將用戶執行過的命令記錄在緩沖區中,以便下一次執行此命令是可以更加快速的在緩沖區中找到,這種命令的記錄被稱為命令歷史。
當你在shell中輸入并執行命令時,shell會自動把你的命令記錄到歷史列表中,一般保存在用戶主目錄下的.bash_history文件中。默認保存1000條,你也可以更改這個值。
2.1.1 ?命令歷史管理:
命令歷史的管理,其實是對相關的環境變量的參數進行調整,環境變量的調整分為三種,在/etc/profile文件中進行修改對所有用戶永久生效、/home/USERNAME/.bash_profile文件中修改的設置對此用戶永久有效、使用”export 變量名=變量值“命令進行修改對用戶當前會話有效
設置命令記錄的相關環境變量:
HISTSIZE:命令歷史記錄的條數;
HISTFILE:命令歷史文件路徑;
HISTFILESIZE:命令歷史文件大小;
2.1.2 ?查看及管理命令歷史的命令:
history :
命令常用選項:
-c:清空緩沖區中的命令歷史;
-d #: 刪除歷史中指定的命令,#代表命令歷史列表中命令的號碼;
-a: 把緩沖區中新的命令歷史手動追加到命令歷史文件中;
-r:將 histfiles 的內容讀到當前shell的緩沖區中;
-w:將當前緩沖區中的命令歷史寫入命令歷史文件中;
2.1.3 ?調用過去執行過的命令:
!#:調用歷史中的第#條命令;
!!: 重復執行上一條命令
!string:調用歷史中最近一個以string開頭的命令;
2.1.4 ?調用過去執行過的命令的最后一個參數:
!$
ESC+.
2.2 命令補全(TAB鍵):
補全為兩種,命令補全及路徑補全;
命令補全時,命令的搜索路徑為環境變量$PATH, 搜索后將結果以hash算法存入緩存中;
使用TAB鍵可以進行補全,兩次TAB鍵將顯示以輸入的部分字符開頭的所有命令,如果是路徑補全,使用方法相同;
使用命令補全,可以提升命令輸入的效率,也可以防止手動輸入的失誤。
2.3 命令展開:
~: 展開為當前用戶的主目錄;
~USERNAME:展開為指定用戶的家目錄;
{}:可承載一個以逗號分隔的列表,并其展開為多個路徑;
2.4 命令的執行結果
命令執行成功:0
命令執行失敗:1-255
bash使用特殊變量$?保存最近一條命令的狀態結果;
查看命令執行的狀態:
[root@localhost ~]# echo $?
2.5 命令別名
命令別名:命令的另一個引用名稱;
命令別名涉及到的兩個命令:
alias/unalias
alias: 查看所有已經定義別名;
alias ALIASNAME=COMMAND:定義別名;
unalias ALIASNAME:撤銷定義的別名
例如:[root@localhost ~]# alias cls=clear ? ?將clear設置一個命令別名為cls的引用
[root@localhost ~]# unalias cls ? ? ?將設置的cls命令別名取消
兩種設置可以使用 alias 命令查看效果
如果別名同原命令名,想直接執行原命令,則需使用\COMMAND
二 ?linux命令簡介
1. linux命令分類:
1.1 內部命令(shell的內建命令)
1.2 外部命令 由第三方提供的工具類程序
1.3 使用type可以查看命令的類型
type命令的格式: type [COMMAND]
例如:[root@localhost ~]# type cd
? cd is a shell builtin ? 顯示此信息說明為shell的內建命令,顯示結果如不是此信息則為外部命令
2. linux命令使用格式:
COMMAND [OPTION]... [ARGS]...
選項:用戶啟用或關閉命令的某個或某些功能;
短選項:-CHARACTER
-l, -h
Note: 多個短選項如果不合并,則彼此間要有空白字符分隔;可合并,合并時使用一個-引導,例如-lh;有些短選項自己也需要帶參數,這叫選項參數;
長選項:--word
--human-readable, --help
參數:命令的作用對象;
?向命令提供數據;
3. 外部命令路徑位置查看工具:
which:
which [options] [--] programname [...]
--skip-alias:禁止列出別名
whereis COMMAND:
顯示二進制程序、源碼文件以及幫助手冊的路徑;
三 ?linux 命令的幫助
1. 命令的幫助參考
內部命令: # help COMMAND
外部命令:
(1) 命令自帶的簡單幫助
# COMMAND --help
# COMMAND -h
(2) 命令手冊頁
# man [CHPATER] KEYWORD
(3) 信息頁
# info COMMAND
(4) 程序自身的幫助文檔
README、INSTALL、Change
(5) 程序官方提供的Documentation
(6) 發行版官方提供的文檔
(7) Google,baidu搜索網絡提供的信息
2. man手冊的使用
2.1 man手冊有九種類型,如下:
man1, ..., man9
man1: 用戶命令;
man2: 系統調用;?
man3:C庫調用;
man4: 設備文件及特殊文件;
man5: 配置文件格式;
man6: 游戲;
man7:雜項;
man8: 管理命令;
2.2 使用whereis COMMAND 可以查看此命令有哪幾個類型的man文件
例如:[root@localhost ~]# whereis uniq
uniq: /usr/bin/uniq /usr/share/man/man1/uniq.1.gz /usr/share/man/man1p/uniq.1p.gz
uniq 這個命令有man1 用戶命令使用的幫助文件;
2.3 man手冊的查看操作方法:
Space: 向文件尾部翻一屏;
b: 向文件首部翻一屏;
d: 向文件尾部翻半屏;
u: 向文件首部翻半屏;
Return:向文件尾部翻一行;
k或y:向文件首部翻一行;
#: 快速轉到第#行;
1G:回到第一行;
G:到最后一行;
q: 退出;
文本搜索:
/keyword:從當前位置向尾部搜索
?keyword:從當前位置向首部搜索
n:與命令方向相同
N:與命令方向相反
2.4 其它幫助方法
info命令:
info COMMAND
程序自身的幫助文檔:
/usr/share/doc/NAME-VERSION
程序官方文檔:
發行版的官方文檔:
四 ?linux目錄管理
1. linux的目錄結構
linux使用根文件系統(rootfs)對目錄結構進行管理
linux的各發行版遵照LSB制定的FHS對目錄結構進行組織,其目錄的結構及目錄的內容如下:
/boot: 引導文件存放目錄,例如kernel(vmlinuz)、bootloader(grub, grub2);
/bin: binary,供用戶使用的基本的命令;OS啟動即會用到程序;
/sbin:管理類的基本命令;
/lib: 基本共享庫;內核模塊;
/lib64:x86_64系統的共享庫;
/etc:配置文件目錄;
/home/USERNAME: 普通用主目錄的默認位置;
/root: 管理員的主目錄;
/media:便攜式移動設備;
/mnt:臨時文件系統掛載點;
/opt: 可選目錄,第三方應用程序的默認安裝位置;
/dev:devices,設備文件
b:block devices,random access
c: character deivces,linear access
/proc:
偽文件系統;用于輸出內核與進程的相關信息;
/sys:
偽文件系統;
/srv:services,系統上運行服務用到中間數據;
/tmp:臨時文件目錄;
/usr:Universal Shared, Read-only data;
bin:保證系統提供基本功能;
sbin
lib
lib64
include: C程序的頭文件;header files
share:結構化的獨立數據
doc, man
local:現在常用的第三方程序的安裝位置;
bin
sbin
lib
lib64
etc
share
/var:variable data files
cache:應用程序緩存數據
lib:應用程序的狀態信息數據
local:專用于為/usr/local下的應用程序存儲可變數據;
lock:鎖文件
log:日志文件
opt:專用于/opt
spool:應用程序的數據池;
run:運行中的進程的相關數據;通常用守護進程 的pid文件;
/selinux
2. 目錄管理命令簡介
2.1 cd (change directory)改變目錄
cd ~: 回主目錄
cd ~USERNAME:切換指定用戶的家目錄
cd -: 回到上一次所在目錄
例如:[root@localhost ~]# cd /etc/sysconfig/network-scripts/ ?切換當前目錄為:/etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cd ~ ?將當前目錄切換為用戶的主目錄
[root@localhost ~]# cd - ? ? ?返回前一次的當前目錄
2.2 pwd ?顯示當前工作目錄
[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts 是用戶當前的工作目錄
2.3 ls ?列出指定目錄中的文件及目錄的信息
命令使用格式:ls [OPTION]... [FILE]...
-l:使用長格式顯示目錄及文件的信息
例如:[root@localhost network-scripts]# ls -l /usr/share/doc/
drwxr-xr-x. ?2 root root 4096 Aug 21 03:55 abrt-2.0.8
d 為目錄型文件
rwxr-xr-x. 權限
2 ?被硬鏈接的次數
root root ?目錄的屬主和屬組
4096 ?目錄的大小(默認為字節)
Aug 21 03:55 ?被修改的時間戳
abrt-2.0.8 ?文件名
-d:顯示目錄自身屬性(跟-l選項同時使用)
-h: human-readable(將列出的文件或目錄大小以易讀的格式顯示,跟-l選項配合使用)
-a:顯示所有文件,包括.開頭的隱藏文件
.: 當前目錄
..: 父目錄
-r: reverse,逆序顯示
-R: recusive,遞歸
例如:[root@localhost ~]# ls -lh /boot
-rw-r--r--. 1 root root 105K Jul 24 00:13 config-2.6.32-573.el6.x86_64
drwxr-xr-x. 3 root root 1.0K Aug 21 03:59 efi
drwxr-xr-x. 2 root root 1.0K Aug 21 04:23 grub
-rw-------. 1 root root ?27M Aug 21 04:01 initramfs-2.6.32-573.el6.x86_64.img
-rw-------. 1 root root 5.2M Aug 21 04:23 initrd-2.6.32-573.el6.x86_64kdump.img
drwx------. 2 root root ?12K Aug 21 03:51 lost+found
-rw-r--r--. 1 root root 202K Jul 24 00:14 symvers-2.6.32-573.el6.x86_64.gz
-rw-r--r--. 1 root root 2.5M Jul 24 00:13 System.map-2.6.32-573.el6.x86_64
-rwxr-xr-x. 1 root root 4.1M Jul 24 00:13 vmlinuz-2.6.32-573.el6.x86_64
2.4 mkdir 創建目錄
命令使用格式:mkdir [OPTION] /PATH/TO/SOMEWHERE
常用選項:-p:創建父目錄(如果創建目錄時,上一級目錄不存在,則可以使用-p進行遞歸創建)
?-v: 顯示創建過程
例如1:[root@localhost ~]# mkdir -pv /tmp/testmk/test1?
mkdir: created directory `/tmp/testmk'
mkdir: created directory `/tmp/testmk/test1'
例如2: [root@localhost ~]# mkdir -pv /tmp/mkdirkz/{x,y}_{m,n}
mkdir: created directory `/tmp/mkdirkz'
mkdir: created directory `/tmp/mkdirkz/x_m'
mkdir: created directory `/tmp/mkdirkz/x_n'
mkdir: created directory `/tmp/mkdirkz/y_m'
mkdir: created directory `/tmp/mkdirkz/y_n'
使用bash的命令展開的特性,進行批量的目錄創建
2.5 rmdir 刪除目錄?
命令使用格式:rmdir /PATH/TO/SOMEWHERE
此命令只刪除空目錄
2.6 tree 以樹形的方式列出指定目錄結構
此命令如果系統中沒有,則需要自行安裝
命令使用格式:tree [OPTION]... [DIR]
選項: -d:只列出目錄;
? -L level: 列出指定目錄的指定層數的文件和目錄;
? -f:以全路徑的方式列出
? -i:結合-f選項一起使用,列出目錄結構,但不顯示分支線
? -p:顯示權限
? -s:顯示文件大小
? -h:以易懂的方式顯示文件大小
五 ?linux文本文件操作
1. linux中文件的類型
計算機的一切資源在linux中都是文件,所以在linux中有如下幾種文件類型:
?-(f):普通文件
d: 目錄文件
b: 塊設備文件
c: 字符設備文件
l: 符號鏈接文件
p: 命名管道文件
s:套接字文件
2. linux中文件的時間戳類型
構成一個文件有兩種數據,一種是存儲在文件的數據本身,另一種則是元數據,元數據指的是文件的與屬性相關的信息
每個文件都有三個時間戳:
atime: 文件最近一次被訪問的時間;
mtime: 文件最近一次被“修改”的時間;
修改指的是文件的數據本身被修改
ctime:文件最近一次被“改變”的時間;
改變指的是文件的元數據發生的變化
任何一個除ctime之外的時間戳發生變化,ctime時間也會相應的發生變化,因為時間戳本身就是文件的元數據
3. 文件管理常用命令
cp ?復制制定的文件或目錄至指定位置
命令的使用格式:
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
常用選項:
-r, -R: 遞歸復制;
-d: 不跟蹤符號鏈接;
--preserve[=ATTR_LIST]:
mode, ownership, timestamps
context, links, xattr, all
-a: -dR --preseve=all
-i: interactive
-f: force
-v: 顯示過程
當復制文件時,目標存在,為目錄,則復制至目標目錄下
?目標不存在,則以此文件名命名文件,并復制源文件的內容
?目標為文件且存在,則將內容覆蓋為源文件的內容
,且源有多個,則目標必須為目錄,如果目標目錄中有相同的文件則覆蓋
當復制目錄時,目標存在為目錄則疊加
? 目標為文件則不能成功
??
mv ?移動制定的文件或者目錄
如果移動的源目錄及目標目錄相同,則使用此命令的效果相同于重命名
命令使用格式:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用選項:
-i:交互式
-f:強制
rm ?刪除指定的文件及目錄
命令使用格式?
rm [OPTION]... FILE...
常用選項:
? ? -r:?
? ? -f:
? ? -i:
使用 rm -rf / ?命令,系統默認會對/進行特殊的對待
touch 管理文件的時間戳
命令格式: touch [OPTION]... FILE... 默認將時間修改為當前系統時間
-a: 只更新atime
-m: 只更新mtime
-t STAMP:
[[CC]YY]MMDDhhmm[.ss]
-c: 不創建空文件
file 文件類型查看
命令格式:file /PATH/TO/SOMEWHERE
stat 顯示文件及文件系統的狀態
命令格式:stat [OPTION]... FILE...
4. 文本文件查看工具
cat和tac
cat [OPTION]... [FILE]...
-n:顯示行數
-e: -vE
-E: 顯示行結束符
-v:顯示非打印字符
more, less
翻屏查看;
more [OPTIONS]... FILE...
-d: 顯示翻頁有退出提示
Space: 向后一屏;
Enter: 向后一行;
b: 向前一屏;
less [OPTION]... FILE...
文本搜索:
/KEYWORD 當前位置至文件尾部
?KEYWORD 當前位置至文件首部
n: 與命令方向相同的下一個;
N:與命令方向相反的前一個;
head和tail:
head [OPTION]... FILE
tail [OPTION]... FILE
-n # 顯示文件的前/后行數
-# 非標準寫法
-c #: 顯示前/后#個字節
tail的專用選項:
-f: follow 跟進追加進文件的行,常用于監控日志
5. 文本文件的處理工具
wc:單詞數目統計命令
命令使用格式:wc [OPTION]... FILE...
-l: 顯示行數
-w: 顯示單詞數
cut:文件切割命令
cut OPTION... [FILE]...
-d: 指明分隔符;-d' ', -d:
-f:指明要顯示的字段
#:?
#-#:1-3
#,#: 1,3,7
sort:以文件中的字段為關鍵字,對文件進行排序
sort [OPTION]... [FILE]...
-r: 逆序
-f: 忽略字符大小寫
-u: 排序后去重
-t CHAR: 指明分隔符
-k #: 字段
-n: 表示以數值大小排序
uniq:報告或者忽略重復的行
uniq [OPTION]... [FILE]...
-c: 顯示每行重復的次數;
-d: 只顯示重復過的行;
-u: 只顯示不曾重復的行;
六 ?簡單系統設置命令
1. 時間及日期
RTC:RealTime Clock
System Clock:系統時鐘
date: 系統時間
clock, hwclock: 硬件時間
date:
date [OPTION]... [+FORMAT]:時間顯示
FORMAT
%F
%D
%T
%H
%M
%S
? ? ? ? date [MMDDhhmm[[CC]YY][.ss]]:時間設置
? ? ? ? hwclock
? ? ? ? -s: hctosys, 以硬件時鐘為準,調整系統時間同硬件;
? ? ? ? -w:systohc, 以系統時鐘為準
? ? ? ? cal:
? ? ? ? cal [YEAR]
2. 查看當前系統被使用的信息
whoami
who
w
3. 關閉及重啟計算機
關機或重啟
? ? 關機:halt, poweroff, init 0, shutdown -h TIME
? ? 重啟:reboot, init 6, shutdown -r TIME
? ? shutdown?
? ? shutdown [OPTIONS...] [TIME] [WALL...]
? ? -r: 重啟
? ? -h: 關機
? ? --no-wall
? ? -c
TIME:
+m: 相對時長之后執行相應操作;單位是分鐘;
HH:MM 絕對時間
七 ?bash的基礎特性(02)
(1) glob
文本名“通配”
*:匹配任意長度的任意字符;
?:匹配任意單個字符;
a*b: aab, ab, a123b;?
a?b:?
[]: 匹配指定范圍內的任意單個字符;
[0-9]
[^]:匹配范圍外的任意單個字符;
[^a-b]
字符集合:
[:lower:] ?表示所有小寫字母
[:upper:] ?表示所有大寫字母
[:alpha:] ?表示所有的字母
[:alnum:] ?字母和數字
[:digit:] ?表示所有數字
[:space:] ?表示空白字符
[:punct:] ?表示所有標點符號
例如:ls /etc/[^[:alpha:]][:alpha:]*
ls /etc/[^a-zA-Z][a-zA-Z]*
表示為:顯示/etc/目錄下,以非字母開頭,后面跟了一個字母及其它任意長度任意字符的文件或目錄;
例如:[root@localhost tmp]# cp -r /etc/*.d /tmp/mageedu.com/
表示為:復制/etc目錄下,所有以.d結尾的文件或目錄至/tmp/mageedu.com目錄中;
(2) 組合鍵
Ctrl+l:清屏
Ctrl+a: 切換至命令行首
Ctrl+e:切換至命令行尾
Ctrl+c:取消命令執行
Ctrl+u:刪除光標所在處至行首的內容;
Ctrl+k: 刪除光標所在處至行尾的內容;
(3) IO重定向和管道
程序:指令+數據
讀入數據:Input
輸出數據:Output
打開的文件都一個fd:file descriptor
標準輸入:keyboard, 0, /dev/stdin
標準輸出:monitor, 1, /dev/stdout
標準錯誤輸出:monitor, 2, /dev/stderr
I/O重定向:
輸入重定向
輸出重定向:
COMMAND > NEW_POS, COMMAND >> NEW_POS
>:覆蓋重定向;
>>:追加重定向;
set -C
如果覆蓋重定向目標文件存在,則禁止執行;
>|
set +C
錯誤重定向:
2>:覆蓋
2>>:追加
同時重定向標準輸出流和錯誤輸出流:
COMMAND > /path/to/file.out 2> /path/to/file.err
COMMAND > /path/to/file.out 2>&1
COMMAND &> /path/to/file.out
輸入重定向:
<
tr命令: 將set1 替換成 set2
tr [OPTION]... SET1 [SET2]
-d: 刪除字符 (刪除字符時只有一個字符集合)
例如:[root@localhost tmp]# ls /tmp | tr a-z A-Z
表示為: 顯示/tmp目錄下的文件和目錄,并且使用大寫字母替換小寫字母
Here Document:<<
cat >> /path/to/somefile << EOF
管道:
COMMAND1 | COMMAND2 | ... ?:將COMMAND1的結果輸送至COMMAND2的參數
轉載于:https://blog.51cto.com/velen38/1688199
總結
以上是生活随笔為你收集整理的linux基础及常用命令的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU 1867 A + B for y
- 下一篇: linux编译安装git