Linux常用文件操作命令

1 改变目录

要进入相应的目录我们可以使用Linux下的改变目录命令cd (ChangeDirectory)。
下面我要进入到/tmp目录下,如下操作:

[root@bestlinux ~]# cd /tmp/

你会看到有地方变了,是的,就是在PS1那个位置有所改变,由原来的“~”变为了“tmp”。那么 ~ 又是什么意思呢?其实 ~表示的就是家目录的意思,既然表示的是家目录的意思,那如果你用cd ~会出现什么样的结果呢?下面咱们就来看一下。

[root@bestlinux tmp]# cd ~

你会看到变了,又变到了原来的位置了,这就是你的家目录。
在这里再给大家多说一点,你用的是哪个用户你用 cd ~ 就会进入到哪个目录下。因为当前咱们是以root的身份进入的,这时用cd ~进入的目录就是 /root 目录下。还有一个就是这里面的 # ,通常情况下 # 就示的就是超级管理员,如果这个位置是 $符号的话,通常情况下表示的是当前登陆的用户是普通用户。这只是通常情况下,其它情况下就不一定了。
那么我把目录改来改去的不知道当前目录在什么地方了,怎么办啊?
2查看当前路径

  当你改变目录后不知道当前所在的路径了,我们可以用pwd命令来查看当前的路径。这个命令就是用来查看当前路径的,没有其它的作用。如下所示:

[root@bestlinux network-scripts]# pwd

我知道了当前路径了,那么怎样创建一个文件夹呢?
3创建目录

在指定目录下要创建一文件夹的话可以用mkdir 命令。比如我要在 /tmp下创建一个test的文件夹。我可以这样去做。

[root@bestlinux ~]# mkdir /tmp/test

这时你用ls /tmp 可以看到在 /tmp目录下创建了一个名为test的文件夹。同样的也可以在当前目录下创建一指定的文件夹,这时直接使用mkdir命令后面加相应的文件名就可以了。
我可以创建目录了,那么我怎么去创建一个文件呢?
4创建文件

创建文件的命令可以说有很多,在这里咱们就先说一下比较简单的命令 touch 。我要在 /tmp/创建一个名为a.txt的文件。如下所示:

[root@bestlinux ~]# touch /tmp/a.txt

创建了文件或文件夹后怎样删除呢?下面咱们来一起看一下。
5删除文件或文件夹

删除文件或文件夹均可以用同一个命令来操作都可以用 rm命令。如我要删除一文件夹 /tmp/a.txt 文件,我可以这样去做。

[root@bestlinux ~]# rm /tmp/a.txt

在删除的过程中,你会看到中间有一段话“rm:是否删除一般空文件‘/tmp/a.txt’?”,这是确认的一句话,这时输入字符“y”回车就可以了。
同样的删除一个文件夹,咱们来看一下操作,同样的我还是删除 /tmp/test 文件夹。如下操作一起来注意看一下。

[root@bestlinux ~]# rm /tmp/test/

你会看到这样的一个信息“rm: 无法删除目录‘/tmp/test/’:是一个目录”,也就是说没有删除掉这个文件,在操作过程中出现了问题,一起来看一下问题所在。咱们一起来 man 一下这个rm命令,查看一下他的操作方式。

[root@bestlinux ~]# man rm

从中你可以看到这样一行,“-r, -R, –recursive remove the contents ofdirectories recursively”,它的意思就是说可以删除文件夹的意思吧。好咱们就在后面加上 –r 的参数。

[root@bestlinux ~]# rm -r /tmp/test/

这时你会看到“rm:是否删除目录‘/tmp/test/’?”,就是确认的意思,输入y就可以将指定的内容删除掉了。
那有没有可以不用确认就可以直接将指定的文件和文件夹删除掉呢?有的,下面看一下我下面的操作。

[root@bestlinux ~]# mkdir/tmp/dir //在 /tmp 下创建dir目录
[root@bestlinux ~]# touch/tmp/dir/a.txt //在 /tmp/dir/ 创建a.txt文件
[root@bestlinux ~]# rm -fr/tmp/dir/ //删除掉/tmp/dir和里面的内容

这样你会看到没有任何的提示信息。
6复制文件

复制文件信息是我们最常用的操作了,在Linux里面也有一个比较好用的命令cp命令。cp命令的格式和前的咱们所提到的命令格式是类似的,这个操作并不只是简单的指定一个文件就可以了,因为复制要有源文件,也要有目标文件,所以这里要有至少二个param 。格式如下:

cp [参数] 源文件 目标文件

之所以前面没有说命令格式,是因为前面命令里面只有一个参数,所以没有什么可以说的,现在咱们看到这个命令至少要有两个参数了。下面我就复制/root/ 目录下的 a.txt 文件到 /tmp 下。如下操作:

[root@bestlinux ~]# cp /root/a.txt /tmp/

您会看到这时没有任何的信息显示出来,重新返回到了命令提示符,这时就证明 cp 命令已经成功完成了。然后你再用 ls –l查看一下 /tm/a.txt 你会看到这个文件已经存在了。
那么我想要复制文件夹呢?也是一样的,不过你还记不记得 rm 命令啊,在用 rm 命令删除文件夹的时候我们用了一个 –r 的参数,同样的cp 命令也是一样的,不信你可以自己用 man 查看一下。好下面咱们就来复制文件夹来看一下。首先我在 /root 目录下我创建一个名为dir 的文件夹,在文件夹里面创建一个名为 test.txt 的文件。然后我再把 dir 文件夹复制到 /tmp目录中。如下操作:

[root@bestlinux ~]# mkdirdir //在当前目录下创建dir 文件夹
[root@bestlinux ~]# touchdir/test.txt //在dir目录下创建test.txt文件
[root@bestlinux ~]# cp -r dir//tmp/ //复制dir目录到/tmp下
[root@bestlinux ~]# ls -l/tmp/dir/ //查看/tmp下的内容是不是有dir目录

这就是怎样去复制文件夹和文件夹中的内容。那么如果我想复制当前目录下的所有文件到指定目录下呢?这时我们就要用到通配符了。下面我们来看一下通配符。
* :表示所有文件和文件夹
?:表示一个字符
知道了上面这二个通配符了就可以做相应的一些操作了。下面我要复制刚才咱们创建的 dir 目录下的所有内容到 /tmp下。dir里面是咱们刚才创建的 a.txt 文件,这时复制过去后在 /tmp 下你会看到 a.txt 文件。如下操作:

[root@bestlinux ~]# cp dir/* /tmp/
[root@bestlinux ~]# ls /tmp/a.txt -l

这样用通配符也可以完成相关的操作。
7移动和改名

如果想要移动文件的话可以用 mv命令格式如下:

mv [参数] 源文件 目地文件

这个操作和cp命令的操作是类似的。
例子:将 /root 下的 dir 移动到 /home下。如下操作:

[root@bestlinux ~]# mv dir/ /home/
[root@bestlinux ~]# ls -l /home/

这样当前目录下的 dir 文件被移动到了 /home 下。
那么改名的格式也是类似的,下面我就把 /home/ 下的dir目录改名为directory。如下操作:

[root@bestlinux ~]# cd /home/
[root@bestlinux home]# mv dir/ directory
[root@bestlinux home]# ls -l

这样 dir 目录就改名为 directory名了。
8查找命令

在我创建了那么多的文件中一不小心忘记放到哪了,这个时候我们就想着要查找一下了,这时我们有这样一个命令叫find 。可以用于查找工作。格式如下:

find [路径] [参数]
参数说明:
1. 时间:
-atimen :在 n*24小时内被 access 即存取过的文件列出来!
-ctimen :在 n*24小时内被 changed 即改变、新增的文件或目录印出
-mtimen :在 n*24小时内被 modified 即修改过的文件印出
-newer file :比 file 还要新的文件就列出来!

使用名称:

-gidn :寻找 群组 ID 为 n 的文件
-group name :寻找群组名称为 name的文件
-uidn :寻找拥有者 ID 为 n 的文件
-user name :寻找使用者名称为 name 的文件
-name file :寻找档名为 file 的文件名称(可以使用万用字符)
-type type :寻找档案属性为 type 的档案,type 包含了 b, c, d, p, l, s,这些与前一章的属性相同!例如 l 为 Link而 d 为路径之意!

如下例:

[root@bestlinux ~]# find / -nametesting //查找名为 testing 的文件
[root@bestlinux ~]# find / -name’test*’ //查找以test开头的文件
[root@bestlinux ~]# find . -ctime1 //查找当前目录下一天内新增的文件
[root@bestlinux ~]# find /home -usertest //查找 /home下拥有者为 test 的文件

有些同学可能有另外的一个想法,我想查找ls命令在什么地方,可以,你可以用find命令去找,不过用find命令查找起来时间比较长,可以用另外一个命令which命令。如下:

[root@bestlinux ~]# which ls

这时你会看到ls命令在/bin/目录里面。用起来很方便吧。
9查看文件内容

对于一个文本文件,我们怎么去查看其中的内容呢?我们可以用到查看文本内容的命令cat 命令,除了这一个还有 tail 、head 命令。

[root@bestlinux ~]# cat /etc/services

# /etc/services:
# $Id: services,v 1.40 2004/09/23 05:45:18 notting Exp $
#
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a singlewell-known
# port number for both TCP and UDP; hence, most entries here havetwo entries
# even if the protocol doesn’t support UDP operations.
# Updated from RFC 1700, “Assigned Numbers” (October1994). Not all ports
# are included, only the more common ones.
…… //中间省略

binkp 24554/udp # Binkley
asp 27374/tcp # Address Search Protocol
asp 27374/udp # Address Search Protocol
tfido 60177/tcp #Ifmail
tfido 60177/udp # Ifmail
fido 60179/tcp # Ifmail
fido 60179/udp # Ifmail

# Local services

同样的还可以用 tail 和 head 这两个命令来查看头和尾一些数据信息。格式如下:

[root@bestlinux ~]# head /etc/services
[root@bestlinux ~]# tail /etc/services

结果会显示 /etc/services 的前十行和后十行内容。
10 管道

在用 cat命令显示文件内容的时候你会发现如果内容过多,他把前面的内容直接翻过去了,你这样就看不到上面的内容了,这时咱们可以这样去做,让文件内容一屏一屏的显示。这时就要用到另外一个命令more 命令。

[root@bestlinux ~]# more /etc/services

这时你会看到文件内容会一屏一屏的显示出来,你只需用空格键就可以下翻了。还有些时候我们也有时会这样去做,就是将 cat显示出来的内容重新输出给 more 命令。这就是管道了。如下例:

[root@bestlinux ~]# cat /etc/services | more

这时你会看到显示出来的内容和单独用more命令是一样的。这就是管道,后面我们会经常用到类似的操作。
11重定向

有时候我们需要将一些文件信息不是输出到屏幕上,而是让其输出到指定的文件或其它位置,这时我们就要用到了输出重定向了。输出重定向只需要加上> 这位一个符号就可以了。下面我要把 /etc/services 文件中的内容输出到当前目录下的a.txt 文件中,如下:

[root@bestlinux ~]# cat /etc/services > a.txt
[root@bestlinux ~]# ls -l a.txt /etc/services

输出完后你再用ls –l 命令查看这二个文件,你会看到二个文件的大小是一样的。同样的你也可以用 cat 命令去查看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值