linux常用的語言就是shell和python,首先我們得先了解語言的概念
<<-EOF
EOF
編寫一個簡單的bash檔如下:
我們可以看到用./執行bash檔時,沒有進入到/home目錄下,這種我們稱為 在子shell中執行 ,其不影響當前shell的狀況(有時候執行成功沒有效果的原因)。但是無論是. 執行還是source執行我們都成功進入了home路徑下,這我們稱之為 在當前shell執行
su nologinshell 不載入用戶的shell
su - loginshell 載入用戶的shell
可以很明顯的看出來,當用不載入用戶的shell載入用戶時,是不會具有當前載入用戶的許可權的,很像windows中的遊客模式
history歷史記錄緩存
~/.bash_history退出後寫入緩存
~/.bash_logout退出後執行
在這一層,順帶按圖索驥,理解一下linux系統開機的歷程。紅字:系統層開機/切換用戶歷程;藍字:用戶層開機/切換用戶歷程;黃字:用戶層關機歷程。
曾經玩過一個游戲:在用戶指令關機時,會有一輛小火車開過,所以我們可以把調用小火車開過的程式調用寫在?
1、命令和文件的自動補齊 shift
2、命令的歷史記憶功能:上下鍵、!number 執行第多少條命令、
!string 找到最近以string開頭的命令、!& 上一個命令最後的參數、
!! 執行上一個命令、^R 搜索歷史命令
3、別名功能:alias 查看別名、unalias 取消別名、(命名前加斜線跳過別名)
alias xx=』xx』 定義臨時別名、vim ~/.bashrc 定義永久別名
4.快捷鍵:^D 退出、^A 游標移動到命令最前、^E 游標移動到命令最後、
^L 清屏、^U 往前的刪掉、^K 往後的刪掉、^Y 撤銷、^M 回車
^S 鎖屏、^Q 解除鎖屏
5.前後台作業控制:& 後台不保留、nohup 後台保留、screen
; && || (命令返回值echo &?)
*任意多個字元
?任意一個字元
[]匹配括弧內任意一個字元
()在子shell中執行
{}集合
轉義字元
注意點:echo -e 「a b」
$? 前一條命令的執行成功與否
$1 傳入的第一個參數 $2 $3 位置變數
沒有使用環境變數的必要性
練習內容:讀取用戶指定文檔的ip連通性
bc計算器
假設我們定義了一個變數為:
記憶的方法為:
利用${ } 還可針對不同的變數狀態賦值(沒設定、空值、非空值):
⑵ Linux常見命令
許可權管理命令 chmod
英文願意: change the permissions mode of a file
語法: chmod[{ugoa}{+-=}{rwx}] [文件或目錄]
[mide = 421] [文件或目錄]
-R 遞歸修改
許可權的數字表示
r -- 4
w -- 2
x -- 1
rwxrw-r-- (4+2+1 = 7)
7 6 4
例子:mkdir /temp 創建了一個目錄
touch /temp/testfile 在該目錄下創建了一個test file文件
chmod 777 /temp 改變了一下該目錄的許可權
名稱: chgrp
英文原意:change file group ownership
語法:chgrp [用戶][文件或目錄]
功能: 改變文件或目錄的所屬租
例子: useradd hl // 添加所有者
groupadd brother // 添加所有組
charp brother text // brother變成了text文件的所屬組
注意:
1、所屬組就是創建這的所屬者的預設組
2、linux中創建的文件缺少x(可執行)為了使系統更加安全
mask
0022
0特殊許可權
022 ugo --- -w- -w-
1、文件搜索命令find
執行許可權:find
語法:find[搜索范圍][匹配條件]
功能描述:文件搜索
例子:
find /etc -name init (-iname 不區分大小寫)
find /home -user(-group) hl
在根目錄下查找所有者(所有組)為hl的文件
在目錄/etc中查找文件init
init init init // 通配符
?init (?匹配單個字元)
find / -size +204800
在跟目錄下查找大於100MB的文件 (100MB = 102400KB = 204800)
+n 大於 -n小於 n等於
find /etc -cmin -5
例子2:
find /etc -size + 163840 -a size -204800
在/etc下查找大於80MB小於100MB的文件
-a兩個條件同時滿足
-o兩個條件滿足任意一個即可
在/etc下查找5分鍾內被修改的屬性的文件和目錄
-amin 訪問時間 access
-cmin 文件屬性 change
-mmin 文件內容 modify
2、文件搜索指令 locate
命名名稱:locate
執行許可權:所有用戶
語法:locate 文件名
功能描述:在文件資料庫中查找文件
例子: $ locate inittab
輸出文件所在位置
locate和find的區別:
locate的查找速度很快,因為find是在分區和磁碟上查找,而locate是在資料庫中查找
注意:如果資料庫沒有實時更新,所以locate可能會查不到要查詢的文件。
即:
updatedb (升級文件的資料庫)
loocate -i 文件名 (-i 不區分大小寫)
3、文件搜索命令:which (更精確呦)
執行許可權:所有用戶
功能描述:搜索命令所在目錄及別名信息
例子: which ls
alias(別名)
4、whiereis
執行許可權:所有用戶
語法: whereis[命令名稱]
功能描述:搜索命令所在目錄及幫助文檔路徑
例子: whereis ls
5、grep
執行許可權:所有用戶
語法:grep -iv[指定字串][文件]
功能描述:在文件中搜索字元串匹配的行並輸出
-i 不區分大小寫
-v 排除指定字元串
例子 grep mysql /root/install.log
補充: linux中 # 表示注釋
命名名稱:man
英文原意:manual
執行許可權:所有用戶
語法:man[命令或配置文件]
功能描述:獲取幫助信息
例子: man ls # 查看ls命令的幫助信息
man services 查看配置文件sevices的幫助信息
補充:man 。。。。後
/-g :查詢與g有關的信息
空格進行翻頁
回車進行換行
按n繼續查找
命令名稱:useradd
執行許可權:root
語法:useradd 用戶名
功能描述: 添加新用戶
例子: useradd HF
命令名稱:passwd
執行許可權:所有用戶
語法:passwd 用戶名
功能描述: 設置用戶密碼
例子: passwd HF
命令名稱:who
執行許可權:所有用戶
語法:who
功能描述: 查看登錄用戶信息
例子: who
輸出內容含義:
登錄用戶名 登錄終端(tty本地登錄、pds表述遠程終端) 登錄時間 登錄主機ip地址
命令名稱:w
執行許可權:所有用戶
語法:w
功能描述: 查看登錄用戶詳細信息
例子: w
命令名稱:gzip
英文原意:GNU zip
執行許可權:所有用戶
語法:gzip[文件]
功能描述: 壓縮文件
壓縮後文件格式:.gz
解壓縮:gunzip 壓縮文件
注意:gizp只能壓縮文件,不能壓縮目錄
命令名稱:tar
執行許可權:所有用戶
語法:tar 選項 [-zcf] [壓縮文件名] [目錄]
-c 打包
-v 顯示詳細文件
-f 指定文件名
-z 打包同時壓縮
功能描述: 打包目錄
壓縮後文件格式:.tar.gz
命令名稱:zip
執行許可權:所有用戶
語法:zip 選項[-r][壓縮後文件名][文件或目錄]
-r 壓縮目錄
功能描述: 壓縮文件或目錄
壓縮後文件格式: zip
注意:zip是window和linux系統中通過用的壓縮格式
命令名稱:bzip2
執行許可權:所有用戶
語法:bzip2 選項 [-k] [文件]
-k 產生壓縮文件後保留有源文件
功能描述: 壓縮文件
壓縮後文件格式: .bz2
注意: bzip2的壓縮比例大,適用於壓縮較大的文件
bunzip2解壓縮
對目錄壓縮:tar.bz2
指令名稱:write
指令許可權:所有用戶
語法:write <用戶名>
功能描述:給用戶發消息 ,以ctrl + D保存
例子: write YX
命令名稱:wall
英文原意:write all
執行許可權:所有用戶
語法:wall [message]
功能描述: 發廣播信息
命令名稱:ping
執行許可權:所有用戶
語法:ping 選項IP地址
-c 指定發送次數
功能描述: 測試網路連通性
例子: ping 192.168.1.156
命令名稱:ifcongig
英文原意:interface configure
執行許可權:root
語法:ifconfig 網卡名稱 IP地址
功能描述:查看和設置網卡信息(設立之臨時IP)
例子: ifconfig etho 192.168.1.156
etch0 本地真實網卡
lo 回環網卡 (用來本機通信個測試的)
cncap:。。網路名稱是乙太網
HWaddr: 16進製表示的 48位的 網卡的物理地址
addr:當前計算機IP地址
Bcast:當前網路地址
Mask:子網掩碼
inet6 addr: 表示的是IPv6的地址信息
RX packets:接受數據包的總數量
TX packets:發送數據包的總數量
Base addtess: 網卡當中的物理位置
命令名稱:mail (郵件命令)
執行許可權:所有用戶
語法:mail [用戶名]
功能描述:查看發送電子郵件
發送:ctrl + D
查詢: mail
例子: mail root
[圖片上傳中...(-d00bb9-1591253201012-0)]
命令名稱:last
執行許可權:所有用戶
語法:last
功能描述:列出目前和過去登入系統的用戶信息
命令名稱:traceroute
執行許可權:所有用戶
語法:traceroute
功能描述:顯示數據包到主機的路徑
例子: traceroute www..con
命令名稱:netstat
執行許可權:所有用戶
語法:netstat [選項]
功能描述:顯示網路相關信息
選項:
-t : TCP協議
-u : UDP協議
-l : 監聽
-r : 路由
-n : 顯示IP地址和埠號
例子:
netstat -tlun 查看本機監聽的埠
netstat -an 查看本機所有網路鏈接
netstat -rn 查看本屆路由表
命令名稱:setup
執行許可權:root
語法:setup
功能描述:配置網路(永久生效)
例子: setup
注意:配置網路結束後要重啟網路服務
service network restart
掛在命令
命令名稱:mount
執行許可權:所有用戶
語法:mount[-t 文件系統] 設備文件
例子: mount -t iso9660/dev/sr0/mnt/cdrom
命令名稱:shutdown
[root@localhost~]#shutdown [選項] 時間
選項:- c : 取消前一個關機命令
- h:關機
- r :重啟
特點:可以正確的關閉和保存服務,建議實用
其他關機命令
halt
poweroff (直接斷電)
init 0
重啟命令
reboot
init6
補充:init _ 的數字含義
init0 關機
init1 單用戶(啟動最小最核心的服務)
init2 不完全多用戶,不含NFS服務(network file system 網路文件系統)
init3 完全多用戶
init4 未分配
init5 圖形界面
init6 重啟
查詢系統運行級別
runlevel
退出登錄命令
logout
⑶ linux命令行設置別名
命令行中輸入:
alias ll='ls -l' 那麼在這個終端中就可以用 ll 代替 ls -l 了(不會對別的終端生效)。
如果想對當前賬號長期生效,
命令行中輸入 unalias ll 臨時取消此別名設置
刪除或者注釋掉配置文件中的alias配置值 永久刪除
命令行輸入 alias 查看當前用戶設置的別名命令
⑷ Linux下文件搜索、查找、查看命令
1、最強大的搜索命令:find 查找各種文件的命令
2、在文件資料中查找文件:locate
3、搜索命令所在的目錄及別名信息:which
4、搜索命令所在的目錄及幫助文檔路徑:whereis
5、在文件中搜尋字元串匹配的行並輸出:grep
6、分頁顯示一個文件或任何輸出結果:more
7、分頁顯示一個文件並且可以回頭:less
8、指定顯示前多少行文件內容:head
9、指定顯示文件後多少行內容:tail
10、查看一個文件:cat
11、查看文件內容多少字元多少行多少位元組:wc
12、排序文件內容:sort
一、根據 文件或目錄名稱 搜索
find 【搜索目錄】【-name或者-iname】【搜索字元】:-name和-iname的區別一個區分大小寫,一個不區分大小寫
eg:在/etc 目錄下搜索名字為init的文件或目錄
①、find /etc -name init (精準搜索,名字必須為 init 才能搜索的到)
②、find /etc -iname init (精準搜索,名字必須為 init或者有字母大寫也能搜索的到)
③、find /etc -name *init (模糊搜索,以 init 結尾的文件或目錄名)
④、find /etc -name init??? (模糊搜索,? 表示單個字元,即搜索到 init___)
二、根據 文件大小 搜索
eg:在根目錄下查找大於 100M 的文件
find / -size +204800
這里 +n 表示大於,-n 表示小於,n 表示等於
1 數據塊 == 512 位元組 0.5KB,也就是1KB等於2數據塊
100MB == 102400KB204800數據塊
三、根據 所有者和所屬組 搜索
①、在home目錄下查詢所屬組為 root 的文件
find /home -group root
②、在home目錄下查詢所有者為 root 的文件
find /home -user root
四、根據 時間屬性 搜索
find 【路徑】【選項】【時間】
選項有下面三種:-amin 訪問時間
-cmin 文件屬性被更改
-mmin 文件內容被修改
時間:+n,-n,n分別表示超過n分鍾,n分鍾以內和n分鍾
eg:在 /etc 目錄下查找5 分鍾內被修改過屬性的文件和目錄
find /etc -cmin -5
五、根據 文件類型或i節點 搜索
-type 根據文件類型查找:
f表示文件,d表示目錄,l表示軟鏈接
eg:查找 /home 目錄下文件類型是目錄的
find /home -type d
-inum 根據i節點查找
eg:查找 /tmp 目錄下i節點為400342的文件或目錄
find /tmp -inum 400342
六、組合條件 搜索
這里有兩個參數:
①、-a 表示兩個條件同時滿足(and)
②、-o 表示兩個條件滿足任意一個即可(or)
範例:查找/etc目錄下大於80MB同時小於100MB的文件
find /etc -size +163840 -a -size -204800
語法:locate【文件名】 -i 不區分大小寫
注意:這里和 find 命令是有區別的,find是全盤檢索,而locate 是在文件資料庫中進行搜索。所以locate命令的執行要比find命令執行速度快很多。但是這里有個問題,文件資料庫是需要不斷更新的。我們新創建的文件如果不更新 文件資料庫,使用 locate 是查找不到的。
updatedb 手動更新資料庫,但是對於/tmp目錄下的新建文件,是更新不到文件資料庫的,因為/tmp目錄不屬於文件資料庫的收錄范圍。
eg:locate hcf
功能描述:搜索命令所在的目錄及別名信息
語法:which【命令】
eg:which ls
功能描述:搜索命令所在的目錄及幫助文檔路徑
語法:whereis【命令】
eg:whereis ls
功能描述:在文件中搜尋字元串匹配的行並輸出
語法:grep -iv 【指定字元串】【文件】
-i 不區分大小寫
-v 排除指定字元串
eg:查找 /root/install.log 文件中包含 mysql 字元串的行,並輸出
grep mysql /root/install.log
本搜索工具,根據用戶指定的模式,對目標文件逐行進行匹配檢查,列印匹配到的行
grep是在文件中搜索匹配的字元串,是在文件中進行內容搜索,這個命令後面用到的比較多
描述:
分頁顯示一個文件或任何輸出結果
用於查看純文本文件(較長的)格式
格式:
more[選項] 文件
less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向後移動,而且 less 在查看之前不會載入整個文件。
head[必要參數][選擇參數][文件]
用於顯示指定文件開始多少行內容
命令參數:
-n 10 顯示前10行
-n -10 正常輸出但不顯示最後的10行
eg:顯示new.txt的前兩行內容
head -n 2 new.txt
head -2 new.txt
tail[必要參數][選擇參數][文件]
用於顯示指定文件末尾多少行內容
命令參數:
-n 10 顯示後面10行
-f 持續刷新顯示的內容
eg:顯示new.txt的末尾兩行內容
tail -n 2 new.txt
tail -2 new.txt
eg:指定從第二行開始顯示
tail -n +2 new.txt
描述:一次顯示整個文件內容
cat 命令 用於查看純文本文件(較短)
cat [選項] [文件]…
描述:wc 命令默認情況下會列印換行符數、單詞數和字元數。
用法:wc [選項] [文件]
用法:sort [選項] [文件]
轉自: Linux下文件搜索、查找、查看命令_黃小小的博客-CSDN博客_linux 搜索
⑸ linux5 命令的別名在哪裡設置(詳細)
alias(中文稱為「別名」)允許使用更加簡短的名稱來重新定義 Linux 中的 Shell 命令,從而簡化命令行的輸入。如果經常與 CLI 打交道,那麼使用 alias 不僅會節省時間,而且也能提高效率,真是一舉兩得的好事。
基本用法: alias 的基本使用方法為:alias 新的命令='原命令 -選項/參數'。舉例說明,alias l=『ls -lsh' 將重新定義 ls 命令,現在只需輸入 l 就可以列目錄了。
獲知別名: 直接輸入 alias 命令會列出當前系統中所有已經定義的命令別名。
刪除別名: 要刪除一個別名,可以使用 unalias 命令,如 unalias l。
10 個實用的 Bash alias
2008-07-11 Toy Posted in Featured, TipsRSSTrackback
alias 即「別名」,為便於理解,你可以將其看成是一個命令的快捷方式。使用 alias 的最大好處是,可以簡化輸入,從而為你節省時間,並提高效率。定義的 alias 可以保存到 ~/.bashrc 文件中,以後在命令行中就可以直接使用了。
TechRepublic 介紹了 10 個 Bash alias,個人覺得都很實用:
ssh 別名 - alias server_name='ssh -v -l USERNAME IP ADDRESS',更改 server_name、USERNAME 及 IP 地址以適應你的需要。對於經常要使用 ssh 登錄遠程 shell 的同學來說,這是一個值得收藏的別名。
ls 別名 - alias ll='ls -l',另一個 alias la='ls -a'。意思很明顯,在此就不多作解釋了。
rm 別名 - alias rm='rm -i',這個別名讓你更加安全地執行刪除操作。
df 別名 - alias df='df -h',讓你以 MB 或 G 為單位查看磁碟的空間。
Firefox 別名 - alias ff1='/home/jlwallen/firefox/firefox' 及 alias ff2='/home/jlwallen/firefoxb3/firefox',適合使用兩個 Firefox 版本的朋友,如一個穩定版,另一個為測試版。
書簽別名 - alias fftr='/home/jlwallen/firefox/firefox http://linuxtoy.org',用於打開一個指定的網址。
文件別名 - alias emenu='aterm nano -e ~/.e16/menus/user_apps',如常常需要編輯的配置文件。
apt-get update 別名 - alias update='sudo apt-get update',使用其他 Linux 發行版的同學可以換一下其中的 sudo apt-get update。
rpm 批量安裝別名 - alias brpm='rpm -ivh ~/RPM/*rpm',便於同時安裝多個 rpm 包。
長路徑別名 - alias astart='cd ~/GNUstep/Library/AfterStep/start',對於需要經常訪問的路徑特別長的目錄也可為其定義別名。
更新
一些讀者的補充:
fcicq: alias convmv-utf8=」convmv -f gbk -t utf-8 –notest」 alias nano=」nano -w」 alias emerge=」sudo emerge」
lostsnow: alias ..=」cd ..」
zhuqin: 不想用 alias 時,可在該 alias 的命令前加 \。
⑹ linux 如何刪除命令別名
可以使用alias命令查看別名,然後使用unalias刪除,但是這樣刪除的,只可以在當前情況下有用。如果想徹底刪除,就需要修改配置文件。你查看這幾個地方,然後可以修改一下,或者刪除。/etc/profile,/etc/bashrc,~/.bashrc ~/.bash_profile,或者使用命令查找 grep -R alias /etc,一般配置都在/etc下面,然後查找到的就可以修改了。
⑺ Linux如何設置命令別名
通常情況下,系統中已經定義了一些命令別名,要查看已經定義的命令別名,可以使用alias命令:
# alias
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
用於設置系統別名的相關文件保存在/etc/profile.d/目錄中(系統別名目錄),使用以下方式可以查看:
#進入目錄/etc/profile.d/
# cd /etc/profile.d/
#查看目錄中的文件
# ls
許多時候管理員都會按自己的使用習慣定義命令別名。例如讓查看當前文件內容的命令兼容DOS中的查看文本命令type:
#為cat命令定義一個別名type
# alias type='cat'
#使用type命令查看文件alias.txt的內容
# type alias.txt
上面的命令中,先為cat命令定義了一個名為type的別名。當用戶使用命令type時,系統會自動使用cat命令將其替代
3.取消定義的別名
要取消已經定義好的命令別名,可以對別名使用unalias命令:
# unalias type
# type alias.txt
-bash:type: command not found
4.保存別名設置
當系統重新啟動或用戶重新登錄時,使用alias命令定義的別名將會丟失。可以在系統別名目錄中添加別名配置文件,但這種方式定義的別名對所有的用戶都生效,通常不建議使用這種方法。
如果要定義全局別名,通常建議將命令添加到全局配置文件/etc/profile中。例如定義全局別名:
# echo "alias type='cat'">>/etc/profile
這條命令將alias pg='cat'添加到文件/etc/profile中。
注意:在對/etc/profile這樣的系統配置文件進行操作時,一定要謹慎,否則有可能會損壞系統。因此上面的命令中使用的是">>"而不是">",">>"表示將內容追加到文件結尾。
如果某個用戶想要定義自己的命令別名,可以將命令添加到用戶家目錄中的文件.bash_profile中。例如要定義用戶自己的別名:
# echo "alias vi='vim'">>~/.bash_profile
source ~/.bash_profile 最後,退出並重新登陸以使定義生效。
⑻ alias命令在linux裡面是什麼意思
1、命令格式
查看命令別名:alias
設置命令別名:alias 別名='命令'
取消命令別名:unalias 別名
命令參數比較簡單,就不多做說明了,實際操作一下吧。測試是在ubuntu 12.04上進行的。
2、命令測試
顯示所有命令別名:
$ alias
查看系統命令別名
可以看到系統默認將平常最常用的命令ls設置了多個別名。
設置命令別名:
$ alias vi='vim'
$ alias rm='rm -i'
取消命令別名:
$ unalias rm
3、命令別名永久生效
上面直接在shell里設定的命令別名,在終端關閉或者系統重新啟動後都會失效,如何才能永久有效呢?辦法就是將別名的設置加入~/.bashrc文件,然後重新載入下文件就可以了。
$ vim ~/.bashrc
在文件最後面加入別名設置,如:alias rm=』rm -i』,保存後重新載入:
$ source ~/.bashrc
這樣就可以永久保存命令的別名了。因為修改的是當前用戶目錄下的.bashrc文件,所以這樣的方式只對當前用戶有用。如果要對所有用戶都有效,修改/etc目錄下的bashrc文件就可以了。在ubuntu 12.04下,這個文件是/etc/bash.bashrc。此外在ubuntu 12.04下,細看~/.bashrc文件,會發有這樣一段代碼:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
這個代碼的意思就是載入.bash_aliases文件,ubuntu已經幫我們考慮好了,所以也可以在用戶根目錄下新建一個文件.bash_aliases存放命令別名設置。
小結
alias這個命令是shell的內建命令,可以根據自己的使用習慣設置一些別名,需要注意的就是和其他命令沖突的情況。
⑼ 在linux中如何為一條命令取別名
使用命令:alias la='ls -a'這樣的話,輸入la,就是ls -a 的結果!
⑽ linux下alias聲明的命令別名的絕對路徑在哪
絕對路徑應該在$PATH變數的設置里。
比如$PATH變數設置為/bin和/sbin,就可以為這兩個目錄下的命令做別名。
可以在當前用戶下echo $PATH 看看結果。兩個目錄之間是用:分隔的