20100620---Ubuntu shell命令和常用文件操作命令

/   代表根目录

.   代表当前目录

..  代表父目录

? 匹配一个字符

* 匹配任意字符

[],用方括号将一个字符列表括起来,shell对列表中的每个字符进行匹配.

 

alias 为命令创建别名

alias 可显示已更改的别名清单,并显示别名所表示的命令

unalias,可以清除任何别名,-a清除所有。

例如:

 

leo@Leo-PC:/$ alias list=ls

leo@Leo-PC:/$ list

bin    etc         initrd.img.old  mnt   sbin     tmp      vmlinuz.old

boot   home        lib             opt   selinux  usr

cdrom  host        lost+found      proc  srv      var

dev    initrd.img  media           root  sys      vmlinuz

leo@Leo-PC:/$ ls

bin    etc         initrd.img.old  mnt   sbin     tmp      vmlinuz.old

boot   home        lib             opt   selinux  usr

cdrom  host        lost+found      proc  srv      var

dev    initrd.img  media           root  sys      vmlinuz

 

若命令中包含空格,则用引号" "或者 ' ' 引起。
例如:
leo@Leo-PC:/$ alias list=ls
leo@Leo-PC:/$ list
bin    etc         initrd.img.old  mnt   sbin     tmp      vmlinuz.old
boot   home        lib             opt   selinux  usr
cdrom  host        lost+found      proc  srv      var
dev    initrd.img  media           root  sys      vmlinuz
leo@Leo-PC:/$ ls
bin    etc         initrd.img.old  mnt   sbin     tmp      vmlinuz.old
boot   home        lib             opt   selinux  usr
cdrom  host        lost+found      proc  srv      var
dev    initrd.img  media           root  sys      vmlinuz
set
set -o/+o feature  可开关shell的特性
shell有3种基本特性:
ignoreeof          如果开启,则会禁止使用Ctrl+D组合退出
noclobber         如果开启,则不会通过重定向覆盖文件
noglob               如果开启,则会禁止将特殊字符用做文件扩展名,特殊字符包括:*,?,~和[ ]
 HOME
包含用户主目录的路径名,用echo显示:
例如:
leo@Leo-PC:~$ echo $HOME
/home/leo
PATH
PATH变量包含了一系列用冒号分隔的目录路径。每次执行指令时,会逐个在PATH中搜索。同样可以用echo显示。
路径包含显示的路径加上当前路径。
SHELL提示符
PS1和PS2变量包含了shell的主提示符和次提示符。
默认状态下ps1是$,  PS2是>
可直接赋值更改
/a ASCII 响铃字符(也可以键入 /007) 
/d "Wed Sep 06" 格式的日期 
/e ASCII 转义字符(也可以键入 /033) 
/h 主机名的第一部分(如 "mybox") 
/H 主机的全称(如 "mybox.mydomain.com") 
/j 在此 shell 中通过按 ^Z 挂起的进程数 
/l 此 shell 的终端设备名(如 "ttyp4") 
/n 换行符 
/r 回车符 
/s shell 的名称(如 "bash") 
/t 24 小时制时间(如 "23:01:01") 
/T 12 小时制时间(如 "11:01:01") 
/@ 带有 am/pm 的 12 小时制时间 
/u 用户名 
/v bash 的版本(如 2.04) 
/V Bash 版本(包括补丁级别) ?/td> 
/w 当前工作目录(如 "/home/drobbins") 
/W 当前工作目录的“基名 (basename)”(如 "drobbins") 
/! 当前命令在历史缓冲区中的位置 
/# 命令编号(只要您键入内容,它就会在每次提示时累加) 
/$ 如果您不是超级用户 (root),则插入一个 "$";如果您是超级用户,则显示一个 "#" 
/xxx 插入一个用三位数 xxx(用零代替未使用的数字,如 "/007")表示的 ASCII 字符 
// 反斜杠 
/[ 这个序列应该出现在不移动光标的字符序列(如颜色转义序列)之前。它使 bash 能够正确计算自动换行。 
/] 这个序列应该出现在非打印字符序列之后。

 

 

 

下面是文件操作命令:

ls

ls命令是Linux/Ubuntu中用来查看所选目录下有哪些文件以及列出当前目录中子目录的清单的命令,是Linux/Ubuntu中经常用到的一个命令,也是一个非常基本的命令。

 

格式:ls [参数] [文件/目录]

参数说明:

-a 表示列出所有的文件,包括以"."开头的隐藏文件

-d 如果其后接的是一个目录,则此只输出目录的名称

-l 表示以清单的形式列出文件的条目,包括文件的名称、权限、拥有者、大小、最后修改时间等

-t 表示列出的条目按最后修改的时间进行排序,默认是使用文件夹的名称来排序

-C 以文件的名称按列纵向排序

-F 在文件名后加一个符号来表示文件类型

若 不加参数显示当前目录下未隐藏的文件

 

 

显示文件内容命令:cat

cat命令能够显示一个文件的内容。

cat命令的执行方式为:

 # cat 文件名

cat命令的常见用法是查看一个文件的内容,例如,现在想查看一下/etc/passwd文件的内容,可以执行命令:

 # cat /etc/passwd 

这样不用打开文件就可以看到passwd文件的内容了,但是cat命令的一个缺点是它在显示文件内容时不能做任何停留,所以如果遇到了一个文件内容超过整个屏幕的时候我们只能看到其最后部分,解决的办法是使用管道符(见第9章)和分屏显示命令:

# cat /etc/passwd | more 

还可以通过cat命令和输出重定向命令将一个文件的内容输出到另一个文件中去,即我们常说的将两个文件进行合并:

# cat /etc/passwd >> /home/passwd_bak

这样passwd文件的内容就会追加到passwd_bak文件中,从而达到两个文件合并的目的。

 

 

 

分屏显示文件命令:more(less)

more命令能够对文件内容或者查询结果进行分屏显示。more命令的执行方式为:

 # more 文件名 

more命令可以单独使用,也可以和配合管道符使用。它的主要作用是能够将屏幕输出的结果分屏显示。例如使用cat命令查看/etc/passwd文件时,只能看到最后的内容,为了能够看到文件所有内容,可以执行命令:

# more /etc/passwd

或者是配合管道符命令:

# cat /etc/passwd | more

这时就可以分屏来查看文件内容了,可以通过回车键向下一行行滚动,但是它的缺点是不能够进行向上滚动,如果想向上翻屏,需要使用less命令,less命令的用法与more命令完全相同,唯一不同点是less命令能够向上翻屏。可以通过上下箭头进行上下一行行滚动,也可以通过page up/page down命令向上/向下进行一屏一屏滚动。

空格或者f键可以继续下一屏,q键退出

less下b键可以返回上一屏

 

mkdir

 

一、mkdir命令使用权限

所有用户都可以在终端使用 mkdir 命令在拥有权限的文件夹创建文件夹或目录。

二、mkdir命令使用格式

格式:mkdir [选项] DirName

三、mkdir命令功能

通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限(了解Linux文件-文件夹权限请点击这里)。并且,所创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名重名,即同一个目录下不能有同名的(区分大小写)。

四、mkdir命令选项说明

命令中的[选项]一般有以下两种:

-m用于对新建目录设置存取权限,也可以用 chmod 命令进行设置。

-p 需要时创建上层文件夹(或目录),如果文件夹(或目录)已经存在,则不视为错误。

五、mkdir命令使用举例

例一:在/home/cc/下面创建以“it.dengchao.org”命名的文件夹。

使用以下命令即可。

mkdir /home/cc/it.dengchao.org例二:在/home/cc/下面创建以“it.dengchao.org”命名的文件夹,并且给文件夹赋权限,权限为777。

mkdir  777  /home/cc/it.dengchao.org

 

 

删除空目录命令:rmdir

rmdir命令能够删除一个空目录。rmdir命令的执行方式为:

# rmdir 目录名

对于目录来说,如果里面为空的时候可以使用rmdir命令来删除,并且此命令只能用来删除空目录,如果是非空目录,则需要使用下面要介绍的rm 命令。

例如我们要删除/home/directory这个空目录,则可以执行命令:

# rmdir /home/directory


提示:

rmdir可以删除的是非空目录,被删的目录下不能有文件或子目录。如果只是有子目录存在,还可以用-p来删除;如果含有文件,那么-p选项也无能为力了。只有使用“rm –rf”大法,才能“连根拔起”。

 

 

 

 

除文件(目录)命令:rm

rm命令能够删除一个文件或者目录。rm命令的执行方式为:

# rm  [-选项] 文件名或者目录名 

对于Ubuntu来说,这个命令是比较危险的一个命令,因为一旦使用了这个命令删除的文件如果再进行了磁盘写操作后将无法再恢复。在其他版本的一些Linux中,默认情况下给rm命令加上了一个i选项,可以在删除前对操作进行确认,建议当学习完Shell一节后也利用命令别名使其拥有这一特性。

刚才介绍的rmdir命令只能删除一个空目录,而rm命令不但能删除任何目录,而且可以删除文件。

例如,现在在/home目录下分别建立一个文件file和一个目录directory,并且在目录directory下建立file1文件,操作如下:

# touch /home/file
# mkdir /home/directory
# touch /home/directory/file1


现在分别将file文件和directory目录删除,操作如下:

 

# rm /home/file
# rm -r /home/directory

 

现在就可以将file文件和directory目录删除了,注意,当使用rm命令删除目录时,应该加上-r选项,否则系统会显示不能删除目录的信息。rm命令选项如表7-4所示。

如果我们要在每一次执行此命令前都要进行确认操作是否进行,则可以加上-i 选项:

 

# rm -i /home/file


表7-4  rm命令选项

 

 

 

 

 

 

find 

 

用法总结如下:
find pathname -options [-print -exec -ok]

pathname:查找路径
-option:主要选项如下:
-name:按照文件名称查找
-perm:按照文件权限查找
-prune:不在当前指定的路径查找。如果同时指定了-depth选项,则prune被忽略
-user:按照文件属主查找
-group:按照文件属组查找
-mtime -n +n:按照文件更改时间查找。-n 指距离现在时间n天以内;+n n天以外
-nogroup:查找无效属组文件
-nouser:查找无效属主文件
-newer file1 !file2:查找更改时间比file1新比file2旧的文件
-type:查找某一类型文件
b:块设备文件
d:目录
c:字符设备文件
P:管道文件
l:符号链接文件
f:普通文件
-size n[c]查找文件长度为n块的文件 有[c]表示文件长度以字节计
-depth:查找时,首先查找当前目录文件,然后再在其子目录查找
-fstype:查找位于某一类型文件系统中的文件,文件系统类型可在/etc/fstab中找到
-mount:查找文件不跨越文件系统mount点
-follow:如遇到链接文件,则跟踪至链接所指向文件
-cpio:对匹配的文件使用cpio命令,将文件备份到磁带设备中 
-print:将匹配的文件输出到标准输出
-exec:对匹配的文件执行所给的shell命令。形式为:command { } /;注意{ }和/;之间的空格
-ok:和-exec作用相同。只不过以一种更安全的模式执行该参数所给的shell命令。在执行每个命令之前,都会给出提示,让用户确定是否执行

 

 

 

复制命令:cp

cp命令能够复制一个文件或者生成一个不同名但是内容相同的文件。

cp命令的执行方式:

如果是复制文件,则执行方式为:

 # cp源文件名  目标路径

如果是生成不同名但是内容相同的文件,则下达方式为:

 # cp源文件名  目标文件名

例如,现在需要将/etc/passwd文件复制到/home目录中,可以执行如下操作:

# cp /etc/passwd  /home

这时在/home目录中即有一个文件passwd,现在想生成一个passwd_new文件,要求内容与passwd文件内容相同,则可以执行命令:

# cp passwd passwd_new

这样就生成了一个passwd_new文件,其内容与passwd文件内容相同。以后当配置DNS服务器的时候,就可以采用同样的方法生成不同的区域数据文件,然后只需要对每个文件里面的不同部分进行修改就可以了,避免了每生成一个文件都要重新写一遍的麻烦。

cp命令的选项非常多,表7-5将其常用的一些列出。

表7-5  cp命令选项

 

0951290.jpg (552×109) 

 

 

 

 

移动文件(目录)命令:mv

mv命令用来移动一个文件(目录)或者是给文件(目录)改名。

mv命令的执行方式为:

如果是移动文件,则执行方式为:

 

# mv要移动的文件 目标路径

如果是给文件改名,则执行方式为:

# mv原文件名 新文件名

例如,在/目录下有一个文件为test,要将其移动到/home目录中,可以执行如下操作:

# mv /test /home

此时就将test文件移动到/home目录中了,现在需要将其改名为test_new,则可以执行如下操作:

# mv /home/test  /home/test_new

这样就将test文件成功改名为test_new。

 

 

 

ln 
  这是linux中一个非常重要命令,请 大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的 参数是-s,具体用法是:ln -s 源文件 目标文件。

  当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln -s /bin/less /usr/local/bin/less
 


  -s 是代号(symbolic)的意思。

  这里有两点要 注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又软链接和硬链接两种,软链接就是ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。

  如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls -l命令去察看,就可以看到显示的link的路径了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值