Unix 基础知识

来源:互联网 发布:阿里云未备案域名跳转 编辑:程序博客网 时间:2024/05/22 03:26

Unix 基础知识

Unix 基础知识
 
基本命令

1.关于文件和目录处理的命令
ls —— 列目录
常用参数如下:
-a : 在UNIX 中若一个目录或文件名字的第一个字符为“.” , 则使用ls
将不会显示出这个文件的名字,我们称此类文件为隐藏文件。如.profile 、.rcshrc 等
如果我们要察看这类文件,则必须在其后加上参数-a 。
-l : 这个参数代表使用ls 的长( long ) 格式,可以显示更多的信息,如存取权,拥有者( owner ) ,归属组,大小,最後更新时间,及符号链接的位置等等。显示结果如下所示:
drwxrwxrwx 30 root bin 1024 May 23 10:38 u
drwxrwxrwx 2 root sys 512 Jul 28 1999 uacn
drwxrwxrwx 5 root sys 512 Jul 27 1999 udk
lrwxrwxrwx 1 root sys 11 Jul 27 1999 unix -> /stand/unix
drwxrwxrwx 35 root auth 1024 Apr 3 13:45 usr
-t : 按时间排序
pwd —— 显示当前/工作目录
mkdir dirname —— 创建目录
cd dirname —— 改变当前目录
cd .. 到上一级目录
cd ../.. 到上两级目录
cd 到home 目录
cd ~ 到home 目录
cd ~/bin 到home/bin 目录
rm —— 删除
rm filename 删除文件
rm -r dirname 删除目录
cp —— 复制
cp source_file target_file 复制文件
cp -r source_dir target_dir 复制目录
mv —— 移动或改名
mv source target 改名
mv source_file target_dir 把文件source_file 移动到目录target_dir 里
chmod —— 变更文件模式( change mode )
该命令是用来更改文件的存取模式( access mode ) 。在UNIX 一个文件上有可读(r) 可写(w) 可执行(x) 三种模式,分别针对该文件的所有者( onwer) 、同组者( group member )( 你可以ls -lg 来观看某一文件的所属的group ) ,以及其他人( other ) 。一个文件如果改成可执行模式则系统就将其视为一个可执行档,而一个目录的可执行模式代表使用者有进入该目录之权利。
语法:chmod [ -fR ] mode filename ...
主要参数的意义如下:
-f(Force): chmod 不会理会失败的动作。
-R(Recurive): 会将所有子树下的所有子目录及文件改为你所要改成的模式。

chmod 666 * (所有用户都可读、写)
chmod 777 * (所有用户都可读、写、执行)
cat —— 显示文件内容
例:
cat file1 (将文件file1 的内容在屏幕上不停地显示出来)
cat命令还可以用来建立文件,如:
cat >newfile
this is a text
Ctrl+D
即建立newfile 文件,内容为:this is a text
cat file1 file2 >file3 将file1,file2 两个文件接起来生成文件file3
cat f1 f2>>f3 将f1,f2 两文件接在f3文件的尾
more —— 分屏显示文件内容
more 可以将所察看的文件分屏显示出来,并根据使用者的要求换页(B àBack, DàNext ) 或卷行。
如果使用者要在某一个文件中搜寻一个特定的字串,则按/ 然後跟著打所要搜寻的单字即可进行搜寻。
如果你在使用中觉得已经看到了所要看的部份,可以按'q'离开more 的使用。
格式: more filename
head —— 输出文件的开始部分
head filename 在标准输出上显示文件的起始10行
head –n number filename 在标准输出上显示文件的起始number 行
tail —— 输出文件的末尾部分
tail filename 在标准输出上显示文件的末尾10行
tail –n number filename 在标准输出上显示文件的末尾number 行
find —— 查找文件
语法:find path operators
path: 路径operators: 参数
主要参数的意义如下:
! 反向选择
-name filename:寻找的文件名
-print: 将搜寻结果送到标准输出stdout
-atime n: 用文件存取时间(access) 为搜寻条件,n 为数字代表期,单位是24小时。
n不带正负时,表示距今从目前这个期到下个期为止
n为负号时(-),表示距今这个期之前。
n为正号时(+) ,表示距今大於这个期的时间。
例:
若n为3(不带正负号),表示距今72~96小时。
若n为-3( 带负号),表示距今0~72小时内。
若n为+3( 带正号),表示距今超过72小时,也就是>72 小时。
-mtime n: 用文件修改时间(modification) 为搜寻条件,n以24小时为期。
例:
find . ! -name “*.dyn”–print 查找当前目录后缀名不是dyn 的文件
find /sim -mtime 7 -print 查找sim 目录下7天前(当天)修改的文件
grep —— 关键字文件
语法:
grep 关键字<文件名>
主要参数说明:
-i 忽略大小写查询
例:
ps –ef|grep madymo 查看关键字为madymo的进程信息
ln —— 创建符号链接
链接(link) ,可以将其视为文件的别名。而链接又可分为两种: 硬链接(hardlink) 与软链接(symbolic link),硬链接的意思是一个文件可以有多个名称,而软链接的方式则是产生一个特殊的文件,该文件的内容是指向另一个文件的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
不论是硬链接或软链结都不会将原文件复制一份,只会占用非常少量的磁碟空间。
ln -f source dist 是创建一个硬链接(dist) 到source
ln -s source dist是创建一个软链接(dist) 到source
tar —— 文件打包或解包
tar –cvf file.tar file1 file2 把file1,file2打包成file.tar
tar –cvf file.tar dir1 dir2 把dir1, dir2目录下所有文件打包成file.tar
tar –xvf file.tar 把file.tar解包
gzip/gunzip —— 文件压缩/解压缩
gzip * 把当前目录下所有文件压缩
gzip –d file.gz 解压缩file.gz
gunzip file.gz 解压缩file.gz
最常用的是先把文件打包,在压缩。

2.关于进程操作的命令
ps —— 显示进程的状况
主要参数说明:
-e 显示系统中所有的进程,除了核心进程
-A 显示系统中所有进程
-f 显示进程的详细信息
-u ulist 显示由ulist指定用户名或用户标识号的进程信息
-o Format 参数中的Fomat格式
%u 显示进程所属用户名
%p 显示进程号
%C 显示该进程CPU利用率
%a 显示创建进程时所执行的命令,包括所有命令行的参数
如:
ps -e -o “%C %a”–usafety 显示safety用户的命令及进程CPU利用率
kill —— 发送信号给进程
kill –l : 获得信号列表
kill –9 pidlist: 杀死pidlist 中的进程

3.查看系统资源使用的情况
ymstat —— 统计系统资源使用情况
语法:
vmstat< 间隔> < 测试数量>
如:
ymstat 2 3
将显示:
kthr memory page faults cpu
r b avm fre re pi po fr sr cy in sy cs us sy id wa
6 2 1423725 2180854 0 0 0 11 24 0 869 44230 875 52 1 47 0
9 0 1423729 2180850 0 0 0 0 0 0 868 322864 598 95 5 0 0
9 0 1423729 2180850 0 0 0 0 0 0 863 268531 843 97 3 0 0
97:CPU使用了97%
3 :系统占用3%
0 : CPU空闲0%
du —— 报告文件或目录占用的磁盘空间
du –k 输出以1024字节为计数单位的大小
df —— 报告文件系统磁盘空间的使用情况
df –k 指定块大小等于1024字节来显示使用状况
who —— 查询目前有那些用户在线
su —— 切换用户
su nvh
exit 退出su命令环境
login —— 切换用户
rlogin —— 远程登陆
rlogin 128.20.5.114

4.网络链接
ftp——文件传输协议
ftp 的意义是File Transfer Program ,是一个很常应用在网路文件传输的程序。
格式:
ftp [ hostname | ip-address ]
在进入ftp 之後,如果与remote host 链接上了,它将会询问你用户名与密码,如果输入对了就可以开始进行文件传输。
ftp中常用命令:
ascii:将传输模式设为ascii 模式。通常用於传送文字档。
binary:将传输模式设为binary 模式,通常用於传送执行档,压缩档与影像档等。
cd remote-directory: 将remote host(远方)上的工作目录改变。
pwd :显示remote host的工作目录
lcd [ directory ]: 更改local host (本地)的工作目录。
ls [ remote-directory ] [ local-file ]:列出remote host 上的文件。
get remote-file [ local-file ] :取得远方的文件。
mget remote-files :可使用通用字元一次取得多个文件。
put local-file [ remote-file] :将local host 的文件送到remote host。
mput local-files :可使用通用字元一次将多个文件放到remote host 上。
help [ command ]:线上辅助指令。
mkdir directory-name :在remote host 造一个目录。
prompt/prom :更改交谈模式,若为on 则在mput 与mget 时每作一个文件之传输时均会询问。
!命令:执行本地命令,如!pwd 则显示本地丹青目录
quit/bye/by 离开ftp .

telnet——仿真终端程序
telnet 是一个提供user 经由网路连到remote host。
格式:
telnet [ hostname | ip-address ] [ port ]
链接成功后可以执行remote host上的命令。
如:
telnet 128.20.5.114

运行命令
标准输入(stdin)
平时为键盘,可用< 转向。
例∶mail b82000 < myfile 可将myfile 文件寄给b82000
标准输出(stdout)
平时为屏幕,可用> 转向,用>> 可将结果附加(append)在文件尾端。
例∶finger b81045 > myfile 可将查询结果写在myfile 文件上。
标准错误输出(stderr)
平时为屏幕,如stdout 被转向,仍可在屏幕看到错误讯息。stderr 可用>& 转向,用>>& 将错误讯息附加在文件尾端。
管道
管道的符号是"|",用来连接两个命令。"|" 左边指令的输出作为"|" 右边指令的输入。例∶ls -l .. | more 可将上一层目录内容以一页一页方式显示
后台运行
在命令后面加&,则命令以后台方式运行
与shell 无关运行
nohup command &

其他命令
1.awk (略)
2.perl(Practical Extraction and Report language)
Perl 变量
(1)纯变量(scalar)
$a=1;
(2) 数组(Array)
@a=(1,2,3);
$a[0]=1;
(3)关联数组(Associative array)
%a=(‘x’=>1,’y’=>2);
$a{‘x’}=1;
基本输入输出
(1)输入
$a=<STDIN>;#读取标准输入,并把结果赋值给$a
(2)输出
Perl用print和printf向标准输出设备输出
print $a,”/n”;把$a的值输出到标准输出
控制结构
指令: if 假如
if (判别运算式一){
判别式一为真时的语句块;
}elsif( 判别运算式二){
判别式二为真时的语句块;
}else{
所有判别式为假时的语句块; 
}
指令:unless 假如非
unless(判别运算式){
判别式为假时语句块;
}else{
判别式为真时语句块;
}
指令:while 当..
while(判别运算式)
{
程序叙述区块;
}
指令:do while 当..
do
{
程序叙述区块;
}while( 判别运算式);
在while和do while循环中最大的不同是在do while循环中,程序叙述区块至少会被执行一次。
指令:until 直到...才
until(判别运算式){
程序叙述区块;
}
上个语法在Perl中也可以写成: 程序叙述区块until (判别运算式);
指令:do until 直到...才
语法:
do{
程序叙述区块;
}until ( 判别运算式);
指令:for 循环陈述
for (初始化运算式;判别运算式;循环过程运算式)
{
程序叙述区块;
}

for $variable(@array)
{
程序叙述区块;
}
指令:foreach 循环陈述
foreach $variable(@array)
{
程序叙述区块;
}
指令:last 退出循环
指令:next 继续循环
指令:goto 跳转
goto label

文件操作
打开及关闭文件
open(FILEHANDLE,"abc.txt");
该调用为读文件打开,若为写文件而打开,需在文件名前加上大于号:
open(FILEHANDLE,">abc.txt");
若要追加至文件尾,可在文件名前加上两个大于号:
open(FILEHANDLE,">>abc.txt");
close(FILEHANDLE) 关闭文件

#!/usr/bin/perl
if(@ARGV==0)
{
print "Please input filename:/n";
$_=<STDIN>;
chop($_);
D2U($_);
} else{
for(@ARGV)
{
D2U($_);
}
}
sub D2U{
my($JobFN)=@_;
if(!(-e $JobFN))
{
warn("File $JobFN doesn't exist!/n");
return 1;
}
$TmpFN='Tmp$$$.$$$';
open(TmpHnd,">$TmpFN")|| die("Can not create temp file---$!/n" );
open(JobHnd,"$JobFN");
while(<JobHnd>)
{
chomp;
(substr($_,-1,1) eq "/r")&&chop;
print TmpHnd "$_/n";
}
close(JobHnd);
close(TmpHnd);
unlink($JobFN);
rename($TmpFN,$JobFN);
print "Done with file '$JobFN'!/n";
}
 
原创粉丝点击