AIX命令集总学习-zl.docx_第1页
AIX命令集总学习-zl.docx_第2页
AIX命令集总学习-zl.docx_第3页
AIX命令集总学习-zl.docx_第4页
AIX命令集总学习-zl.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、oslevel查看系统版本信息$ oslevel -s 5300-06-05-0806 这里列出的版本信息可以具体解释为,当前的系统环境是 AIX 版本 5, ML (Maintenance Level)3,TL(Technical Level)06,SP(Service Pack)05。二、prtconf打印整个系统(软件+硬件)的基本信息经常为 AIX 系统工程师,AIX 系统管理员使用的是一个 AIX 4.3.3 以来即支持的命令,prtconf (或者 lsconf)包括硬盘,CPU,内存的配置以及网络地址等信息。这比我们使用 ifconfig a、uname、lsdev 等命令分别去收集快多了。不是超级用户也可以做到!三、topas查看即时CPU、内存、进程等运行信息全局性的观察到系统中各个资源 CPU,网络,磁盘, 内存和交换区等使用另外常用的普通用户可以使用的监控命令包括 iostat 和 vmstat。 前者报告存储 IO 的使用情况, 而后者主要用于监控内存和 CPU 的使用情况。常常用于系统日常运行状态的信息收集。使用起来很简单, 比如“iostat 3”和 “vmstat 1 10” 等。需要注意 vmstat 的第一行表示的是系统启动以来的统计信息, 在进行实时数据统计和分析的时候需要排除这一行情况。四、PS1变量使用来显示不同用户的不同prompt symbol 使用如下命令即可: PS1=whoamihostname:$PWD也就是设置变量 PS1 即可。当这个命令输入后,你当前的命令提示符立即更新为你个性化的模样了。五、“PATH”环境变量的使用安全的设置系统的关键变量之一 PATH大量的 UNIX 安全相关的书籍都会建议,“为了安全起见,请使用绝对路径来运行脚本 / 命令。”为什么需要这样?让我们结合一个常见的环境变量 PATH 来揭开谜底。首先看一个问题,如果给我们两个设置环境变量 PATH 的方法:选择 1 PATH=/usr/bin:/etc:/usr/sbin:/usr/vac/bin/:/usr/ucb:.选择 2 PATH=.:/usr/bin:/etc:/usr/sbin:/usr/vac/bin/:/usr/ucb为了操作方便,有时我们不想每次都使用绝对路径来执行命令,而这时又常常需要运行当前目录下的文件,这种情况下,使用“选择 1”也会保险的多!注意:这里其实只是一个path环境变量的搜索路径的先后问题,但是如果”.”这个当前目录在搜索系统可执行文件的路径前面的话, 就有可能将系统的命令给覆盖掉。六、history命令使用1、可以在 history 后加参数, 比如 history -128 来显示128条历史命令,默认情况下history可以记录1000条,这个数据是可以通过一个环境变量修改的,这样可以查看更多的命令历史。2、可以使用r别名命令,比如r 526 ,这里526是history的命令标号。3、我们还可以使用 set -o vi 来调用编辑器 vi 来直接修改这些历史命令,这样当需要大量修改历史命令的时候我们可以更有效率的工作。输入这个命令后,命令行即激活了编辑模式, 我们可以在需要使用历史命令的时候,敲“Esc”键进入 VI 编辑模式, 使用 VI 的“/”,“?”查找历史命令,使用 VI 的光标移动和编辑命令来修改找到的要修改的目标命令。具体的操作可以参考 VI 的 help 文档,这里不再赘述。七、source(或”.”命令). 命令 (csh 下则是 source 命令 )做为一种重要的 UNIX 环境,要熟练使用 AIX,我们应该熟悉命令行界面。因此还是需要先介绍一下 shell 环境。在 AIX 的默认 KSH 环境下,我们使用到的变量有两种类型,环境变量和本地变量。我们可以分别使用命令 env 和 set 来检查这两种变量的设置, 也可以使用 export 命令将本地变量输出为环境变量。这两种变量的区别是什么?简单来说,本地变量只有当前 shell 可以使用,而环境变量则可以被当前 shell 以及它的子 shell 使用。这种设置有时会给我们的脚本调试带来一些额外的工作。比如我们会遇到两个问题,而这时也是我们需要使用 source 命令来提高我们工作效率的时候:1)、当我们调用子脚本的时候,为了传递必须的变量,我们必须调用 export 输出所有的子 shell 用到的变量。在变化的环境中有时这种手工的设置很难做到及时准确。当调试复杂脚本集的时候尤其如此。这时我们可以使用 .(csh 下为 source 命令 ) 命令来调用子脚本。所有的本地变量都可以在子脚本中使用。举个例子:脚本 test5.sh 的内容为:清单 7. 脚本 test5.sh #test5.sh echo Trying to print Var1: $Var1 zhudanyTesting1:/experimentVar1=Local variable a zhudanyTesting1:/experiment./test5.sh Trying to print Var1: zhudanyTesting1:/experiment. ./test5.sh Trying to print Var1: Local variable a zhudanyTesting1:/experiment 2)、反过来,还有这样一种需求,我们每次使用新的 shell 环境时,需要先设置较多的本地变量,我们也可以将这些变量存入一个脚本文件,每次初始化 shell 环境的时候使用 source 命令调用这个脚本文件既可。一个典型的例子是 .profile 文件。比如做为 DB2 实例用户的 db2inst1 的 .profile 文件可能会有如下几行:清单 8. 常用的 db2 用户 profile 内容 if -f /home/db2inst1/sqllib/db2profile ; then . /home/db2inst1/sqllib/db2profile fi 这就是使用 source 命令来引入了环境变量。最后简单提一句,所谓 source 命令方式执行,其实是 shell 没有 fork 子进程 , 因此所有的变化被记录到当前的 shell 进程。八、合并文件cat fileA fileB fileC来合并文本文件 , 或者 cat file?1-9 fileSum 九、实时监控日志文件(自动刷新内容,UNIX 流模式的最佳好处!), 命令很简单: tail -f FileName 十、find 命令的力量查询大于 1000 个 block 的文件并列出文件的详细信息; find . -size +10000 -exec ls -l ; 十一、同步屏幕输出一个好 AIX 命令 portmir, 分布环境下的好帮手!portmir 是一个优秀的 AIX 独有的小工具。使用它我们可以甚至避免使用 Netmeeting 或者其它类似的远程桌面共享工具。我把它称为命令行界面的“桌面共享软件”。它的使用很简单,十分适于分布环境下的开发团队、系统管理团队协同工作。下面介绍一下使用的步骤,先假设你的使用环境是, 你的用户 ID 是 dev1,你希望 dev2 用户可以访问、附属(attach)到你的 login 界面,以便你们两个人都可以观察、使用同一个命令行界面, 就如同在同一个机器前 (当然如果你和远程用户使用同一个 ID 的时候共享命令行界面更加简单,但是这在很多开发场景里边可能是不允许的。) 1)、使用用户 ID dev1 登陆 login 到你项目组里的 AIX 开发系统上, 这个过程在系统中会打开一个 tty 终端设备, 这里假设它是 pts/1; (确认自己当前登陆界面的 tty 终端设备, 只需要执行命令“who am i”,注意是 3 个分开的单词,命令 whoami 是不能显示这些信息的。) 2)、在你登陆的 ID 的 $HOME 目录下,创建一个文件 .mir touch .mir 3)、编辑这个文件,在这个文件里边增加一行,内容就是你希望使用你的命令行界面的用户 ID, 也就是 dev2, 然后保存退出。 4)、配置结束,远程用户在使用 dev2 用户登陆系统,在他自己的命令行界面下, 输入命令“portmir -t pts/1”既可镜像到你的界面了!两个界面下都可以输入命令,输出会被完全一致的打印在两个命令行界面下。这里给一个简单的例子: 图 2.,portmir 命令输出情况系统界面截图从例子里边可以看到,两个屏幕都可以输入命令,同步显示命令的输入以及输出。怎么样,是不是很神奇?尽情享受吧!十二、调试 shell 脚本UNIX 的强大还体现在它的 shell 语言功能的强大,并且有十分丰富的系统工具。 在 AIX 下我们经常使用的是系统默认的 Korn Shell。通过 shell 语言我们可以写出十分复杂的脚本来自动化处理大量的系统管理任务甚至应用的业务逻辑。实际开发中,调试这些脚本也是很有必要的。 如何调试呢?这需要用到 shell 的内部命令 set。 我们可以通过在需要调试的脚本程序段前后分别执行 set x 和 set +x 来打开、关闭 debug 开关。简单来说打开这个 debug 开关后, shell 在运行脚本时会逐句打印要执行的命令,然后再输出命令执行的结果。通过这个命令我们可以快速定位到 shell 逻辑中存在 bug 或者错误的地方。十三、解决 The parameter list is too long问题我们都使用 ls 命令来查看文件夹下的文件列表。 但是这个命令并不总是成功。比如常常我们会遇到“The parameter list is too long”的报错。 这是为什么?这是因为 shell 本身对输入命令行是有长度限制的。比如在 AIX 默认的 K shell 环境下,命令行的最大长度是 6*4096 字节。(参考 sys0 设备的参数 ncargs)。知道了问题的原因,解决方案也就随之而来了。 那就是, 我们可以修改这个参数(使用 smit chgsys)来增大系统的默认值,但是这需要 root 权限来执行。对于我们大多数的只有普通系统权限的用户, 可以采用减小通配结果的长度或者使用 UNIX 已有的工具来处理。 这里介绍一个常用的命令 xargs find /tmp/ -mtime +7 -print | |xargs -n10 -ti rm 通过这个命令,我们可以找到 /tmp 目录下,七天之前修改的文件并且删除掉, 无论找到的文件有多少。 十四、检查文件系统满的错误我们都知道 UNIX 文件系统是层次结构的。一个路径很深的子目录下面往往可能存在一个很大的文件系统, 比如在 /tmp/tmp1/tmp2/tmp3/tmpx/ 下挂着(mount)一块来自 SAN 存储的大小为 300GB 的文件系统。如果这个子目录的空间使用在一夜之间突然增加, 甚至让人意外的已经满了,向该子目录写入内容的程序都将报错甚至异常退出。那么我们如何查找并定位到有问题的文件?也就是突然增大并填满子目录下的这块 300G 的文件系统的罪魁祸首是谁?刚刚介绍的 find 命令在这里可以大展宏图了,假设这里我们想寻找一夜之内修改、更新过的,大小超过 100MB 的文件, 并且列出最大的十个文件 find /tmp -size +204800 -mtime -1 -ls|sort -rnk7|head 这样基本上我们可以立即定位到有问题的文件,并且进行相应的检查和处理。 简单的情况下我们也可以使用 du 命令来快速定位。 才用“du sk *|sort nk1”命令我们可以依次找到占用最大空间的子目录、文件, 从而快速定位问题的元凶 十五、进制的转换进制的转换(注意只能使用大写)echo obase=16;663|bc 表示输出16进制,输入是663的十进制数echo ibase=16;F|bc 表示输入16进制,输入是十六进制的F十六、使用一个命令来定义目录树$ mkdir -p tmp/a/b/c$ mkdir -p project/lib/ext,bin,src,doc/html

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论