AIX是IBM公司專有的UNIX操作系統(tǒng),Linux也是一種操作系統(tǒng)。一個具體的操作系統(tǒng),沒法和一類作比較。
創(chuàng)新互聯(lián)公司技術(shù)團隊十余年來致力于為客戶提供做網(wǎng)站、成都網(wǎng)站設(shè)計、成都品牌網(wǎng)站建設(shè)、全網(wǎng)整合營銷推廣、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗豐富的技術(shù)團隊,先后服務(wù)、推廣了近1000家網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機構(gòu)單位。
linux awk命令怎么用? awk:用于一行中分成數(shù)個“欄位”來處理。適合處理 小型資料。
執(zhí)行模式:awk '條件型別1{動作1} 條件型別2{動作2} ...' filename
# last | awk '{print $1 "\t" $3}' == 檢視登入者的資料,只顯示登入名和ip地址,并以[tab]隔開
awk 的內(nèi)建變數(shù)
變數(shù)名稱 代表的含義
NF 每一行($0)擁有的欄位總數(shù)
NR 當(dāng)前 awk 所處理的是 “第幾行” 資料
FS 當(dāng)前分隔符,預(yù)設(shè)空格鍵
awk 的邏輯運算子
運算單元 代表含義
大于
小于
= 大于或等于
= 小于或等于
== 等于
!= 不等于
范例:
cat /etc/passwd | awk '{FS=":"} $3 10 {print $1 "\t" $3}' == 檔案/etc/passwd是以":"分隔的,檢視第三欄小于10的資料,并且只顯示帳號與第三欄
以上是我對awk的總結(jié),希望對你有幫助,是我寫的哦,不是復(fù)制的。
linux 怎么用awk命令 取出一段文字
awk '/DIMENSION NAME="CCCCCC" SRC_TYPE="INTERNAL"/,/DIMENSIONS/ {print $0}' filename
Linux awk命令問題
head -n 3 /etc/passwd|awk -F ':' '$1="root"' 這里$1="root",表示將第1列的值賦值為root,因此上述命令表示:將/etc/passwd中前3行按照‘:’分隔后第一列以root顯示,并列印其他列。
awk -F ':' '$3=="0"' /etc/passwd
這里$3=="0",表示將第三列與"0”進(jìn)行匹配,以什么方式匹配呢?以‘:’分隔后的第三列進(jìn)行匹配并列印。這里是匹配列印,所以列印的是匹配的那一行(被:分隔后),而不是顯示分隔后的列。
所以,區(qū)別在于一個是分隔后賦值列印分隔后列的值,一個是按照指定分隔方式進(jìn)行匹配找到匹配的行,列印的是匹配的那一行。
linux的awk命令問題
一行里 第一個元素和第三個元素
linux下 awk命令問題
1、其實這樣基本滿足要求。但是確實不夠嚴(yán)謹(jǐn)。試試是否可以。
ps -le | grep sshd | awk '{print $4}'
2、對ps 命令用的最多的是ps -ef 對el 我不是很了解具體輸出什么。當(dāng)然,是不是你壓根就沒有這個sshd服務(wù)啟動。這些都先驗證一下。一步一步的輸出,看看問題出現(xiàn)在管道的哪一個環(huán)節(jié)。
3、或者這個 $14==sshd 欄位你指定錯了。 awk $指定的變數(shù)是從1 開始的。$0是整個行。這個不要忘記了哦。
如果上述1第一種情況可以輸出,第二種2不可以話,可能就驗證了我的假設(shè)。你欄位拆解出現(xiàn)錯誤。把$14 這個欄位好好看看。
linux awk命令基礎(chǔ) 怎么在終端寫
awk一般用于文字處理,通常用作資料提取。終端書寫demo
awk '{print }' info.txt
以上是輸出文字檔案info.txt的所有內(nèi)容,請使用實際檔案進(jìn)行替換info.txt
ps -ef|grep process_name | awk -F"" '{print $2}'
以上是查詢process_name程序的ID資訊,把查詢資訊作為引數(shù)傳給awk進(jìn)行過濾,請使用實際程序名替換process_name。
awk命令在 linux和aix下的區(qū)別
三種呼叫awk的命令方式:
1.命令列方式:awk [-F field-separator] 'mands' input-file(s)
-F選項可選:awk -F: 'mands' input-file
2.將所有的awk命令插入一個檔案,并是awk程式可執(zhí)行,然后用awk命令直譯器作為指令碼的首行,
以便通過鍵入指令碼名稱來呼叫它。
3.將所有的awk命令插入一個單獨檔案,然后呼叫:
awk -f awk-script-file input-files(s)
-f:指明在檔案awk-script-file中的awk指令碼
input-file(s):使用awk進(jìn)行瀏覽的檔名。
awk指令碼
在命令中呼叫awk時,awk指令碼由各種操作和模式組成。
-F,awk每次讀一條記錄或一行,并使用指定的分隔符分分隔指定域;
所沒分隔符,則使用空格。
任何awk語句都由模式和動作組成
模式,決定動作語句何時觸發(fā)及觸發(fā)事件,若忽略模式部分,動作將時刻保持執(zhí)行狀態(tài)。
模式,可是任何條件語句,或符合語句,或正則表示式。
BEGIN:設(shè)定計數(shù),列印頭,在任何文字瀏覽動作之前;
END:用來在awk完成檔案瀏覽動作后列印輸出檔案總數(shù)和結(jié)尾狀態(tài)標(biāo)志。
動作,在{}內(nèi)指定;大多用來列??;里面可包含:if,looping,回圈推出結(jié)構(gòu);
若不指明采取動作,awk將列印所有瀏覽出來的記錄。
如何在Linux中使用awk命令
awk例項
1、cat /etc/passwd|awk -F: '{print $1}'
2、linux的awk一般都是gawk,/bin/awk - gawk
3、awk ‘/abc/’ file.txt 顯示檔案中包含abc行。類似grep abc a.txt
4、awk ‘{print NR,NF,$1,$NF,}’ file.txt按空格分隔列,顯示當(dāng)前記錄號、域數(shù)和每一行的第一列和最后一列。
-F引數(shù)可以設(shè)定分割引數(shù),例如按:分割
awk -F: ‘{print $1}’ /etc/passwd
或者cat file|awk -F “|” ‘{print $1}’
5、awk程式語言
cat v.txt|awk ‘{print length($1)}’
6、awk中使用NR和FNR,一般在awk處理多個檔案時,NR==FNR才有意義
NF 當(dāng)前記錄中的欄位數(shù)。
NR 當(dāng)前記錄數(shù)。
FNR同NR,但相對于當(dāng)前檔案。
awk ‘{print NR,FNR}’ test.txt test2.txt
awk ‘{if(NR==FNR){a[FNR]=$1;}else{print $1,a[FNR]}}’ b.txt a.txt
7、列印奇數(shù)行與偶數(shù)行
awk ‘NR%2’ test.txt
awk ‘!(NR%2)’ test.txt
8、殺死tomcat的s.sh指令碼
#!/bin/sh
ps -ef| grep tomcat |grep -v grep | awk ‘{print $2}’ |xargs kill -9
9、列印前7列
cat a.txt|awk ‘{NF=7}1’ b.txt
tail -f aess.log|awk ‘NF=7′ OFS=’\t’ b.txt
cut -d”,” -f3-6 urfile
LINUX系統(tǒng)怎么使用awk命令實現(xiàn)下述操作
cat file|awk -F"name=" '{print $2}'|awk -F\" '{print $1}'
試試看,第二個”的轉(zhuǎn)義,我沒測試,可以自己調(diào)下
一、怎樣刪除AIX命令歷史記錄
UNIX(AIX)系統(tǒng)常用命令 AIX的命令格式: $mand option(s) argument(s) mand:命令 option(s):命令選項,均以'-'號開始 argument(s):參數(shù)命令 用途 ---------------------------------------------------------------------------- prtconf 顯示系統(tǒng)的各項主要配置 svmon -G 查看內(nèi)存(4k) iostat 2 查看磁盤讀寫情況(每2秒刷新); set -o vi 調(diào)用緩沖區(qū) k,j,x,h,l 向上下翻,Esc *** it 進(jìn)入管理界面 cd 改變路徑 ls 列出文件 ls -aF 列出隱含文件,并適當(dāng)分類 ls -l 列出文件的詳細(xì)信息 ls -ltr more 輸出文件內(nèi)容到屏幕 cat 顯示文本文件內(nèi)容/合并文件 pg 分頁顯示文件內(nèi)容,回車后下一頁 file 顯示文件屬性(可執(zhí)行/ASCII/等) clear 清屏 mkdir 創(chuàng)建目錄 rmdir 刪除目錄 cp 拷貝文件 mv 文件/目錄改名,轉(zhuǎn)移 rm 刪除文件/目錄, 如:rm -fr ora* rmdir 刪除目錄,如: rmdir oracle df -k 顯示文件系統(tǒng)的信息 du 磁盤使用信息匯總 mount 顯示已經(jīng)掛裝的文件系統(tǒng)的信息或掛裝文件系統(tǒng) mount -rv cdrfs /dev/cd0 /cdrom mount /dev/lv02 /u01 umount 卸載某個文件系統(tǒng) umount /cdrom fuser -kxuc /dev/cd0 當(dāng)光驅(qū)不能正常釋放時 lsattr -E -l sys0 -a realmem 察看內(nèi)存的命令 env 輸出用戶環(huán)境變量到屏幕 id 察看用戶的屬性 whoami 察看當(dāng)前用戶名 who 查看已經(jīng)登錄的用戶 who -r 查看目前系統(tǒng)的運行級別 users 用單獨的一行打印出當(dāng)前登錄的用戶,每個顯示的用戶名對應(yīng)一個登錄會話 如果一個用戶有不止一個登錄會話,那他的用戶名將顯示相同的次數(shù) w 顯示當(dāng)前系統(tǒng)中每個用戶和它所運行的進(jìn)程信息 last 此命令往回搜索wtmp來顯示自從文件第一次創(chuàng)建以來登錄過的用戶 whereis 命令的絕對路徑 passwd 設(shè)置用戶密碼 su 改變/切換用戶id lsuser ALL 列出所有已經(jīng)創(chuàng)建的用戶 lsgroup ALL 列出所有已經(jīng)創(chuàng)建的組 *** itty user 管理用戶 mkuser 創(chuàng)建新用戶,創(chuàng)建用戶的缺省屬性值于文件:/usr/lib/security/mkuser.default,只能由root修改 *** itty group 管理組 mkgroup 創(chuàng)建新組 chfn 改變用戶詳細(xì)信息 jobs 查看后臺任務(wù)/進(jìn)程 fg 把后臺進(jìn)程調(diào)到前臺 bg 把當(dāng)前進(jìn)程調(diào)到后臺運行 grep 查找匹配字符/字符串 stat -i 顯示網(wǎng)絡(luò)連接信息及統(tǒng)計信息 stat -IN stat -rn 顯示核心路由表 stat -I 網(wǎng)絡(luò)設(shè)置名 端口號 監(jiān)視端口情況 stat -v 正在使用的設(shè)備驅(qū)動程序的統(tǒng)計信息 stat -m 網(wǎng)絡(luò)使用的內(nèi)存空間情況 stat -D 顯示丟棄包的情況 ifconfig -a 顯示網(wǎng)絡(luò)配置信息 umask 顯示文件創(chuàng)建掩碼,即新建文件或目錄的缺省權(quán)限,如#umask 664 date 系統(tǒng)時間 find path expression 查找文件,expression的值有: -name/-type/-size/-mtime(修改時間)/-perm(權(quán)限)/-usr/-o(或)uname 顯示操作系統(tǒng)信息 oslevel 系統(tǒng)版本man 幫助文件 *** itty clstart | clstop 起用|關(guān)閉HA *** itty hamcp *** itty chi 改變網(wǎng)卡的配置信息 *** itty cluster 配置cluster *** itty hacmp 配置hacmp /usr/ *** in/cluster/clstat 顯示cluster信息 dbassist 啟動oracle數(shù)據(jù)庫配置助手(dbca -9i 可以用配置數(shù)據(jù)庫方式啟動一個數(shù)據(jù)庫) asst 啟動oracle數(shù)據(jù)庫listener配置助手(-9i oemapp是一個包,后跟參數(shù),不同工具) vi 文件編輯器 動作字符: a 在當(dāng)前字符后添加文字; x 刪除單個字符; A 在當(dāng)前行最后添加文字; dw 刪除至當(dāng)前詞尾; i 在當(dāng)前字符前添加文字; d$ 刪除至當(dāng)前行尾; I 在當(dāng)前行開始處添加文字; d0 刪除至當(dāng)前行首; o 在當(dāng)前行后添加新行; dd 刪除當(dāng)前行; O 在當(dāng)前行前添加新行; :20,40d 刪除20行至40行; /text 向后查詢 ?text 向前查詢 r 修改當(dāng)前字符 R 覆蓋字符,直至按下[ESC] s 刪除當(dāng)前字符,并可添加字符直至按[ESC] S 刪除當(dāng)前行,并可添加字符直至按[ESC] yy 將當(dāng)前行存入緩沖區(qū) dd p P errpt|pg 創(chuàng)建/顯示錯誤文件 errclear 0 清除錯誤日志文件內(nèi)容 lsvg -o 顯示卷組信息 lsvg -l rootvg instfix -iv|grep AIX_ML 安裝的文件集 *** itty tcpip tcp/ip配置 lsdev -Cc disk 系統(tǒng)設(shè)備信息(磁盤) lspv 顯示卷組里的物理卷信息 lsdev -Cc pdisk 顯示陣列里的磁盤信息 errclear 清除error loglsps -a 顯示交換空間 swapon /dev/paging01 激活交換空間 chps -a paging01 刪除交換空間 rmps paging01 刪除不活動的交換空間 *** it mkps 增加交換空間 *** it chps 修改交換空間 varyonvg 激活卷組 如:varyonvg datavg 將datavg激活 varyoffvg 關(guān)閉卷組 /ect/services 查看端口 /etc/hosts 機器名IP對照表 /etc/inittab 相當(dāng)于DOS的AUTOEXEC.BAT文件 /etc/filesystems 記錄所有的文件系統(tǒng)設(shè)置 增加并配置端口 刪除端口 在客戶端登錄AIX(用IE) lscfg lsdev route ADD 0 10.188.12.1 route add default 192.168.0.1 設(shè)置網(wǎng)關(guān)(或在/etc/defaultrouter文件中加入網(wǎng)關(guān)地址,重起機器就行) su root 以ROOT用戶登錄; *** itty lv 增加邏輯盤 LN -s 源目錄 目標(biāo)目錄 鏈接 ls -l 查看權(quán)限 ./fielname 運行filename文件 *** itty clstart 啟動HA *** itty clstop 停止HA .filename 表示filename文件(目錄)為隱藏; cat file1 file2 合并file1到file2 SMIT 綜合管理工具 # 表示ROOT用戶; $ 表示一般用戶; shutdown -fr 快速重啟; *** itty crjfs 創(chuàng)建結(jié)點; mount /u05 chown -R oracle.dbs u05 chmod -R 777 u05 加一個文件系統(tǒng)的步驟: 加文件系統(tǒng)/chm。
二、如何讓AIX,LINUX的History命令顯示執(zhí)行時間
LINUX用戶登錄后精確命令記錄(history 按時間、用戶顯示命令記錄) # 設(shè)置保存歷史命令的文件大小 export HISTFILESIZE=10000000 # 保存歷史命令條數(shù) export HISTSIZE=1000000 # 實時記錄歷史命令,默認(rèn)只有在用戶退出之后才會統(tǒng)一記錄,很容易造成多個用戶間的相互覆蓋。
export PROMPT_COMMAND="history -a" # 記錄每條歷史命令的執(zhí)行時間 export HISTTIMEFORMAT="%Y-%m-%d_%H:%M:%S " 備:%Y:4位數(shù)的年份;%m:2位數(shù)的月份數(shù);%d:2位數(shù)的一個月中的日期數(shù);%H:2位數(shù)的小時數(shù)(24小時制);%M:2位數(shù)的分鐘數(shù);%S:2位數(shù)的秒數(shù)主要功能: 可以記錄哪個ip和時間(精確到秒)作了哪些命令 通過用戶登錄時候,重新定義HISTFILE HISTFILE文件名包含登錄用戶名,ip,登錄時間(精確到秒)等 這樣即使相同的用戶從不同ip、在不同的時間登錄都會被記錄 可以記錄每條命令的開始執(zhí)行時間 把下面的代碼直接粘貼到/etc/profile后面就可以了 #history export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]" USER_IP=`who -u am i 2/dev/null| awk '{print $NF}'|sed -e 's/[]//g'` HISTDIR=/var/log/.hist if [ -z $USER_IP ] then USER_IP=`hostname` fi if [ ! -d $HISTDIR ] then mkdir -p $HISTDIR chmod 777 $HISTDIR fi if [ ! -d $HISTDIR/${LOGNAME} ] then mkdir -p $HISTDIR/${LOGNAME}chmod 300 $HISTDIR/${LOGNAME} fi export HISTSIZE=4096 DT=`date +%Y%m%d_%H%M%S` export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.hist.$DT" chmod 600 $HISTDIR/${LOGNAME}/*.hist* 2/dev/null 得到的結(jié)果,永久保存,每個用戶的命令記錄分目錄保存 # ls -l /var/log/.hist/root/ -rw------- 1 root root 546 2006-05-26 10:00 218.82.245.54.hist.20060526_092458 -rw------- 1 root root 243 2006-05-28 13:28 218.82.245.54.hist.20060528_114822 -rw------- 1 root root 10 2006-05-28 12:18 218.82.245.54.hist.20060528_121605 查看命令記錄 # export HISTFILE=/var/log/.hist/root/222.72.16.204.hist.20060608_152551 # history 1 [2006.06.24 13:22:51] vi /etc/profile 2 [2006.06.24 13:23:25] cd /var/log/.hist 3 [2006.06.24 13:23:26] ls -al 4 [2006.06.24 13:23:30] cd sadmin 5 [2006.06.24 13:23:31] ls -al 6 [2006.06.24 13:24:22] more 58.35.169.51.hist.20060524_193219 7 [2006.06.24 13:24:35] 222.72.16.204.hist.20060622_143133 8 [2006.06.24 13:24:39] more 222.72.16.204.hist.20060622_143133 9 [2006.06.24 13:24:51] hist -f 222.72.16.204.hist.20060622_143133 10 [2006.06.24 13:24:59] history -f 222.72.16.204.hist.20060622_143133 11 [2006.06.24 13:25:12] history 222.72.16.204.hist.20060622_143133 12 [2006.06.24 13:25:32] man histtory 13 [2006.06.24 13:25:38] man history 14 [2006.06.24 13:26:00] hist 15 [2006.06.24 13:26:04] history 16 [2006.06.24 13:26:16] ls 17 [2006.06.24 13:26:39] export 222.72.16.204.hist.20060622_143133 18 [2006.06.24 13:26:59] export HISTFILE=222.72.16.204.hist.20060608_152551 19 [2006.06.24 13:27:07] history。
三、linux history可以查看到歷史執(zhí)行過的命令,如何查看命令執(zhí)行時間
答:linux的bash內(nèi)部命令history就可以顯示命令行的命令歷史,默認(rèn)環(huán)境執(zhí)行 history
命令后,通常只會顯示已執(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
四、AIX下怎么查詢用戶創(chuàng)建的時間
直接和簡單的方法是使用 fc -t 命令來顯示命令歷史,其輸出如下:
1192 2007/07/16 12:25:09 :: env | grep HIS 1193 2007/07/16 12:25:11 :: ls 1194 2007/07/16 12:25:17 :: fc -t 1197 2007/07/16 12:26:19 :: vi /.sh_history 4.
如果要對所有用戶記錄命令時間
建議更改 /etc/profile 文件,增加如下兩行: export EXTENDED_HISTORY=ON export HISTSIZE=512 (另一個關(guān)于命令歷史的環(huán)境變量,用于定義最多保存的命令條數(shù),可根據(jù)需要修改) 增加后用戶重新登錄后即生效,不需要重啟