1. 在linux中bash指的是什麼
bash shell是sh shell的增強版本,目前linux大部分使用的都是bash shell。
2. linux命令歷史
查看命令歷史用history命令,歷史命令只有在注銷的時候,才會被更新到~/.bash_history這個系統歷史命令記錄文件中;當你下次以bash登錄Linux的時候,系統會主動由當前用戶的~/.bash_history文件讀取歷史命令的記錄。
history命令用法:
history 數字
列出最近的n條命令;
history -w
將目前的歷史記憶的內容強制立即寫入~/.bash_history文件中;
history -c
將目前所有的歷史命令記錄全部清除。
你好,
1、修改/etc/profile將HISTSIZE=1000改成0或1
清除用戶home路徑下。bash_history
2、立即清空里的history當前歷史命令的記錄
history -c
3、bash執行命令時不是馬上把命令名稱寫入history文件的,而是存放在內部的buffer中,等bash退出時會一並寫入。
不過,可以調用'history -w'命令要求bash立即更新history文件。
history -w
後續操作的刪除命令只會刪除當前用戶的操作命令,並不會影響其他用戶。
在提示符後輸入命令history,就可以查看到當前用戶的歷史操作命令。圖中所示的是目前系統保存到root用戶輸入的377條命令。
在提示符下輸入命令history -c就可以刪除歷史操作命令。再用history命令查看,發現歷史操作命令已刪除。
如果希望系統不再保存歷史操作命令,就必須更改配置文件目錄下的配置文件profile。首先使用vi編輯器打開該文件。
找到HISTSIZE這個值,默認情況下歷史命令將保存1000條,可以將該值改為0,然後保存並退出,最後重啟系統使得配置文件生效。
6重啟完成後,再次使用命令history查看,發現系統已不再記錄命令。
linux的bash內部命令history就可以顯示命令行的命令歷史,默認環境執行 history
命令後,通常只會顯示已執行命令的序號和命令本身。
如果想要查看命令歷史的時間戳,那麼可以執行:
# export HISTTIMEFORMAT='%F %T '
# history | more
1 2008-08-05 19:02:39 service work restart
2 2008-08-05 19:02:39 exit
3 2008-08-05 19:02:39 id
這樣顯示的格式就變成,序號 - 時間 - 命令行。
history的其他的一些基本功能:
1、使用 HISTSIZE 控制歷史命令記錄的總行數
將下面兩行內容追加到 .bash_profile 文件並重新登錄 bash shell,命令歷史的記錄數將變成 450
條:
# vi ~/.bash_profile
HISTSIZE=450
HISTFILESIZE=450
2、使用 HISTFILE 更改歷史文件名稱
默認情況下,命令歷史存儲在 ~/.bash_history 文件中。添加下列內容到 .bash_profile 文件並重新登錄
bash shell,將使用 mandline_warrior 來存儲命令歷史:
# vi ~/.bash_profile
HISTFILE=/root/mandline_warrior
3、使用 HISTCONTROL 從命令歷史中剔除連續重復的條目
在下面的例子中,pwd 命令被連續執行了三次。執行 history 後會看到三條重復的條目。要剔除這些重復的條目,可以將
HISTCONTROL 設置為 ignoreps:
# export HISTCONTROL=ignoreps
4、使用 HISTCONTROL 清除整個命令歷史中的重復條目
上例中的 ignoreps 只能剔除連續的重復條目。要清除整個命令歷史中的重復條目,可以將 HISTCONTROL 設置成
eraseps:
# export HISTCONTROL=eraseps
5、使用 -c 選項清除所有的命令歷史
如果你想清除所有的命令歷史,可以執行:
# history -c
6、使用 HISTIGNORE 忽略歷史中的特定命令
下面的例子,將忽略 pwd、ls、ls -ltr 等命令:
# export HISTIGNORE=」pwd:ls:ls -ltr:」
history命令可以用來顯示曾執行過的命令。
執行過的命令默認存儲在HOME目錄的.bash_history文件中,可以通過查看該文件來獲取執行命令的歷史記錄。需要注意的是.bash_history不包含當前會話所執行的命令,執行過的命令在關機時才會寫入文件,除非執行命令history -w。
了解linux基礎命令,另外你是感興趣的話可以看下劉遄老師寫的《Linux就該這么學》作為入門的書籍,覺得不錯的話採納下哦~。
可以使用History命令,主要用於顯示歷史指令記錄內容, 下達歷史紀錄中的指令 。
1、History命令語法:
[test@linux]# history [n]
[test@linux]# history [-c]
[test@linux]# history [-raw] histfiles
參數:
n:數字,要列出最近的 n 筆命令列表
-c:將目前的shell中的所有 history 內容全部消除
-a:將目前新增的history 指令新增入 histfiles 中,若沒有加 histfiles ,
則預設寫入 ~/.bash_history
-r:將 histfiles 的內容讀到目前這個 shell 的 history 記憶中
-w:將目前的 history 記憶內容寫入 histfiles
Linux系統在shell(控制台)中輸入並執行命令時,shell會自動把命令記錄到歷史列表中,一般保存在用戶目錄下的.bash_history文件中。默認保存1000條,也可以更改這個值。
如果鍵入history, history會顯示所使用的前1000個歷史命令,並且編了號,會看到一個用數字編號的列錶快速從屏幕上卷過。可能不需要查看1000個命令中的所有項目, 當然也可以加入數字來列出最近的 n 筆命令列表。
linux中history命令不僅僅可以查詢歷史命令而已. 還可以利用相關的功能來幫執行命令。
2、運行特定的歷史命令
history會列出bash保存的所有歷史命令,並且編了號,可以使用「嘆號接編號」的方式運行特定的歷史命令.
語法說明:
[test@linux]# [!number] [!mand] [!!]
參數說明:
number :第幾個指令的意思;
mand:指令的開頭幾個字母
! :上一個指令的意思!
3、History命令實戰
列出所有的歷史記錄:
[test@linux] # history
只列出最近10條記錄:
[test@linux] # history 10 (注,history和10中間有空格)
使用命令記錄號碼執行命令,執行歷史清單中的第99條命令
[test@linux] #!99 (!和99中間沒有空格)
重復執行上一個命令
[test@linux] #!!
執行最後一次以rpm開頭的命令(!? ?代表的是字元串,這個String可以隨便輸,Shell會從最後一條歷史命令向前搜索,最先匹配的一條命令將會得到執行。)
[test@linux] #!rpm
逐屏列出所有的歷史記錄:
[test@linux]# history | more
立即清空history當前所有歷史命令的記錄
[test@linux] #history -c
除了使用history命令,在 shell 或 GUI 終端提示下,也可以使用上下方向鍵來翻閱命令歷史(向下箭頭會向前翻閱),直到找到所需命令為止。這可以很方便地編輯前面的某一條命令,而不用重復輸入類似的命令。
3. linux shell 內置命令的作用,存放在哪裡
shell的內置指令,默認狀況下bash有50多個內置命令,一般存放在/sbin, /bin, /usr/bin,這幾個目錄中。命令詳情可查看 Linux命令大全 。
4. bash(shell)命令解釋器,Linux界面介紹
Linux bash命令行:bash命令行解釋器或者翻譯官,命令行輸入命令都是由bash解釋執行的。
一、命令行
二、查詢當前登錄的用戶:
root
三、查詢當前用戶主機名:
oldboy
四、查詢當前用戶所在的路徑:
/root
五、切換用戶:
#切換到oldboy用戶
(#$是普通用戶的提示符。一般大臣,布衣。)
oldboy
六、符號的意思
~ 用戶家目錄
- 上一次所在的目錄
. 表示當前目錄
.. 上一級目錄
../.. 表示上一級的上一級目錄
5. Linux系統入門-Bash
Shell 是一種命令行解釋器, 其讀取用戶輸入的字元串命令, 解釋並且執行命令;它是一種特殊的應用程序, 介於系統調用/庫與應用程序之間, 其提供了運行其他程序的的介面;它可以是互動式的, 即讀取用戶輸入的字元串;也可以是非互動式的, 即讀取腳本文件並解釋執行, 直至文件結束. 無論是在類 UNIX, Linux 系統, 還是 Windows, 有很多不同種類的 Shell: 如類 UNIX, Linux 系統上的 Bash, Zsh 等; Windows 系統上的 cmd, PowerShell 等.
Bash 是 Bourne Again SHell 的縮寫, 是 GNU 計劃中的 Shell, 也是一些類 UNIX 系統與多數 Linux 發行版的默認 Shell
使用Shell可以實現對Linux系統實現絕大部分的管理,例如:
#獲取當前時間
[root@CentOS7 ~]# date
Mon Mar 15 22:59:47 CST 2021
#創建文件
[root@CentOS7 opt]# touch xcz
[root@CentOS7 opt]# ll
-rw-r--r--. 1 root root 0 Mar 15 23:01 xcz
#創建一百個文件,我們一般就會使用shell script進行創建
[root@CentOS7 opt]# cat touch.sh
#!/bin/bash
for n in `seq 100`;do
touch xcz$n &&
echo "文件xcz$n創建成功哦!"
done
[root@CentOS7 opt]# sh touch.sh
命令行輸入方式:效率較低,適用於工作量不大的工作;
shell script 腳本方式:效率高,適用於工作量大且復雜的工作。
[root@CentOS7 opt]# bash --version
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
'#39; = 普通用戶
'#' = root用戶(超級管理員)
#查看當前用戶
[root@CentOS7 ~]# whoami
root
#查看當前命令提示符
[root@CentOS7 ~]# echo $PS1
[u@h W]$
root:當前系統的用戶
CentOS7:當前系統的主機名
~:當前所在的位置
#:超級管理員身份(root用戶)
$:普通用戶
提示符參數及含義
d :代表日期;
H :完整的主機名稱
h :僅取主機名中的第一個名字
:顯示時間為24小時格式,如:HH:MM:SS
T :顯示時間為12小時格式
A :顯示時間為24小時格式:HH:MM
u :當前用戶的賬號名稱
v :BASH的版本信息
w :完整的工作目錄名稱
W :利用basename取得工作目錄名稱,只顯示最後一個目錄名
# :下達的第幾個命令
$ :提示字元,如果是root用戶,提示符為 "#" ,普通用戶則為 "#34;
#顏色
30 40 黑色
31 41 紅色
32 42 綠色
33 43 黃色
34 44 藍色
35 45 紫紅色
36 46 青藍色
37 47 白色
PS1='[e[32;40m] [[u@h w ]$ [e[0m]'
PS1="[e[37;40m][[e[32;40m]u[e[37;40m]@h [e[36;40m]w[e[0m]]$ "
PS1="[e[37;40m][[e[32;40m]u[e[37;40m]@[e[35;40m]h[e[0m] [e[36;40m]w[e[0m]]$ "
#提示符的應用
[root@CentOS7 ~]# vi .bashrc
#最後一行下面添加
PS1="[e[37;40m][[e[32;40m]u[e[37;40m]@[e[35;40m]h[e[0m] [e[36;40m]w[e[0m]]$ "
#使用source生效
[root@CentOS7 ~]# source .bashrc
#命令 選項 參數
command [-options] [arguments]
[root@CentOS7 ~]# ls -l /opt/
#命令:整條shell命令的主體
#選項:用於調節命令的具體功能
#以'-'引導段個事選項(單個字元),例如」-l「
#以'--'引導長格式選項(多個字元),例如」--list「
#多個短格式選項可以卸載一起,只用一個」-「引導,例如」-la「
#參數:命令操作與偶的對象,如文件、目錄名等
#命令必須開頭,選項和參數位置可以發生變化
我們在使用Linux系統進行查找一個多層級的文件時,我們可以使用鍵盤上的Tab鍵進行快速補全
補全的形式有:
#如果我們忘記網路配置文件具體路徑,那麼我們就可以使用補全的形式進行配置
[root@CentOS7 ~]# vi /etc/sysconfig/
anaconda cpupower grub irqbalance moles/ rdisc selinux
authconfig crond init kmp netconsole readonly-root sshd
cbq/ ebtables-config ip6tables-config kernel network rsyslog wpa_supplicant
console/ firewalld iptables-config man-db network-scripts/ run-parts
[root@CentOS7 ~]# vi /etc/sysconfig/network
network network-scripts/
[root@CentOS7 ~]# vi /etc/sysconfig/network-scripts/if
ifcfg-ens33 ifdown-eth ifdown-post ifdown-Team ifup-aliases ifup-ipv6 ifup-post ifup-Team
ifcfg-lo ifdown-ippp ifdown-ppp ifdown-TeamPort ifup-bnep ifup-isdn ifup-ppp ifup-TeamPort
ifdown ifdown-ipv6 ifdown-routes ifdown-tunnel ifup-eth ifup-plip ifup-routes ifup-tunnel
ifdown-bnep ifdown-isdn ifdown-sit ifup ifup-ippp ifup-plusb ifup-sit ifup-wireless
[root@CentOS7 ~]# vi /etc/sysconfig/network-scripts/ifcfg-
ifcfg-ens33 ifcfg-lo
[root@CentOS7 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
#如果你的Linux系統無法進行補全,那麼咱們可以安裝一個擴展包即可
[root@CentOS7 ~]# yum install -y bash-completion
clear #或者用快捷鍵 ctrl + l
ctrl+c #有些程序也可以用q鍵退出
ctrl+z # 進程會掛起到後台
bg jobid # 讓進程在後台繼續執行
fg jobid # 讓進程回到前台
Ctrl鍵+a #將當前游標移動到命令行的行首
Ctrl鍵+e #將當前游標移動到命令行的行尾
Ctrl鍵+u #將當前游標之前的所有字元剪切
Ctrl鍵+k #將當前游標之後的所有字元剪切
Ctrl鍵+w #將當前游標之前的字元剪切,以空格為結尾
Ctrl鍵+d #退出當前會話窗口
Ctrl鍵+z #將當前前台運行的程序,放到後台運行
Ctrl鍵+r #搜索 歷史 命令
Ctrl鍵+y #粘貼剪切板上的內容
Ctrl鍵+左右方向鍵 #向指定的方向鍵移動一組字元,以空格為分隔符
ESC鍵+. #使用上一條命令的最後的參數或者路徑,以空格為分隔符,空格之後的內容,delete鍵 從前往後刪除一個字元
!命令 #執行最近的一次以該命令為開頭的命令
!! #執行上一條命令
#使用格式:
[命令] + [--help] 或者[man] + [命令] 即可
#例如touch命令幫助
[root@CentOS7 ~]# touch --help
Usage: touch [OPTION]... FILE...
Update the access and modification times of each FILE to the current time.
A FILE argument that does not exist is created empty, unless -c or -h
is supplied.
A FILE argument string of - is handled specially and causes touch to
change the times of the file associated with standard output.
Mandatory arguments to long options are mandatory for short options too.
-a change only the access time
-c, --no-create do not create any files
-d, --date=STRING parse STRING and use it instead of current time
-f (ignored)
-h, --no-dereference affect each symbolic link instead of any referenced
file (useful only on systems that can change the
timestamps of a symlink)
-m change only the modification time
-r, --reference=FILE use this file's times instead of current time
-t STAMP use [[CC]YY]MMDDhhmm[.ss] instead of current time
--time=WORD change the specified time:
WORD is access, atime, or use: equivalent to -a
WORD is modify or mtime: equivalent to -m
--help display this help and exit
--version output version information and exit
Note that the -d and -t options accept different time-date formats.
GNU coreutils online help:
For complete documentation, run: info coreutils 'touch invocation'
6. linux下怎麼查看.bash
Linux系統默認開啟的終端,一般都是Bash Shell,可以通過如下命令確定當前運行的默認Shell。
echo $SHELL
說明:個人系統是Redhat Enterprise server5,默認使用的shell即為bash shell。
如果系統默認使用的不是bash shell,可以通過bash命令運行bash shell。
說明:圖中隨便輸入的命令,目的是讓shell執行出錯,通過出錯信息來確定bash命令是否成功執行。在bash中如果找不到命令開頭一定是"bash: "之類的信息。 通過上圖即可知道要運行bash shell,只需要執行bash命令即可。
7. 如何在Linux或macOS終端中使用Bash歷史
Bash是Linux系統(包括MacOS)默認的shell,它也可以安裝在Windows 10上,Bash shell可以保存你運行過的命令的歷史記錄,並將它們保存在歷史文件中。Bash在運行時,會將內部命令列表保存在內存中,在退出時會寫入bash歷史中。
在我們開始使用bash history之前,我們可以修改一些bash的設置來讓他更好使用。Bash允許我們修改它在歷史中存儲的先前命令的數量。
有兩種不同的方式處理:HISTFILESIZE 參數配置歷史文件中存儲了多少個命令,而HISTSIZE控制當前會話存儲在內存中的數量。
打開~ /.bashrc文 在編輯器中更改這些設置:
修改後使用快捷鍵Ctrl+O保存,回車寫入,Ctrl+X退出到nano。
為了查看我們最後運行的bash命令,我們可以使用許多擊鍵來獲得優勢並節省時間。
下箭頭或Ctrl+N:轉到下一個命令。多次點擊將顯示我們上次運行的命令。
多次敲擊相同的按鍵將通過我們使用的命令向後移動。
當你只記你之前輸入的命令的零散部分時候,這會很有幫助,有的系統是Ctrl+R
如圖所示,''被搜索,bash尋找歷史記錄中最後與之相匹配的命令。
我們可以使用grep命令來縮小搜索范圍。
我們甚至可以通過tail命令來查看最近五次使用的命令。
或者,我們甚至可以截斷tail命令,並簡單地傳遞我們想要查看的命令的數量。
將整個bash歷史顯示出來很不錯,但它並不能幫助我們輕松訪問這些命令,除非作為參考。如果我們想要執行bash歷史記錄中的第n個命令,比如第15個命令,輸入 !15就會立即回顧並執行與歷史記錄第15個關聯的命令。
現在我們很好地了解了如何利用bash提供的歷史操作,其中的某些方法很有效。
當我們需要找到某條命令的位置,如果知道bash具有這樣操作命令就非常方便了。
熟練掌握上面的命令可幫助我們提高工作效率喲!