十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
linux的bash內(nèi)部命令history就可以顯示命令行的命令歷史,默認(rèn)環(huán)境執(zhí)行 history
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名與空間、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、東源網(wǎng)站維護、網(wǎng)站推廣。
命令后,通常只會顯示已執(zhí)行命令的序號和命令本身。
如果想要查看命令歷史的時間戳,那么可以執(zhí)行:
# 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 控制歷史命令記錄的總行數(shù)
將下面兩行內(nèi)容追加到 .bash_profile 文件并重新登錄 bash shell,命令歷史的記錄數(shù)將變成 450
條:
# vi ~/.bash_profile
HISTSIZE=450
HISTFILESIZE=450
2、使用 HISTFILE 更改歷史文件名稱
默認(rèn)情況下,命令歷史存儲在 ~/.bash_history 文件中。
添加下列內(nèi)容到 .bash_profile 文件并重新登錄
bash shell,將使用 mandline_warrior 來存儲命令歷史:
# vi ~/.bash_profile
HISTFILE=/root/mandline_warrior
3、使用 HISTCONTROL 從命令歷史中剔除連續(xù)重復(fù)的條目
在下面的例子中,pwd 命令被連續(xù)執(zhí)行了三次。
執(zhí)行 history 后會看到三條重復(fù)的條目。
要剔除這些重復(fù)的條目,可以將
HISTCONTROL 設(shè)置為 ignoredups:
# export HISTCONTROL=ignoredups
4、使用 HISTCONTROL 清除整個命令歷史中的重復(fù)條目
上例中的 ignoredups 只能剔除連續(xù)的重復(fù)條目。
要清除整個命令歷史中的重復(fù)條目,可以將 HISTCONTROL 設(shè)置成
erasedups:
# export HISTCONTROL=erasedups
5、使用 -c 選項清除所有的命令歷史
如果你想清除所有的命令歷史,可以執(zhí)行:
# history -c
6、使用 HISTIGNORE 忽略歷史中的特定命令
下面的例子,將忽略 pwd、ls、ls -ltr 等命令:
# export HISTIGNORE=”pwd:ls:ls -ltr:”
1.linux如何查看用戶所有的歷史操作記錄
1、使用w命令查看登錄用戶正在使用的進程信息,w命令用于顯示已經(jīng)登錄系統(tǒng)的用戶的名稱,以及他們正在做的事。該命令所使用的信息來源于/var/run/utmp文件。w命令輸出的信息包括:用戶名稱
用戶的機器名稱或tty號
遠(yuǎn)程主機地址
用戶登錄系統(tǒng)的時間
空閑時間(作用不大)
附加到tty(終端)的進程所用的時間(JCPU時間)
當(dāng)前進程所用時間(PCPU時間)
用戶當(dāng)前正在使用的命令
$ w
23:04:27 up 29 days, 7:51, 3 users, load average: 0.04, 0.06, 0.02
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ramesh pts/0 10.1.80.56 22:57 8.00s 0.05s 0.01s sshd: ramesh [priv]
jason pts/1 10.20.48 23:01 2:53 0.01s 0.01s -bash
john pts/2 10.1.80.7 23:04 0.00s 0.00s 0.00s w
此外,可以使用who am i查看使用該命令的用戶及進程,使用who查看所有登錄用戶進程信息,這些查看命令大同小異;
2. 在linux系統(tǒng)的環(huán)境下,不管是root用戶還是其它的用戶只有登陸系統(tǒng)后用進入操作我們都可以通過命令history來查看歷史記錄, 可是假如一臺服務(wù)器多人登陸,一天因為某人誤操作了刪除了重要的數(shù)據(jù)。這時候通過查看歷史記錄(命令:history)是沒有什么意義了(因為history只針對登錄用戶下執(zhí)行有效,即使root用戶也無法得到其它用戶histotry歷史)。那有沒有什么辦法實現(xiàn)通過記錄登陸后的IP地址和某用戶名所操作的歷史記錄呢?答案:有的。
通過在/etc/profile里面加入以下代碼就可以實現(xiàn):
2.liunx 怎么查看用戶登錄 的歷史記錄
查看某用戶 cat /home/username/.bash_history 的操作歷史
使用root登陸使用last -x可查看用戶登陸歷史。
last 命令:
功能說明:列出目前與過去登入系統(tǒng)的用戶相關(guān)信息。
語 法:last [-adRx][-f ][-n ][帳號名稱…][終端機編號…]
補充說明:單獨執(zhí)行l(wèi)ast指令,它會讀取位于/var/log目錄下,
名稱為wtmp的文件,并把該給文件的內(nèi)容記錄的登入系統(tǒng)的用戶名單全部顯示出來。
參 數(shù):
-a 把從何處登入系統(tǒng)的主機名稱或IP地址,顯示在最后一行。
-d 將IP地址轉(zhuǎn)換成主機名稱。
-f 指定記錄文件。
-n 或- 設(shè)置列出名單的顯示列數(shù)。
-R 不顯示登入系統(tǒng)的主機名稱或IP地址。
-x 顯示系統(tǒng)關(guān)機,重新開機,以及執(zhí)行等級的改變等信息
3.linux查看歷史操作記錄
這個是某位高人寫的。希望對你有幫助。那有沒有什么辦法實現(xiàn)通過記錄登陸后的IP地址和某用戶名所操作的歷史記錄呢?答案:有的。
通過在/etc/profile里面加入以下代碼就可以實現(xiàn): #PS1=”`whoami`@`hostname`:”'[$PWD]'
#history
USER_IP=`who -u am i 2/dev/null| awk '{print $NF}'|sed -e 's/[]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /tmp/dbasky ]
then
mkdir /tmp/dbasky
chmod 777 /tmp/dbasky
fi
if [ ! -d /tmp/dbasky/${LOGNAME} ]
then
mkdir /tmp/dbasky/${LOGNAME}
chmod 300 /tmp/dbasky/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date +” %Y%m%d_%H%M%S”`
export HISTFILE=”/tmp/dbasky/${LOGNAME}/${USER_IP}.dbasky.$DT”
chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky* 2/dev/null可以看到在使用history命令的時候是沒時間顯示,不知道這個命令是什么時候所執(zhí)行,這個時候可以編輯/etc/bashrc文件,加入如下三行:HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT=”%Y%m%d-%H%M%S: ”
export HISTTIMEFORMAT保存后退出,關(guān)閉當(dāng)前shell,并重新登錄
這個時候,在~/.bash_History文件中,就有記錄命令執(zhí)行的時間了
用cat命令顯示這個文件,但是卻會看到這個時間不是年月日顯示的
1、當(dāng)前登錄用戶信息
who:
用戶名、終端類型、登陸日期以及遠(yuǎn)程主機地址。
who /var/log/wtmp
可以查看自從wtmp文件創(chuàng)建以來的每一次登陸情況
-H:打印每列的標(biāo)題
users命令: 打印當(dāng)前登錄的用戶,從上面可以看到我自己從不同主機同時登錄,所以下面顯示2次。
2、查看命令歷史
每個用戶的命令歷史記錄保存在 ~/.bash_history 文件里,
或者在終端輸入: history
要想再執(zhí)行哪條,使用 !96 重新執(zhí)行該條命令。
3、last命令查看用戶登錄歷史
此命令會讀取 /var/log/wtmp文件;/var/log/btmp可以顯示遠(yuǎn)程登陸信息。
last默認(rèn)打印所有用戶的登陸信息。
如果想打印某個用戶的登陸信息,可以使用
last 用戶名
一些選項:
(1)-x:顯示系統(tǒng)開關(guān)機以及執(zhí)行等級信息
(2)-a:將登陸ip顯示在最后一行
(3)-d:將IP地址轉(zhuǎn)換為主機名
(4)-t:查看指定時間的用戶登錄歷史
例如: 查看axing在
axing@ax:~$ last axing -a -t 20190201160000
4、lastlog命令查看所有用戶最近一次登錄歷史
讀取/var/log/lastlog文件;用戶排列順序按照/etc/passwd中的順序
一些選項:
(1) -u:查看某用戶的最后一次登錄記錄
比如: lastlog -u axing
(2) -t:查看最近幾天之內(nèi)的用戶登錄歷史
比如: lastlog -t 1
查看最近1天之內(nèi)的登陸歷史
(3) -b:查看指定天數(shù)之前的用戶登錄歷史
例如: lastlog -b 60
查看60天之前的用戶登錄歷史
5、ac命令
根據(jù)/var/log/wtmp文件中的登陸和退出時間報告用戶連接的時間(小時),默認(rèn)輸出報告總時間
需要安裝:
(1)-p:顯示每個用戶的連接時間
(2)-d:顯示每天的連接時間
(3)-y:顯示年份,和-d配合使用
1、首先打開Linux直接輸入一個history即可。
2、然后如果想執(zhí)行歷史中的某個命令,直接感嘆號加行號即可。
3、還可以運用感嘆號加命令的起始字符即可調(diào)出歷史命令。
4、輸完了以后按回車你就會看到命令起作用了。
5、然后就會顯示Linux中各個用戶具體的操作時間和操作,通過以上步驟即可解決查看Linux中各個用戶的歷史操作命令的問題。
1、ls命令
cd /root
ls #顯示當(dāng)前目錄下所有的非隱藏文件
ls -a #顯示當(dāng)前目錄下所有文件,包含隱藏文件
ls -l #顯示當(dāng)前目錄下所有的非隱藏文件的詳情
ls -al #顯示當(dāng)前目錄下所有文件,包含隱藏文件 的詳情
ls -lh #以列表形式顯示當(dāng)前目錄下所有的非隱藏文件的大小(K M T)
ls -alh #以列表形式顯示所有文件,包含隱藏文件的文件大小(K M T)
常用的組合:
ls
ll #等價于 ls -l
ls /etc #顯示/etc目錄下的文件
2:pwd命令
用來顯示當(dāng)前所在的路徑
絕對路徑: 從/目錄開始的路徑
/root
/etc/sysconf
/opt/server/data-integration/libswt/win64
相對路徑: 相對當(dāng)前的路徑
3、mkdir命令
cd /root
mkdir mytest #在當(dāng)前目錄創(chuàng)建文件夾
mkdir -p 111/222/333 #一次創(chuàng)建多級文件夾
mkdir /root/mydemo #使用絕對路徑來創(chuàng)建
mkdir mydemo2 #使用相對對路徑來創(chuàng)建
4、rm命令
這個命令既可以刪除文件,也可以刪除目錄
刪文件:
cd /root
rm a.txt #刪除時,會給出提醒確認(rèn),輸入y刪除,n不刪除
rm -f b.txt #強制刪除 等價于 rm -f /root/b.txt
rm ../dir2/b.txt
touch a.java b.java c.java
rm a.java b.java c.java #一次可以刪除多個文件
rm *.java -fr #可以刪除當(dāng)前目錄下的所有.java文件
cd dir
rm * -fr #刪除當(dāng)前目錄的所有內(nèi)容
刪目錄:
rm -r 111 #刪除目錄,依次提醒刪除
rm -rf mytest #強制刪除 等價于 rm mytest -fr
常用組合:
rm -fr 文件或目錄
5、cd命令
cd 命令可以進入一個目錄,類似于對windows上的文件夾進行雙擊
cd #直接cd 可以從任何一個目錄回到/root目錄
cd /root #進入root目錄
cd /opt/server/data-integration/system/
cd .. #回到上一級目錄
cd ../.. #回到上上一級目錄
cd - #可以在最近的兩次目錄之間切換
cd /root
mdkir dir1 dir2
cd dir1
cd ../dir2 #使用相對路徑 /中國/廣東省/深圳市/寶安區(qū)/留仙二路/78號
6、歷史命令和table補全
使用上下方向鍵可以找出歷史命令
table鍵:
cd /opt/ #兩次table可以列出/opt目錄下所有的文件和子目錄
cd /opt/s #一次table可以自動補全目錄內(nèi)容,前提是/opt目錄下只有一個s開頭的目錄
7、touch命令
cd /root
touch a.java #在當(dāng)前目錄創(chuàng)建a.txt文件
touch b.java c.java #創(chuàng)建多個文件
touch /root/d.java #通過絕對路徑創(chuàng)建
8、mv命令
移動:
1、mv 文件 目錄 #將文件移動到目錄中區(qū)
cd /root/dir1
touch a.txt
mv a.txt /root/dir2 #等價于 mv a.txt ../dir2
2、 mv 目錄1 目錄2 #將目錄1移動到目錄2下面(前提是目錄2必須存在)
cd /root
mv dir2 dir1 #將dir2移動到dir1下面
重命名:
1、mv 文件1 文件2 #給文件重命名(文件2不能存在)
cd /root
mv a.txt aaa.txt #將a.txt 重命名為aaa.txt
2、mv 目錄1 目錄2 #給目錄重命名(目錄2不能存在)
cd /root
mv dir1 dirx #將dir1重命名為dirx
9、cat命令
顯示文件內(nèi)容
cd /root
cat user.txt
10、cp命令
復(fù)制文件
cd /root
cp user.txt user2.txt
cp user.txt /opt/ #將當(dāng)前目錄的user.txt 復(fù)制到/opt目錄,文件名保持不變
cp user.txt /opt.user2.txt #將當(dāng)前目錄的user.txt 復(fù)制到/opt目錄,文件名改為user2.txt
cp /opt/server/data-integration/pan.sh ./ #將指定目錄里的文件復(fù)制到當(dāng)前目錄(.后邊的/可以去掉)
cp /opt/server/data-integration/pan.sh ./dirx #將指定目錄里的文件復(fù)制到當(dāng)前目錄下的dirx目錄(.后邊的/比可以去掉)
cp /opt/server/data-integration/pan.sh /root/dirx #作用同上
11、解壓和壓縮
Linux的壓縮包后綴一般是: .tar.gz
解壓:
.tar.gz
將snappy-1.1.1.tar.gz上傳到/root/dir1目錄
tar -zxvf snappy-1.1.1.tar.gz #默認(rèn)解壓到當(dāng)前目錄
tar -xvf snappy-1.1.1.tar.gz #默認(rèn)解壓到當(dāng)前目錄
tar -xvf snappy-1.1.1.tar.gz -C /opt #將壓縮包解壓到/opt目錄
.zip格式
unzip mysql-connector-java-8.0.13.zip #默認(rèn)解壓到當(dāng)前目錄
unzip -d /opt mysql-connector-java-8.0.13.zip #解壓到指定目錄
壓縮:
.tar.gz
tar -czvf snappy-1.1.1.tar.gz snappy-1.1.1 #將snappy-1.1.1文件夾進行打包壓縮
tar -czvf /root/dir/snappy-1.1.1.tar.gz /opt/server/snappy-1.1.1
.zip格式
zip -r mysql-connector-java-8.0.13.zip mysql-connector-java-8.0.13/
12、find命令
用來實現(xiàn)文件的查找
find / -name 'a.txt' #從/目錄開始查找a.txt文件
find / -name 'ins*' #從/目錄開始查找以ins開頭的文件
find / -type f -size +100M #查找/目錄下文件大小大于100M的文件
13、grep命令
grep lang anaconda-ks.cfg #從anaconda-ks.cfg文件中查找包含lang的內(nèi)容
14、ps命令
ps #查看依賴終端的進程
ps -ef #查看Linux系統(tǒng)中所有的進程
15、kill命令
kill -9 進程的pid #每次啟動進程時,pid會發(fā)生變化,但是進程運行期間pid不會變化
16、管道 |
管道就是把前邊命令的結(jié)果作為后邊命令的輸入
ps -ef | grep mysql #查找和mysql相關(guān)的進程
ll /etc | grep java #在/etc目錄中查找java相關(guān)的文件
17、用戶的操作
用戶創(chuàng)建和密碼設(shè)置
useradd itheima #創(chuàng)建新用戶itheima
passwd itheima #設(shè)置用戶itheima密碼
用戶刪除
userdel -r itheima #刪除用戶itheima
18、文件的權(quán)限
所屬用戶: root 文件的創(chuàng)建者
所屬用戶組: root 和文件創(chuàng)建者在一個組的用戶
其他用戶: itcast 既不是文件創(chuàng)建者,也和文件創(chuàng)建者不在同一組
r: 可讀
w:可寫
x: 可執(zhí)行
chmod命令:
方式1:
chmod u+rw a.txt #在所屬用戶之前的權(quán)限基礎(chǔ)上添加可讀和可寫權(quán)限
chmod u=rw a.txt #將所屬用戶的權(quán)限直接修改為可讀,可寫
chmod +x #給所屬用戶,所屬用戶組和其他用戶全部加上可執(zhí)行權(quán)限
方式2:
chmod 777 a.txt #給所有用戶加上所有權(quán)限
19、clear命令
用來清屏
快捷鍵: ctrl + l
20、history命令
用來查看所有的歷史命令
21:vi編輯器的使用
vi a.txt #打開a.txt文件
vim a.txt #vim是vi的增強
22、網(wǎng)絡(luò)管理命令
hostname :查看主機名
修改主機名: /etc/hostname
ifconfig :查看ip地址
修改ip地址: /etc/sysconfig/network-scripts/ifcfg-ens33
服務(wù)問題:
service network restart