>b
>aa
112
上面的命令将一对分隔号aa之间的内容做为wc命令的输入,分隔号可以是任意字符
2)输出重定向:
>和>>
>若无文件会新建文件,若有文件会覆盖原文件内容
>>为追加
3)错误输出重定向:
2>和2>>
1.3.5.shell的管道
管道可以把很多命令连接起来,前一个命令的输出作为后一个命令的输入
ps-ef|greptpvc
1.3.6.shell中的引用
shell中的引用:
转义字符:
\放在特殊字符前面表示忽略这些特殊字符的原有含义,当做普通字符对待
单引号:
'',放在单引号中的字符串中所有字符的特殊含义都被忽略
双引号:
"",与单引号功能类似,但有些字符如\,$和'不能被转义
1.3.7.常用shell命令
1.3.7.1.系统管理与维护
1.3.7.1.1.ls显示指定目录下内容
语法:
ls[选项][路径或文件]
常用:
ls-a
ls-l
ls-al
ls-d
ls-lrt按时间顺序显示当前目录的文件信息
1.3.7.1.2.pwd显示当前目录的绝对路径
语法:
pwd显示当前目录的绝对路径
1.3.7.1.3.cd改变当前工作目录
语法:
cd[目录名]
常用:
cd目录
cd..
cd-
cd~
cd/
1.3.7.1.4.date显示和修改当前的系统时间
语法:
date[选项][+格式]
常用:
date
date+'Timeis%X%x'
date+'%Y%m%d%H%M%S'
date-s20130114--设置时间
date-s17:
15
date-s2013011417:
15
1.3.7.1.5.passwd修改用户口令
语法:
passwd[用户名]
1.3.7.1.6.su改变登陆的用户
语法:
su[选项][用户名]
常用:
su-tpvc
1.3.7.1.7.clear清除屏幕信息
语法:
clear
1.3.7.1.8.man显示指定命令的帮助信息
语法:
man[命令名]
1.3.7.1.9.who显示目前登陆到系统的用户
语法:
who[选项][file]
常用:
who-buT--显示系统最近启动日期,以及当前每个用户的登陆详情、终端状态
1.3.7.1.10.w显示登陆到系统的用户信息
语法:
w[选项][用户]
常用:
w
wtpvc--指定用户后则只显示该用户的信息,需要验证
1.3.7.1.11.uname显示操作系统的相关信息
语法:
uname[选项]
常用:
uname
>HP-UX
uname-a
>HP-UXtydic44B.11.23Uia642360089707unlimited-userlicense
1.3.7.1.12.uptime输出系统任务队列信息
语法:
uptime
该命令输出当前系统时间、系统开机到现在的运行时间、目前有多少用户在线和系统平均负载等
1.3.7.1.13.last列出目前与过去登入系统的用户相关信息
语法:
last[选项][-n显示列数]
常用:
last-ax--列出登陆者的主机名称或ip,并显示系统关机、重新开机以及执行等级改变等信息
1.3.7.1.14.dmesg显示开机信息
语法:
dmesg[选项]
内核会将开机信息存储在系统缓冲区(ringbuffer)中,如果开机来不及查看相关信息,可以再开机后利用dmesg命令查看,也可以在/var/log/目录中查看dmesg文件
常用:
dmesg
1.3.7.1.15.free显示系统内存状态
语法:
free[选项][-s(间隔的秒数)]
常用:
free-k
free-m
free-k-s5
1.3.7.1.16.ps显示系统进程瞬间的运行动态
语法:
ps[选项]
常用:
ps-ef--显示系统除内核进程以外的所有进程
ps-aux--显示所有用户的进程,以及进程使用的内存情况等信息
1.3.7.1.17.top实时监控系统处理器状态
语法:
top[选项]--类似于windows下的任务管理器
常用:
top
top-d5--指定刷新时间间隔
top-i--不显示闲置或僵死的进程
常用交互命令:
h或?
--查看交互命令的帮助信息
i--忽略闲置进程的开关
q--退出
M--根据进程驻留内存大小进行排序
P--根据CPU使用百分比进行排序
W--将当前的top设置写入到~/.toprc文件中
1.3.7.2.文件管理与编辑
1.3.7.2.1.mkdir创建目录
语法:
mkdir[选项]目录名
常用:
mkdir目录名
mkdir-p多级目录名--当路径中有的目录不存在的时候也会进行创建
1.3.7.2.2.more逐屏显示文件内容
语法:
more[选项]文件名
常用:
more文件名
more-d文件名--在屏幕底部提示符后显示友好信息,关于more命令的帮助信息
1.3.7.2.3.cat将文件的内容打印到标准输出
语法:
cat[选项]文件名
常用:
cat文件名
cat文件1文件2>文件3--此命令可用于连接文件
1.3.7.2.4.diff比较文件的差异
语法:
diff[选项]文件1文件2
常用:
diff-cfile1file2--显示文件全部内容,并标出不同之处
diff-bfile1file2--比较时忽略文件中的空行或行中空格
diff-rdir1dir2--比较两个目录中的文件
1.3.7.2.5.grep过滤文本
语法:
grep[选项]过滤字符串文件名
常用:
grep-c过滤字符串文件名--只显示该字符串在文件中的行数,不显示具体信息
grep-ANUM过滤字符串文件名--除列出符合条件的行外,还列出该行的后几行
grep-BNUM过滤字符串文件名--除列出符合条件的行外,还列出该行的前几行
grep-ffile1文件名--将要过滤的字符串模式写入文件,每行一个字符串
grep-i过滤字符串文件名--搜索时忽略大小写
grep–vgrep–搜索的结果去除掉包含“grep”的行
1.3.7.2.6.rm删除某个文件或目录
语法:
rm[选项]文件或目录名
常用:
rm文件名[文件2...]
rm-r目录名
rm-i文件名--交互式删除
rm-f文件名--删除时不显示错误提示
1.3.7.2.7.touch改变文件的修改时间和访问时间
语法:
touch[选项]设定的时间文件名
常用:
touch-afile1--改变文件的访问时间为当前系统时间
touch-mfile1--改变文件的修改时间为当前系统时间
touchfile1--文件不存在的话创建一个文件
ls-l--显示文件的修改时间
ls-lu--显示文件的访问时间
touch-d"2013012115:
00"file1--将文件的修改时间设定为指定的时间
touch-a-rfile1test.txt--将test.txt文件的修改时间修改为与file1文件一致
1.3.7.2.8.ln在文件或目录之间创建连接
语法:
ln[选项]源文件目标链接名
常用:
链接分为两种,一种是硬链接,一种是符号链接(软链接)。
硬链接是指通过文件的索引节点来进行链接,硬链接的作用是允许一个文件拥有多个有效的路径名,这样用户就可以对一些重要的文件建立硬链接,以防止误删除操作。
因为对应该文件的索引节点有一个以上的链接,只删除一个并不影响索引节点和其他链接,只有当最后一个链接被删除后,文件的数据及目录的链接才会释放,也就是说,此时文件才会被真正的删除。
符号链接(软链接)类似于windows中的快捷方式,因此软连接是一个指向真正文件或者目录位置的符号链接。
lna.txta-bak.txt--对a.txt建立硬链接,名为a-bak.txt
lna.txt/public/bak--对a.txt建立硬链接,链接文件在/public/bak目录下,名称依然是a.txt
ln-fa.txt/public/bak--对文件建立硬链接,如果目标位置有同名文件,这个文件将被删除
ln-ba.txt/public/bak--对文件建立硬链接,如果目标位置有同名文件,这个文件会被备份
ln-sa.txtaa--对文件建立软链接,链接名为aa
ln-sa.txt/public--对文件建立软链接,链接目标位置为/public/,链接名仍为a.txt
1.3.7.2.9.file显示文件类型
语法:
file[选项]文件名
常用:
file命令用来显示文件的类型。
对于长度为0的文件将识别为空文件;对于富豪链接文件,缺省情况下将显示其引用的真实文件路径
file文件名--显示文件的常规类型
1.3.7.2.10.cp拷贝文件或目录
语法:
cp[选项]源文件或目录目标文件或目录
常用:
cpa.txtb.txt--将a.txt文件拷贝一份,名为b.txt
cp-rbak1/public/bak2--递归的拷贝目录bak1里面的内容
cp-abak1/public/bak2--拷贝目录时保留所有的信息,包括文件链接,文件属性,并递归拷贝
cp-pa.txtb.txt--拷贝时保留文件的修改时间和存取权限
cp-ia.txt/public/b.txt--如果目标位置有重名文件,则提示用户是否覆盖
cp-dbak1/public/bak2--拷贝时保留链接,这样将不会丢失链接文件
1.3.7.2.11.find在指定目录下查找指定文件
语法:
find目录名[-options][-print-exec-ok命令{}\;]
目录名指要查找的指定目录
-options该选项主要用于控制搜索的方式。
常用的有以下:
-name'字串'--查找文件名匹配字串的文件,字符串内可有通配符
-lname'字串'--查找文件名匹配字串的链接文件,字符串内可有通配符
-gidn--查找特定用户组id的文件
-uidn--查找特定用户id的文件
-user'字串'--查找特定用户名称的文件
-group'字串'--查找特定用户名称的文件
-empty--查找大小为0的文件或目录
-path'字串'--查找路径名匹配所给字符串的所有文件,字符串内可有通配符
-depth--查找文件时,首先查找当前目录下的文件,然后再查找其子目录下的
-prune目录--指定不搜索的目录,如果该目录已指定了-depth,则忽略此命令
-sizen--查找文件长度为n块的文件
-mtime+n/-n--按时间搜索,+n表示n天之前的,-n表示n天以前到今天的之内的
-type文件类型--按文件类型搜索,b(块设备文件),c(字符设备文件),f(普通文件),l(符号链接文件),d(目录),p(管道),s(socket文件)
-print:
将搜索的结果输出到标准输出
-exec:
对搜索出符合条件的文件执行所给出的命令,不询问用户是否执行。
{}表示文件列表,命令结尾需要以;符号结束。
-ok:
与exec类似,唯一不同是它在执行命令前会和用户确认一下
常用:
find./-nameabc123*--查找当前目录下名称类似abc123*的文件
find/-name*.txt-print--查找当前目录下名称类似*.txt的文件,输出到标准输出
find/-name*.sh-okrm{}\;--查找名称类似*.sh的文件,执行交互式rm命令
如果想根据占用的磁盘空间查找文件,可以用du命令,在后面的文档内容中。
1.3.7.2.12.split分割文档
语法:
split[选项][输入文件][输出文件]
常用:
split命令用于分割文档,将一个文件分成数个。
split-b10Ma.loga_bak.log--分割文件为10M大小的子文件,子文件为a_bak.loga,a_bak.logb.....
split-b2Ka.log-d-a3a_bak.log--分割文件为2K大小的子文件,子文件名为a_bak.log001,a_bak.log002.....
1.3.7.2.13.mv文件/目录改名或移动位置
语法:
mv[选项]源文件或目录目标文件或目录
常用:
mva.txtb.txt--将文件改名
mva.txtdir1--将文件移动位置
mv-ia.txtb.txt--交互式操作,如果目标文件名已存在,则提示是否覆盖
mv-fa.txtb.txt--禁止交互,当目标文件已存在时,默认直接覆盖
1.3.7.3.压缩与解压
1.3.7.3.1.zip/unzip压缩/解压文件或者目录的命令
功能说明:
将一般的文件或者目录进行压缩或者解压,默认生成以“.zip”为后缀的压缩包。
语法:
zip[选项]压缩文件名需要压缩的文档列表
unzip[选项]压缩文件名
常用:
zip-9r/opt/etc.zip/etc
--将/etc目录下的所有文件以及目录进行压缩,设置压缩级别为最高,保存到文件/opt/etc.zip
zip-r/opt/etc.zip/etc-x"*.log"
--将etc目录下除了log文件以外的其他文件进行压缩
zip/opt/etc.zip-detc/passwd
--将压缩文件中的passwd文件删除
zip-u/opt/etc.zip/etc/inittab
--更改了inittab文件,希望把信息更新到压缩文件中
zip-ur/opt/etc.zip/etc
zip-u/opt/etc.zip/etc/*
--上面两个命令的意义相同,将etc目录下有更新的文件信息更新到zip文件中
unzip-o/opt/etc.zip-xetc/inittab-d/etc
--将opt/etc.zip压缩文件全部解压到/etc目录下,除了inittab文件,-o代表如果目标目录有同名文件则直接覆盖不提示,如果是-n则代表不覆盖
unzip-v/opt/etc.zip
--查看压缩的详细信息,具体包括压缩文件中包含的文件大小、文件名、压缩比等,不真正解压
1.3.7.3.2.gzip/gunzip压缩/解压文件
功能说明:
将一般的文件进行压缩或者解压。
压缩文件预设的扩展名为“.gz”,gunzip是gzip的硬链接,但用法也稍有不同,gunzip直接用代表解压。
gzip只能压缩文件,不能压缩目录,如果指定的是目录则只能对目录内的文件进行压缩。
语法:
gzip[选项]压缩或解压的文件名
常用:
tar-cvf/opt/etc.tar/etc/*
gzip-9v/opt/etc.tar
--上面语句则会生成/opt/etc.tar.gz的文件,-v代表压缩时显示文件名和压缩比信息
gzip-l/opt/etc.tar.gz
--查看压缩文件信息,可以查看压缩文件名和压缩比
gzip-d/opt/etc.tar.gz
gunzip/opt/etc.tar.gz
--上面两个命令意义相同,解压文件
gzip/opt/etc.tar.gz
--测试压缩文件的完整性
1.3.7.3.3.bzip2/bunzip2压缩/解压文件
功能说明:
类似gzip/gunzip,只能对文件进行压缩和解压,压缩完成后,在目录下生成以“.bz2”为后缀的压缩包,bunzip2是bzip2的软链接,直接用代表解压;
语法:
bzip2[选项]要压缩和解压的文件
常用:
bzip2-9vk/opt/etc.zip/opt/var.zip/opt/vackup.zip
---k代表压缩后不删除原来的文件,执行此命令后则会在/opt目录下,生成/opt/etc.zip.bz2/opt/var.zip.bz2/opt/vackup.zip.bz2这3个文件
bzip2-d/opt/vackup.zip.bz2
--解压文件
1.3.7.3.4.tar将文件或者目录打包归档
功能说明:
tar是linux下常用的归档工具,是对文件或者目录进行打包归档,归成一个文件,但并不进行压缩。
语法:
tar[主选项+辅助选项]文件或者目录
常用:
tar-cvf/opt/etc.tar/etc
--将etc目录下的所有文件打包,并显示打包的详细文件,打包文件名为etc.tar,放在/opt目录
tar-zcvf/opt/etc.tar.gz/etc
tar-jcvf/opt/etc.tar.bz2/etc
--上面两个命令都是打包后压缩的命令,z代表调用gzip命令压缩,j代表调用bzip2命令压缩
tar-ztvf/opt/etc.tar.gz
tar-jtvf/opt/etc.tar.bz2
--查阅压缩包的内容
tar-zxvf/opt/etc.tar.gzetc/inittab
--仅仅解压压缩文件中的etc/inittab文件,后面的单独文件名是使用-t选项查看得到的
tar-zcvpf/opt/etc.tar.gz/etc
--压缩时保留文件的权限属性等
cd/bak
tar-zxvf/opt/etc.tar.gz
--解压时生成文件的目录为当前目录,因此上面的命令是将文件解压在bak目录
tar-N"2010/1/1"-zcvflog.tar.gz/var/log
--只打包在2010/1/1日期后的文件
1.3.7.3.5.dd转换或拷贝文件
功能说明:
dd命令用来转换或拷贝文件,也可以对设备进行备份。
语法:
ddif="输入文件"of="输出文件"bs="块大小"count="number"
常用:
ddif=/etc/inittabof=/opt/inittab.bak
--拷贝备份inittab文件,类似cp命令
ddif=/dev/sda2of=/opt/sda