重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
AIX是IBM公司专有的UNIX操作系统,Linux也是一种操作系统。一个具体的操作系统,没法和一类作比较。
创新互联公司技术团队十余年来致力于为客户提供做网站、成都网站设计、成都品牌网站建设、全网整合营销推广、搜索引擎SEO优化等服务。经过多年发展,公司拥有经验丰富的技术团队,先后服务、推广了近1000家网站,包括各类中小企业、企事单位、高校等机构单位。
linux awk命令怎么用? awk:用于一行中分成数个“栏位”来处理。适合处理 小型资料。
执行模式:awk '条件型别1{动作1} 条件型别2{动作2} ...' filename
# last | awk '{print $1 "\t" $3}' == 检视登入者的资料,只显示登入名和ip地址,并以[tab]隔开
awk 的内建变数
变数名称 代表的含义
NF 每一行($0)拥有的栏位总数
NR 当前 awk 所处理的是 “第几行” 资料
FS 当前分隔符,预设空格键
awk 的逻辑运算子
运算单元 代表含义
大于
小于
= 大于或等于
= 小于或等于
== 等于
!= 不等于
范例:
cat /etc/passwd | awk '{FS=":"} $3 10 {print $1 "\t" $3}' == 档案/etc/passwd是以":"分隔的,检视第三栏小于10的资料,并且只显示帐号与第三栏
以上是我对awk的总结,希望对你有帮助,是我写的哦,不是复制的。
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”进行匹配,以什么方式匹配呢?以‘:’分隔后的第三列进行匹配并列印。这里是匹配列印,所以列印的是匹配的那一行(被:分隔后),而不是显示分隔后的列。
所以,区别在于一个是分隔后赋值列印分隔后列的值,一个是按照指定分隔方式进行匹配找到匹配的行,列印的是匹配的那一行。
linux的awk命令问题
一行里 第一个元素和第三个元素
linux下 awk命令问题
1、其实这样基本满足要求。但是确实不够严谨。试试是否可以。
ps -le | grep sshd | awk '{print $4}'
2、对ps 命令用的最多的是ps -ef 对el 我不是很了解具体输出什么。当然,是不是你压根就没有这个sshd服务启动。这些都先验证一下。一步一步的输出,看看问题出现在管道的哪一个环节。
3、或者这个 $14==sshd 栏位你指定错了。 awk $指定的变数是从1 开始的。$0是整个行。这个不要忘记了哦。
如果上述1第一种情况可以输出,第二种2不可以话,可能就验证了我的假设。你栏位拆解出现错误。把$14 这个栏位好好看看。
linux awk命令基础 怎么在终端写
awk一般用于文字处理,通常用作资料提取。终端书写demo
awk '{print }' info.txt
以上是输出文字档案info.txt的所有内容,请使用实际档案进行替换info.txt
ps -ef|grep process_name | awk -F"" '{print $2}'
以上是查询process_name程序的ID资讯,把查询资讯作为引数传给awk进行过滤,请使用实际程序名替换process_name。
awk命令在 linux和aix下的区别
三种呼叫awk的命令方式:
1.命令列方式:awk [-F field-separator] 'mands' input-file(s)
-F选项可选:awk -F: 'mands' input-file
2.将所有的awk命令插入一个档案,并是awk程式可执行,然后用awk命令直译器作为指令码的首行,
以便通过键入指令码名称来呼叫它。
3.将所有的awk命令插入一个单独档案,然后呼叫:
awk -f awk-script-file input-files(s)
-f:指明在档案awk-script-file中的awk指令码
input-file(s):使用awk进行浏览的档名。
awk指令码
在命令中呼叫awk时,awk指令码由各种操作和模式组成。
-F,awk每次读一条记录或一行,并使用指定的分隔符分分隔指定域;
所没分隔符,则使用空格。
任何awk语句都由模式和动作组成
模式,决定动作语句何时触发及触发事件,若忽略模式部分,动作将时刻保持执行状态。
模式,可是任何条件语句,或符合语句,或正则表示式。
BEGIN:设定计数,列印头,在任何文字浏览动作之前;
END:用来在awk完成档案浏览动作后列印输出档案总数和结尾状态标志。
动作,在{}内指定;大多用来列印;里面可包含:if,looping,回圈推出结构;
若不指明采取动作,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按空格分隔列,显示当前记录号、域数和每一行的第一列和最后一列。
-F引数可以设定分割引数,例如按:分割
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 当前记录中的栏位数。
NR 当前记录数。
FNR同NR,但相对于当前档案。
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、列印奇数行与偶数行
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系统怎么使用awk命令实现下述操作
cat file|awk -F"name=" '{print $2}'|awk -F\" '{print $1}'
试试看,第二个”的转义,我没测试,可以自己调下
一、怎样删除AIX命令历史记录
UNIX(AIX)系统常用命令 AIX的命令格式: $mand option(s) argument(s) mand:命令 option(s):命令选项,均以'-'号开始 argument(s):参数命令 用途 ---------------------------------------------------------------------------- prtconf 显示系统的各项主要配置 svmon -G 查看内存(4k) iostat 2 查看磁盘读写情况(每2秒刷新); set -o vi 调用缓冲区 k,j,x,h,l 向上下翻,Esc *** it 进入管理界面 cd 改变路径 ls 列出文件 ls -aF 列出隐含文件,并适当分类 ls -l 列出文件的详细信息 ls -ltr more 输出文件内容到屏幕 cat 显示文本文件内容/合并文件 pg 分页显示文件内容,回车后下一页 file 显示文件属性(可执行/ASCII/等) clear 清屏 mkdir 创建目录 rmdir 删除目录 cp 拷贝文件 mv 文件/目录改名,转移 rm 删除文件/目录, 如:rm -fr ora* rmdir 删除目录,如: rmdir oracle df -k 显示文件系统的信息 du 磁盘使用信息汇总 mount 显示已经挂装的文件系统的信息或挂装文件系统 mount -rv cdrfs /dev/cd0 /cdrom mount /dev/lv02 /u01 umount 卸载某个文件系统 umount /cdrom fuser -kxuc /dev/cd0 当光驱不能正常释放时 lsattr -E -l sys0 -a realmem 察看内存的命令 env 输出用户环境变量到屏幕 id 察看用户的属性 whoami 察看当前用户名 who 查看已经登录的用户 who -r 查看目前系统的运行级别 users 用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话 如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数 w 显示当前系统中每个用户和它所运行的进程信息 last 此命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户 whereis 命令的绝对路径 passwd 设置用户密码 su 改变/切换用户id lsuser ALL 列出所有已经创建的用户 lsgroup ALL 列出所有已经创建的组 *** itty user 管理用户 mkuser 创建新用户,创建用户的缺省属性值于文件:/usr/lib/security/mkuser.default,只能由root修改 *** itty group 管理组 mkgroup 创建新组 chfn 改变用户详细信息 jobs 查看后台任务/进程 fg 把后台进程调到前台 bg 把当前进程调到后台运行 grep 查找匹配字符/字符串 stat -i 显示网络连接信息及统计信息 stat -IN stat -rn 显示核心路由表 stat -I 网络设置名 端口号 监视端口情况 stat -v 正在使用的设备驱动程序的统计信息 stat -m 网络使用的内存空间情况 stat -D 显示丢弃包的情况 ifconfig -a 显示网络配置信息 umask 显示文件创建掩码,即新建文件或目录的缺省权限,如#umask 664 date 系统时间 find path expression 查找文件,expression的值有: -name/-type/-size/-mtime(修改时间)/-perm(权限)/-usr/-o(或)uname 显示操作系统信息 oslevel 系统版本man 帮助文件 *** itty clstart | clstop 起用|关闭HA *** itty hamcp *** itty chi 改变网卡的配置信息 *** itty cluster 配置cluster *** itty hacmp 配置hacmp /usr/ *** in/cluster/clstat 显示cluster信息 dbassist 启动oracle数据库配置助手(dbca -9i 可以用配置数据库方式启动一个数据库) asst 启动oracle数据库listener配置助手(-9i oemapp是一个包,后跟参数,不同工具) vi 文件编辑器 动作字符: a 在当前字符后添加文字; x 删除单个字符; A 在当前行最后添加文字; dw 删除至当前词尾; i 在当前字符前添加文字; d$ 删除至当前行尾; I 在当前行开始处添加文字; d0 删除至当前行首; o 在当前行后添加新行; dd 删除当前行; O 在当前行前添加新行; :20,40d 删除20行至40行; /text 向后查询 ?text 向前查询 r 修改当前字符 R 覆盖字符,直至按下[ESC] s 删除当前字符,并可添加字符直至按[ESC] S 删除当前行,并可添加字符直至按[ESC] yy 将当前行存入缓冲区 dd p P errpt|pg 创建/显示错误文件 errclear 0 清除错误日志文件内容 lsvg -o 显示卷组信息 lsvg -l rootvg instfix -iv|grep AIX_ML 安装的文件集 *** itty tcpip tcp/ip配置 lsdev -Cc disk 系统设备信息(磁盘) 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 关闭卷组 /ect/services 查看端口 /etc/hosts 机器名IP对照表 /etc/inittab 相当于DOS的AUTOEXEC.BAT文件 /etc/filesystems 记录所有的文件系统设置 增加并配置端口 删除端口 在客户端登录AIX(用IE) lscfg lsdev route ADD 0 10.188.12.1 route add default 192.168.0.1 设置网关(或在/etc/defaultrouter文件中加入网关地址,重起机器就行) su root 以ROOT用户登录; *** itty lv 增加逻辑盘 LN -s 源目录 目标目录 链接 ls -l 查看权限 ./fielname 运行filename文件 *** itty clstart 启动HA *** itty clstop 停止HA .filename 表示filename文件(目录)为隐藏; cat file1 file2 合并file1到file2 SMIT 综合管理工具 # 表示ROOT用户; $ 表示一般用户; shutdown -fr 快速重启; *** itty crjfs 创建结点; mount /u05 chown -R oracle.dbs u05 chmod -R 777 u05 加一个文件系统的步骤: 加文件系统/chm。
二、如何让AIX,LINUX的History命令显示执行时间
LINUX用户登录后精确命令记录(history 按时间、用户显示命令记录) # 设置保存历史命令的文件大小 export HISTFILESIZE=10000000 # 保存历史命令条数 export HISTSIZE=1000000 # 实时记录历史命令,默认只有在用户退出之后才会统一记录,很容易造成多个用户间的相互覆盖。
export PROMPT_COMMAND="history -a" # 记录每条历史命令的执行时间 export HISTTIMEFORMAT="%Y-%m-%d_%H:%M:%S " 备:%Y:4位数的年份;%m:2位数的月份数;%d:2位数的一个月中的日期数;%H:2位数的小时数(24小时制);%M:2位数的分钟数;%S:2位数的秒数主要功能: 可以记录哪个ip和时间(精确到秒)作了哪些命令 通过用户登录时候,重新定义HISTFILE HISTFILE文件名包含登录用户名,ip,登录时间(精确到秒)等 这样即使相同的用户从不同ip、在不同的时间登录都会被记录 可以记录每条命令的开始执行时间 把下面的代码直接粘贴到/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 得到的结果,永久保存,每个用户的命令记录分目录保存 # 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可以查看到历史执行过的命令,如何查看命令执行时间
答: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
四、AIX下怎么查询用户创建的时间
直接和简单的方法是使用 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 (另一个关于命令历史的环境变量,用于定义最多保存的命令条数,可根据需要修改) 增加后用户重新登录后即生效,不需要重启