总结常用AIXUNIX的命令.docx
《总结常用AIXUNIX的命令.docx》由会员分享,可在线阅读,更多相关《总结常用AIXUNIX的命令.docx(63页珍藏版)》请在冰豆网上搜索。
总结常用AIXUNIX的命令
1.Unix操作系统简介
UNIX/LINUX是多用户多任务操作系统,winodows是单用户多任务操作系统,所以大型项目普遍都在UNIX环境下开发
2.什么是脚本
脚本就是命令集合
3.什么是shell?
Shell是一个交互的命令解释器。
命令是在SHELL提示符下键入,shell会遵照执行键入的命令。
用户通过shell与计算机交互。
shell从键盘获得用户键入的命令,然后将命令翻译为内核能够理解的格式。
然后系统就会执行这个命令。
一些通常使用的shell
/usr/bin/shPOSIXshell
/usr/bin/kshKornshell
/usr/bin/cshCshell
/usr/bin/rkshRestrictedKornshell
/usr/bin/rshRestrictedBourneshell
POSIXshell、是一个POSIX兼容的命令编程语言和命令解释器。
它可以从终端或者是一个文件中读取并且执行命令。
POSIX在许多方面同kornshell相似。
有历史机制。
支持任务控制,和其他有用的特性。
Kornshell同POSIXshell十分类似,是由贝尔试验室的DavidKorn开发的。
Bourneshell:
缺乏许多在POSIX,和kornshell中的功能。
它是由StephenR.Bourne开发的,是AT&Tunix中最先使用的shell
Cshell。
是一个普通的语言解释器,有命令历史机制,类似C语言的语法。
和任务控制工具。
它是由universityofCaliforniaatBerkeley的williamJoy开发的。
Rsh和rksh是Bourneshell和Kornshell的受限制的版本。
受限制的shell在设置登录名和环境的时候比普遍的shell有更多的限制。
受限制的shell使用起来就象是具有异常现象的标准的shell。
4.Shell编程
Shell编程遵从经典UNIX哲学:
把复杂的问题分解成简单的小问题,然后再把各部分功能组合起来解决复杂问题
什么时候不适合使用Shell编程:
●资源紧张的项目,特别是那些速度是重要因素的地方(排序,散序,等等)
●程序要进行很复杂的数学计算,特别是浮点计算,任意精度的计算,或者是复数计算(应该用C++或是FORTRAN代替)
●要求交叉编译平台的可移植性(使用C或者是Java代替)
●需要结构化编程的复杂应用(需要变量类型检查和函数原型等等)
●对于影响系统全局性的关键任务应用。
●安全非常重要。
你必须保证系统完整性和抵抗入侵,攻击和恶意破坏。
●项目由连串的依赖的各个部分组成。
●多种文件操作要求(Bash被限制成文件顺序存取,并且是以相当笨拙,效率低下的逐行的存取方式)
●需要良好的多维数组支持。
●需要类似链表或树这样的数据结构。
●需要产生或操作图象或图形用户界面。
●需要直接存取系统硬件。
●需要端口号或是socketI/O。
●需要使用可重用的函数库或接口。
●所有的私有的不开源的应用程序(Shell脚本的源代码是直接可读,能被所有人看到的)
5.telnet连接远程主机
6.man联机帮助手册命令
7.passwd更改用户密码
8.uname显示当前操作系统名称
9.clear清屏
clear命令清除终端屏幕上的字符。
这个命令仅仅清除当前的屏幕
10.alias定义或显示别名
别名就是命令的一个新的名称。
使用别名可以缩短长命令行输入,创建新的命令,或用一种称为别名的新的命令来替代原始的命令执行。
别名的组成可以是一个字母或一个短的单词。
例如,许多的人非常频繁地使用ps–ef命令。
如果你使用psf代替这个命令是否会更容易一些?
你使用alias命令可以创建别名:
$aliasname=string
在这里,name是你要取的别名,而string是name要取代的命令或者字符串。
如果string包括有空格,你要需用引号将整个字符串括起来。
别名对于减少键盘输入,减少打字错误,或是创建新的命令会很方便。
11.who识别当前系统登录的用户
12.whoami(logname)显示登录名
13.cal显示日历
14.date显示或设置日期或时间
date命令被用来报告系统的当前日期和时间。
date可以加上参数来更改输出的格式,通常date命令不带任何选项和参数使用。
系统管理员有权限修改系统时间和日期。
●比对日志时间
●脚本中取系统时间
15.bc计算器
功能很强大,一般只用到基本四则运算功能.
16.time打印命令的执行时间(以秒为单位)
实际时间(只关注)
用户时间
系统时间
17.echo将字符串写入标准输出
echo命令使你可以显示命令行参数的,这个意思是,一个如下的命令:
$echohello
输出:
helllo
这看上去十分平常,但是这个命令让我们可以佷方便地在shell程序中显示用户信息和检查shell变量的值。
在shell编程中,echo命令用的很普遍。
18.设置SHELL变量
shell变量是一个名称,代表一个值,与这个名称管关联的值可以被修改
一些shell变量是在登录的过程中定义的。
用户可以自己定义新的shell变量
语法:
name=vales
例子:
除非有必要,否则勿使用系统中已使用的变量
19.rev逆转文件每一行中的字符
20.tr转换字符
21.pwd显示工作目录路径名称
22.UNIX文件系统及结构
UNIX系统提供文件系统来管理和组织你的文件和目录。
文件通常是数据的一个容器,而目录是文件和(或)其他目录的容器,一个目录包含下的另一个目录通常被称为子目录。
文件系统树型结构
目录结构能够用一个层次化的树形结构来表示。
树上的每一个分支可以是目录或者文件。
目录用椭圆来表示,文件用矩形来表示,以便在图中能够区别它们。
在目录的顶端是根目录(因为它在一个倒转的树的顶部),根目录由一个反斜杠(/)来表示。
23.相对路径和绝对路径
.当前路径
..上级目录
绝对路径
给出文件或目录的位置的完全的描述,通常由层次结构的顶端开始(根目录),通常第一个字符是/(以/根目录开头的路径就是绝对路径)
相对路径
通常由目录结构中的当前的位置开始,不由"/"开始,相对当前的位置只有唯一表示方法,一般都比绝对路径要短。
(非/根目录开头的路径就是相对路径)
24.cd改变目录
cd命令让你改变目录,并且移动到层次结构中的其他位置。
语法:
cdpath_name
其中,路径名是你想要去的目录相对或绝对的路径名。
当执行cd命令不带参数时,你会回到你的HOME目录,所以,如果你在目录中迷路,简单地键入cd会让你回到HOME目录。
注释:
当使用cd命令在文件系统中移动时,切记要经常使用pwd命令来确认你所处的位置
技巧:
cd-,cd命令有一个你先前进入的目录的储存器,(存储在环境变量OLDPWD中),这个目录可以通过cd–来存取。
25.ls显示目录的内容
ls命令的作用是列出目录和文件的名称
如果没有参数,ls会列出当前目录下的文件和目录名。
ls也可以接收指定文件或目录的相对和绝对路径名作为参数。
当文件的路径被提供给ls,ls会报告指定文件的信息。
当一个目录的路径被提供给ls,ls会显示指定目录中的内容。
ls有许多选项。
这些选项提供附加的信息。
一个命令行可以支持多个选项,以显示更多更全的文件或目录的信息。
其中常用的选项如下:
-a列出所有的文件,包括以点(.)开头的文件,通常,这些文件是隐藏的,除非使用–a选项才会显现出来,这些以点开始的文件通常记录你用户线索和应用的配置信息。
-d列出目录的描述,而不是列出目录的内容。
通常与-l一起使用来显示目录的状态。
-l提供一个关于每个文件德描述属性的长列表,包括类型,模式,链接数,属
主,组,大小(字节),更改日期,和名称。
-F在每个目录后面添加反斜杠(/),在可执行文件后面添加星号(*)。
-R递归地列出给出的目录和所有子目录中的文件。
user代表文件的所有者
group代表对文件有存取权限的组
other代表系统中的其他所有的用户
-l详细信息
-t创建时间
第一个字符d表示目录,-表示普通文件后面9位表示权限位
使用-a可以看到隐藏文件
26.basename返回字符串参数的基文件名
27.cat连接和显示文件
cat命令的运用是查看单个文件的内容,
catfunfile
这会将文件funfile的内容输出到屏幕上,然而,如果这个文件超过终端屏幕显示的大小,文件的文本会快速地向下滚动使你几乎看不清楚内容。
优点:
不需要使用繁琐的vi命令,对应1G以上的文件vi不支持,但cat支持
28.mkdir创建一个或多个新目录
mkdir命令可以创建目录,这些目录能被用来帮助组织我们的文件。
每当一个目录被创建,两个子目录会被自动地创建,它们是代表当前目录的点(.),和代表父母目录的点点(..),请注意,创建目录不会改变你当前在文件系统中的位置。
mkdir的参数代表的是新的目录名。
技巧:
mkdir-p
29.rmdir删除一个或多个目录
rmdir命令可以删除一个目录,被删除的目录必须是空的(也就是除了点和点点外没有其他的东西),同时,你不能删除在你当前目录和根目录之间的目录。
rmdir的参数必须是已经存在的目录名。
30.chmod改变文件或目录权限
chmod命令被用来更改一个文件或目录的存取权限,只有文件的属主(或root-系统管理员)才能改变权限。
文件和目录有三种类型的存取权限:
read(读)
write(写)
execute(执行)
你可以指定你想要更改的权限的类型:
r读的权限
w写的权限
x执行的权限
和你如何更改权限:
+增加权限
-减少权限
=将权限设置为
你同时可以指明你想要修改哪一组的权限:
u用户(文件的属主)
g组(文件关联的组)
o其他用户
a所有用户(系统中的每个用户)
none分配权限给所有的域
注释:
想要禁止一个文件的所有的权限,键入以下的命令:
chmod=文件名
31.touch更新文件的访问和修改时间
touch命令可以用来创建新文件,空文件。
如果指定的文件已经存在,touch会更新文件的时间标志。
它对文件的内容没有影响。
touch命令有以下选项:
-atime更改存取(Access)时间为指定的时间
-mtime更改修改(Modify)时间为指定的时间
-ttime使用指定时间(time)来代替当前时间。
-c如果文件不存在,不创建新文件。
等价于”>”命令,>为标准输出
32.cp复制文件
cp[-i]file1new_fle拷贝一个文件
cp[-i]file[file…]dest_dir拷贝一个文件到一个目录中去
cp–r[-i]dir[dir…]dest_dir拷贝目录
●复制目录使用-r参数(r递归)
●注意:
如果2.sh是已存在的文件,则原2.sh内容会被替换,如2.sh文件不存在,则2.sh会被新建
33.rm删除文件或目录(该命令慎重使用)
rm命令被用来删除文件。
一旦文件被删除是不可挽回的,rm命令至少要有一个参数(一个文件名),如果指定的文件名超过一个,所有的指明的文件都会被删除。
以下是最常用的选项:
-f强制删除文件—用户不会得到任何提示,甚至在发生错误的时候。
-r递归地删除指定目录中的所有的内容。
-i询问或交互模式,它会要求用户确认来完成删除。
你的回答有y(yes)和n(no),回车的作用和回答no是一样的。
注意:
通常是在极端的情况下才能使用–r选项。
使用不正确,会删除你的所有的文件,一旦一个文件被删除,只能从备份磁带上恢复这个文件。
如果你必须要用–r选项,请和-i选项一起应用。
34.mv移动或重命名文件或文件夹
mv[-i]filenew_file重命名一个文件
mv[-i]file[file…]dest_dir移动一个文件到一个目录下去
mv[-i]dir[dir…]dest_dir重命名或是移动目录
重命名
转移文件或文件
35.file确定文件类型
36.tee显示程序的输出并将其复制到一个文件中
37.wc统计行数、字数、字节数或字符数
wc[-lwc][file...]计算一个文件的行数,单词数,和字符数
-l选项会显示行数,
-w选项会显示字数,
-c选项会显示字符数。
选项的顺序没有要求,输出的结果都是按行,字和字符数排列。
38.du描述磁盘使用情况
在文件系统满了或者我们希望得知某个目录或文件对文件系统存储空间的使用情况时,可以使用du命令。
du命令为diskusage的缩写。
在使用这个命令时可以指定一个或多个目录
$du/home/yxz
2/home/yxz/Unix.dir
10/home/yxz
$
使用上述命令,就能查出系统中某个用户占用了多少磁盘空间(假定用户只能在他的HOME目录下建立文件)。
如果没有指定文件或目录名的情况下,du将显示当前目录占用的磁盘空间的情况。
显示出的信息中包含有指定目录下所有的各个子孙目录,磁盘空间的使用情况。
若要得知每个子目录及文件的信息,可以加上-a选项。
若只想知道指定的目录占用磁盘空间的总数,可以使用-s选项。
还有一些其它的选项可以参考联机帮助手册。
39.df报告文件系统空间使用情况
40.more在显示屏幕每次一屏显示连续的文本
大文件使用该命令
41.page(pg)
42.查找历史命令
方法:
1.vi$HOME/.sh_history;
2.esc键=>输入“/”=>输入要查找的命令(如果有很多条类似的命令,可以输入n(向下查找)N-(向前查找))后再回车;
43.su切换用户
su–username
一些配置文件是为你的的对话线索而设立的。
。
当你使用命令suusername时,你的对话特征和你原始的登录身份一样。
如果你想要你的对话进程拥有转换后的用户ID一致的特征,你要使用短斜杠:
su–username.
如果没有参数,su命令将你转换为root(系统管理员)。
root帐号有时也被称为超级用户,因为这个用户可以存取系统中的任何文件。
也正是这个原因,许多人将su命令看成是supper-user(超级用户)的一个缩写。
当然,你必须要提供root密码。
注释:
想要回到你原先的用户身份,不要再使用su命令,你只需要使用exit命令退出你使用su命令而生成的新的对话进程。
44.标准输入,标准输出,和标准错误
shell提供重定向一个命令的输入和输出的功能。
大多数的命令的输出是输出到终端屏幕;比如date,ls,who等等,很多命令从键盘得到输入,命令包括mail,write,cat。
在UNIX系统中任何对象都是一个文件,包括终端和键盘都是一个文件。
输出重定向让你将一个命令的输出送到除终端以外的其他的文件中。
而输入重定向让你从键盘以外的文件中得到输入。
输出重定向可以用来捕获一个命令的输出,作为日志记录记录下来,或者对其进行更进一步的处理。
输入重定向可以让你可以使用一个编辑器创建一个文件,然后将这个文件送到一个命令,而来代替没有编辑的能力的交互式的输入方式。
输入重定向-<
任何命令,只要能从标准输入得到的输入,都可以被重定向从另外一个文件得到输入
输出重定向>和>>
所有的可以输出到标准输出的命令都能重定向输出到另外一个文件。
例子;
建立/覆盖建立/增加
$date>date.out$ls>>ls.out
$date>who.log$who>>who.log
$cat>cat.out$ls>>who.log
错误重定向-2>和2>>
$cp2>cp.err创建/覆盖
$cp2>>cp.err创建/增加
45.|管道命令
如果你使用I/O重定向来完成过滤一个命令的输出的操作,你会首先重定向一个命令的输出到临时文件然后过滤这个临时文件的内容,而当你完成这些操作后,你又要删除这个临时文件。
虽然这种方式扩展了命令的能力,但是删除临时文件的操作显得不是很方便。
管道让你直接将一个命令的输出传送到另一个命令的输入,你不需要创建中间文件,因此当你完成操作的时候不需要进行清除操作。
这就是UNIX系统的灵活和强大的具体体现:
命令和命令可以被链接在一起,提高了单个命令行的处理能力。
可以通过管道把一个命令的输出传递给另一个命令作为输入。
管道用竖杠|表示。
它的一般形式为:
命令1|命令2
其中|是管道符号。
46.find查找文件
find命令是在唯一个在文件系统中进行查找的命令。
$find.-name"*COB"#在当前目录下查找COB后缀的文件
$find$src-name"*COB"等价于find/fns/h/r/src-name"*COB"#在$src目录下查找COB后缀的文件
$find$src-name"LIB*"-typed#在$src目录下查找LIB开头的目录
$find$src-name"*LIB"-typef#在$src目录下查找LIB结尾的普通文件
$find/etc-typed-print#在/etc目录下查找所有的目录
$find.!
-typed–print#在当前目录下查找除目录以外的所有类型的文件
$find.!
-name"*.BH?
"#查找文件名不为.BH的所有文件
$find/etc-typel–print#在/etc目录下查找所有的符号链接文件
$find.-perm744-name"*_*"–print#查找权限为744且文件名中间有_的文件
$find/-mtime-5–print#希望在系统根目录下查找更改时间在5日以内的文件
$find/var/adm-mtime+3–print#为了在/var/adm目录下查找更改时间在3日以前的文件
47.正则表达式
正则表达式元字符
元字符
功能
示例
匹配对象
^
行首定位符
‘^love%’
匹配所有以love开头的行
$
行尾定位符
‘love$’
匹配所有以love结尾的行
.
匹配一个字符
‘l..e’
匹配包含一个l,后跟两个字符,再跟一个e的行
*
匹配0或多个前一个字符
‘*love’
匹配包含跟在0个或多个空格后的模式love的行,等价于{0,}。
[]
匹配一组字符中任一个
‘[Ll]ove’
匹配包含love或Love的行
[^]
匹配不在指定字符组内的字符
‘[^A-K]ove
匹配不包含A至K间的、后跟ove的行
\<
词首定位符
‘\匹配包含以love开头的词的行
\>
词尾定位符
‘love\>’
匹配包含以love结尾的词的行
\(..\)
标记匹配的字符
‘\(love\)ing’
标记寄存器里的一段字符,该寄存器被记作1号寄存器.以后引用这段字符时,可以用\1来重复该模式.9个标签中最左边的时第1号.例如,模式love被保存在1号寄存器里,之后用\1来引用它.
x\{m\}或x\{m,\}或x\{m,n\}
字符x的重复出现:
m次;至少m次;至少m次但不多于n次
‘aa\{5\}’
‘aa\{5,\}’
‘aa\{5,10\}’
匹配连续出现5个aa;至少5个aa;5到10个aa的行
通配符
●*用来匹配前面一个字符是否在字符串中出现零次或多次.
1.+用来匹配前面一个字符.一次或多次.
2.?
用来匹配前面一个字符零次或一次.
3.| 指定可以匹配其前面的或后面的正则表达式
4.() 对表达式进行分组
常用的正则表达式:
^行首
$行尾
^[the]以the开头行
[Ss]igna[lL]匹配单词signal、signaL、Signal、SignaL
[Ss]igna[lL]\.同上,但加一句点
[mayMAY]包含may大写或小写字母的行
^USER$只包含USER的行
[tty]$以tty结尾的行
\.带句点的行
^d..x..x..x用户、用户组及其它用户组成员有可执行权限的目录
^[^l]排除关联目录的目录列表
[.*0]0之前或之后加任意字符
[000*]000或更多个
[iI]大写或小写I
[iI][nN]大写或小写i或n
[^$]空行
[^.*$]匹配行中任意字符串
^......$包括6个字符的行
[a-zA-Z]任意单字符
[a-z][a-z]*至少一个小写字母
[^0-9\$]非数字或美元标识
[^0-0A-Za-z]非数字或字母
[123]1到3中一个数字
[Dd]evice单词device或Device
De..ce前两个字母为De,后跟两个任意字符,最后为ce
\^q以^q开始行
^.$仅有一个字符的行
^\.[0-9][0-9]以一个句点和两个数字开始的行
'"Device"'单词device
De[Vv]ice\.单词Device或device.
[0-9]\{2\}-[0-9]\{2\}-[0-9]\{4\}日期格式dd-mm-yyyy
[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}IP地址格式nnn.nnn.nnn.nnn
[^.*$]匹配任意行
======================================================================
[:
alnum:
] 可打印字符(含空白字符)
[:
alpha:
] 字母字符
[:
blank:
]