Unix常用命令

来源:互联网 发布:seo课程培训 编辑:程序博客网 时间:2024/06/17 05:55
Unix常用命令


根据《Learning the Unix Operating System》整理的一些工作中会常用的命令,大概分下面3个方面

文件目录操作

任务管理

网络服务




文件系统

登录时的目录:home directory
根目录:/
标准一级子目录:bin, etc, users, tmp, usr 等等
bin:系统程序
users:不是每个Unix系统都有这个目录,可能是u,或者是home


shell支持Tab键自动完成,比如输入文件、目录前1、2个字符按Tab,shell会试图自动填充完整文件、目录名。


文件夹(目录)操作命令


显示当前目录的路径
pwd  (print working directory)

进入文件夹/切换工作目录
cd pathname

返回到登陆时的home目录
cd

(symbolic link, FIFOs, socket 在unix上都有pathname)

查看目录
ls

ls的命令格式
ls options 路径(文件、目录)

查看目录,包括隐藏文件
ls -a

单个点. 表示当前目录
两个点.. 表示上级目录
以一个点.开始的文件 表示这是隐藏文件(或子目录)

查看目录下的,文件和子目录的详细信息
ls -l

d  rwx r-x r-x  
第1列 d表示这是目录,-表示这是文件
第2-9列 每3个字符一组,分别对应1、当前用户;2、当前群组;3、所有其他用户,这3类用户的存取权限,r表示‘读’权限,w表示‘写’权限,x表示‘执行’权限,对目录而言:r表示是在ls命令中可显示,w是更新目录内文件权限,x是‘存取’权限
第10列(数字) 链接到这个文件(目录)的文件(目录)数量。
第11列(名称) 文件的所有者(创建者)
第12列(名称) 群组名,持有文件的群组名
第13列(数字) 文件(目录)大小,单位字节bytes。注:目录大小只是目录文件本身的大小,不包括目录内文件。
第14列(日期时间) 上次修改时间,对目录而言是目录的内容更改时间(目录内文件的增删改)
最后1列(名称) 文件(目录)名

查看目录下的,只看文件、子目录名
ls -F

查看目录下的,文件及其子目录下的文件
ls -R


创建目录
mkdir
命令语法
mkdir dirnames

创建2个新目录
mkdir spy boston.dine
用空格分隔多个要创建的目录名。

文件操作命令

文件名的通配符
* 表示任何文件、目录名,也可以ae*,表示ae开头的任何文件名
? 表示单个字符的通配,h?p 匹配 hop,hip,不会匹配help
[] 表示几个可选字符匹配单个字符,比如[Cc]hapter,匹配Chapter,chapter,还可以用-指定可选字符范围比如chap[1-3]匹配chap1,chap2,chap3


权限

修改文件(目录)存取权限
chmod
命令格式:
chmod permissions files


2种修改权限的方法:
一种是相对修改,在现有权限的基础上增加或减少权限
另一种是绝对修改,更改权限到指定的权限


当前目录不允许任何人可write
chmod a-w .
修改当前目录的权限 用一个点.表示当前目录
这是相对修改权限,第1个参数a表示所有用户类型,减号-表示减少权限,w表示‘write’权限。


当前用户可以write指定文件
chmod u+w filename
这是相对修改权限,第1个参数u表示当前用户user,加号+表示增加权限。


当前用户和当前群组的用户都能read和write当前目录下的所有文件(和目录)
chmod ug=rw *
这是绝对修改权限,u表示当前用户,g表示当前群组用户,=表示绝对修改权限,r是‘read’权限,w是‘write’权限,* 是文件名通配符


当前用户和当前群组的用户都能read和write指定文件(列表)例子是对afile、bfile、cfile这3个文件
chmod ug=rw afile bfile cfile

chmod go-rwx dirname


指定目录只对自己可以存取
chmod go-rwx dirname
g是group users,o是others users,减号-是去掉权限,r是read权限,w是write权限,x是execute权限


指定目录只对自己可以存取(第2种实现)
chmod go= dirname
指定group和others的绝对权限为空


自己具有全部权限,group和others可以查看文件、目录内容
chmod u=rwx,go=rx dirname
注意:group和others没有write权限的话,就不能rename、remove和add文件


查看自己所属群组
groups


更改文件、目录所属的群组
chgrp csstudnt csc303
csstudnt 是新的群组名, csc303 是目录(文件)名

022 表示 rw-r--r-- 权限,自己可以读写,其他人只能读
002 表示 rw-rw-r-- 权限,自己和群组可以读写,其他人只能读


删除文件

rm filename(s)
如果文件名中有特殊字符,前后加双引号”“,(在MacOSX上,如果文件名出现@符号,在最后一个双引号”后再加一个@)


删除指定目录及其下所有文件
rm -r dirname


删除所有扩展名为.old的文件,和一个chap10的文件。
rm *.old chap10


删除目录(目录必须为空,不为空不能用该命令删除)
rmdir dirnames

编辑文件

文本编辑器(shell),很多时候要编辑一些配置文件,需要用到。
vi
emacs
pico

复制文件

复制文件Copy文件
cp
语法
cp old new


copy一个文件到当前目录,并重新命名 (如果copy to目录不存在,就会以目的名称创建相应的文件或目录)
cp /etc/passwd password 


copy多个文件到指定目录(如果copy to目录存在,就会复制文件目录到指定目录下)
cp ../john/ch1 ../john/ch2 ../john/ch3 work


copy多个文件(用通配符)
cp -i ../john/ch[1-3] work
-i 当发现有同名文件,提示是否覆盖


copy文件到当前目录(用一个点.表示当前目录)
$ cp ../john/ch[1-3] .


copy整个目录(包括其下所有子目录和文件)
cp -R john/work asha/work
-R 嵌套执行复制的意思


中止copy过程
CTRL-Z

MacOSX 的有些文件会有2个分支forks,一个是资源,一个是数据,这种文件要拷贝copy最好用CpMac命令。
CpMac


重命名文件

mv old new


移动文件

mv old new

查找



find . -type f -name "chap*" -print
.表示查找当前目录
-type f 表示只查找文件类型
-name "chap*" 查找以chap开始的文件


find . -type f -mtime -2 -print
-mtime -2 最近2天创建和有修改的文件


查找全部包含指定名称的文件(整个文件系统)
locate alpha

搜索文件(按正则表达式)
grep “pattern” files


搜索当前目录下所有包含Unix的文件
grep "Unix" *

输入输出重定向

<  比如mail bigboss@corp.xyz < to_do 把要从键盘输入的邮件内容,通过<重定向到to_do这个文件去
>  把执行输出结果重定向到文件
|  pipe operator,把一个程序的标准输出对接到另一个程序的标准输入。
>> append redirection operator


把一个文件最加另一个文件中(最尾部),然后生成一个新文件
cat file1 file2 > newfile


把一个文件最加另一个文件的尾部
cat file2 >> file1

列出当前目录内容,标准输出重定向到grep,作为grep的查找范围。grep查找包含“Aug”的文件列表
ls -l | grep "Aug"


查找以carol开始,Aug结束,中间有0个或多个字符的文件,.是正则表达式的通配符,*是正则表达式中出现的量词
ls -l | grep "carol.*Aug"


按条件搜索,对查询结果排序。
ls -l | grep "Aug" | sort +4n
+x  排序时忽略first x fields (ls -l返回列表的列,列与列之间用空格分隔)+4,就时忽略ls结果列表的前面4列,从第5列开始应用排序规则,也就是文件大小。
-n  按数字排序(比如10在2后),忽略空格和tab


登录配置

修改登录密码
passwd ?


登录配置: 登录后的环境配置
.profile
.login

进程管理(任务管理)

运行一个后台任务
sort bigfile > bigfile.sort &
在命令最后加一个&


查看当前任务列表
ps


查看当前terminal列表
tty


停止cancel一个进程
kill pid(s)


查看命令帮助
man
退出按q


脚本开发

shell script
bash dev
perl


网络

远程登录

telnet
ssh
rsh
rlogin

远程登录到某主机
telnet biolab.medu.edu

登出远程主机
exit

远程连接最好用ssh,确保安全性。

2台主机拷贝copy文件,从远程主机giraffe的当前目录下复制2个文件到本机当前目录下
scp giraffe:report.may giraffe:report.june .

从远程主机的相对当前目录的路径下的所有文件,复制到本机的当前目录下
scp "giraffe:food/lunch/*" .
如果带有通配符,要加双引号。

cygwin windows下的类unix软件开发工具


FTP

ftp
ncftp


ftp hostname
会提示用户和密码


常用ftp命令
登出 quit
查看目录文件 dir
进入目录 cd
上传文件 put filename
上传多个文件 mput filenames
下载文件 get filename
下载多个文件 mget filenames

邮件

控制台shell发送邮件
Mail
mailx
mail


0 0
原创粉丝点击