歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> linux基礎(五)

linux基礎(五)

日期:2017/3/3 12:29:24   编辑:Linux技術

現在看到bash,在寫這篇博客的時候已經是第二遍看了

type:bash的內置命令

不加任何參數時,會顯示是外部命令還是內部命令

-t:列出的字眼的意思

file:外部命令

alias:有別名

builtin:內部命令

-p:後面接的是外部命令,才會顯示完整的文件名

-a:將所有含name的命令都列出來,包括別名

命令的執行:

shell的變量功能

例如:username=/var/spool/mail/user ......$username....... 直接輸入$username代替

變量:就是以一組文字或符號等,來替代一些設置或是一串保留的數據

變量的顯示與設置:echo和unset

設置就是=號 XXX=yyyyy

雙引號和單引號:雙引號帶便原有的特性,單引號僅為一般字符

引號必須要配對,不管單雙

`:1旁邊的按鍵,命令行裡首先執行`後面的。

例:ll `whereis path` 先執行whereis

環境變量

env

主要注意以下幾個:

HOME:代表用戶的主文件夾

SHELL:告知目前這個環境使用的shell是哪個程序

HISTORY:記錄歷史信息的條數

MAIL:讀取郵件信箱文件

PATH:執行文件查找的路徑

LANG:語系數據

RANDOM:“隨機數”的變量

所有變量

set

PS1:提示符的設置

\d:顯示日期

\H:完整的主機名

\h:僅取主機名在第一個小數點前的名字

\T:顯示時間

\A:顯示時間

\u:目前賬戶名稱

\v:BASH的版本信息

\w:完整的工作目錄名稱

\W:列出工作目錄名稱

\#:執行的第幾個命令

\$:提示符 root為# 其他為$

export

自定義變量轉出環境變量

locale

影響顯示結果的語系變量

一般記住LANG和LC-ALL就可以了

系統默認的語系定義在/etc/sysconfig/i18n

變量的有效范圍

環境變量=全局變量

自定義變量=局部變量

變量鍵盤讀取、數組與聲明:

read:

-p:後面接提示符

-t:後面可以接“秒數”

read atest

this is a test

輸入了可以顯示

read -p 'please keyin your name:' -t 30 named

declare/typeset:

聲明變量的類型

-a:將變量定義為數組型

-i:將變量定義為整數數字型

-x:將變量變為環境變量

-r:將變量設置為只讀型

-p:單獨列出變量的類型

數組變量類型

array

與文件系統及程序的限制關系

ulimit

-H:嚴格的設置,必定不能操過這個數值

-S:警告設置

-a:列出所有的限制額度

-c:限制內核文件最大容量

-f:可以創建的單個文件最大容量

-d:可以使用的最大斷裂內存

....... 一般做ulimit -a就能看到怎麼做

變量內容的刪除、替代與替換

#代表刪除,從變量的最前面開始向右刪除,刪除最短的那個

##代表刪除最長的

echo ${path#/*bin:}

%從最後開始向前刪除,刪除最短那個

%%刪除最長那個

echo ${path%:*bin}

替換功能

echo ${path/bin/BIN} 替換第一個

echo ${path//bin/BIN} 替換所有

變量的測試與內容替換

echo ${username-root} 如果沒有username,那就取root

username=${username:-root} 如果用:後變量為空或未設置,都能以後面的內容替換

unset str

var=${str-newer} 得出var=newer str=

str=older

var=${str-newer} 得出var=older str=older

unset str

var=${str=newer} 得出var=newer str=newer

str=older

var=${str=newer} 得出var=older str=older

unset str

var=${str?無此變量}

命令的別名和歷史命令

alias、unalias

其實就一條:alias XXX=XXXX

如果要永久設置的話,一般是在~/.bashrc裡面

歷史命令

history

!!:執行上一個命令

!數字:代表執行地幾條

!file:代表找開頭是file的命令,執行

type -a 命令查找的順序

/etc/issue /etc/motd

/etc/issue:tty登陸的時候顯示的信息

/etc/motd:telnet登陸的時候顯示的信息

bash環境變量配置

login和non-login shell

用戶名和密碼登陸的是login 不用的是non-login

/etc/profile是系統整體設置

~/.bash_profile ~./bash_login ~/.profile屬於個人用戶設置

看/etc/profile文件

/etc/inputrc

一般不修改

/etc/profile.d/*.sh

擴展名為sh的文件

/etc /sysconfig/i18n

系統默認語系

這三個文件login shell只會讀取其中一個,順序如下

~/.bash_profile

~/.bash_login

~/.profile

改變/etc/profile和~/.bash_profile需要source來更新生效。

source filename:

etc/bashrc是redhat特有的

如果.bashrc被誤刪除了,可以復制etc/skel/.bashrc到家目錄 再進行修改

stty -a

列出目前環境的所有按鍵選項

^代表ctrl

eof:end of file 結束

intr:代表中斷

kill:代表刪除現在命令行上面的所有文字

quit:代表送出個quit信號

start:在某個程序停止後,重新啟動他的output

設置的話 stty XXX ^XXX

通配符

*:代表任意字符

?:代表一定有一個任意字符

[]:代表一定有括號裡面的一個字符

【-】:在編碼順序內癿所有字符

【^]:代表反向

例:找出 /etc/ 底下以 cron 為開頭癿檔名

ll -d /etc/cron*

數據流重導向

> >>

>代表正確的數據輸出到某個文檔內

>>代表累加形式

cat /etc/passwd>ls1 cat /etc/shadow>>ls1 (ls1的內容就會是passwd+shadow)的內容了

< <<

cat > catfile < ~/.bashrc

建立catfile,內容從.bashrc中得到

<<代表輸入特定字符結束

cat>test<<end

輸入end就會結束

管道命令

cut

-d:後面接分割字符

-f:依據-d

-c:指定的字符長度

cut -d ':' -f 3 /etc/passwd

cut -c 12-20 截取12-20這幾個字符

grep

搜尋文檔

-a:以text形式找

-c:計算找到的次數

-i:忽略大小寫

-n:輸出行號

-v:反向選擇

--color=auto:自動加亮標記

例:

last |grep 'root'

last | grep 'root' -v -n

sort

排序

-f:忽略大小寫

-b:忽略前面的空格

-M:以月份來排序

-n:以數字來排序

-r:反向排序

-u:有重復只列出一個

-t:分隔符

-k:以區間來排序

例:cat /etc/passwd |sort -t ':' -k 3 -n

重復只列出一個

uniq

-i:忽略大小寫

-c:計數

cat /etc/passwd | cut -d ':' -f 3| sort -n |uniq -c

wc:

計數

-l:列出行數

-w:列出英文單詞數

-m:列出字符數

tee:

雙重引導

-a:累加

例:last |tee /testfile

這個命令和>的區別就是會在屏幕上面顯示出來而已

字符轉換命令

tr:【-ds】

替代或者刪除信息

-d:刪除信息

-s:去掉重復的字符

cat /passwd |tr '[a-z][A-Z]'

col:把tab鍵轉成空格鍵

join:

有相同的字符時,可以連接起來

Copyright © Linux教程網 All Rights Reserved