Linux文件管理方法介绍

文件简介

用户通过Shell与Linux内核交互。Shell是一个命令行解释工具(是一个软件),它将用户输入的命令转换为内核能够理解的语言(命令)。Linux下,很多工作都是通过命令完成的,学好Linux,首先要掌握常用命令。

Linux中的所有数据都被保存在文件中,所有的文件被分配到不同的目录。目录是一种类似于树的结构,称为文件系统。 
当你使用Linux时,大部分时间都会和文件打交道,通过本节可以了解基本的文件操作,如创建文件、删除文件、复制文件、重命名文件以及为文件创建链接等。

1、ls(List files):查看文件

查看当前目录下的文件和目录可以使用 ls 命令,例如:

$ ls

bin        hosts  lib     res.03
ch07       hw1    pub     test_results
ch07.bak   hw2    res.01  users
docs       hw3    res.02  work

(1)、通过 ls 命令的 -l 选项,获取更多文件信息

$ ls -l
total 1962188

drwxrwxr-x  2 amrood amrood      4096 Dec 25 09:59 uml
-rw-rw-r--  1 amrood amrood      5341 Dec 25 08:38 uml.jpg
drwxr-xr-x  2 amrood amrood      4096 Feb 15  2006 univ
drwxr-xr-x  2 root   root        4096 Dec  9  2007 urlspedia
-rw-r--r--  1 root   root      276480 Dec  9  2007 urlspedia.tar
drwxr-xr-x  8 root   root        4096 Nov 25  2007 usr
drwxr-xr-x  2    200    300      4096 Nov 25  2007 webthumb-1.01
-rwxr-xr-x  1 root   root        3192 Nov 25  2007 webthumb.php
-rw-rw-r--  1 amrood amrood     20480 Nov 25  2007 webthumb.tar
-rw-rw-r--  1 amrood amrood      5654 Aug  9  2007 yourfile.mid
-rw-rw-r--  1 amrood amrood    166255 Aug  9  2007 yourfile.swf
drwxr-xr-x 11 amrood amrood      4096 May 29  2007 zlib-1.2.3

每一列的含义如下:

  • 第一列:文件类型。
  • 第二列:表示文件个数。如果是文件,那么就是1;如果是目录,那么就是该目录中文件的数目。
  • 第三列:文件的所有者,即文件的创建者。
  • 第四列:文件所有者所在的用户组。在Linux中,每个用户都隶属于一个用户组。
  • 第五列:文件大小(以字节计)。
  • 第六列:文件被创建或上次被修改的时间。
  • 第七列:文件名或目录名。

注意:每一个目录都有一个指向它本身的子目录"." 和指向它上级目录的子目录"..",所以对于一个空目录,第二列应该为 2。 
通过 ls -l 列出的文件,每一行都是以 a、d、- 或 l 开头,这些字符表示文件类型:

  • - : 普通文件。如文本文件、二进制可执行文件、源代码等。
  • b : 块设备文件。硬盘可以使用块设备文件。
  • c : 字符设备文件。硬盘也可以使用字符设备文件。
  • d : 目录文件。目录可以包含文件和其他目录。
  • l : 符号链接(软链接)。可以链接任何普通文件,类似于 Windows 中的快捷方式。原来文件删了,快捷方式虽然在但是不起作用了。
  • p : 具名管道。管道是进程间的一种通信机制。
  • s : 用于进程间通信的套接字。

(2)、三种基本的文件类型

  • 普通文件:普通文件是以字节为单位的数据流,包括文本文件、源码文件、可执行文件等。文本和二进制对Linux来说并无区别,对普通文件的解释由处理该文件的应用程序进行。
  • 目录:目录可以包含普通文件和特殊文件,目录相当于Windows和Mac OS中的文件夹。
  • 设备文件:有些教程中称特殊文件,是一个含义。Linux 与外部设备(例如光驱,打印机,终端,modern等)是通过一种被称为设备文件的文件来进行通信。Linux 输入输出到外部设备的方式和输入输出到一个文件的方式是相同的。Linux 和一个外部设备通讯之前,这个设备必须首先要有一个设备文件存在。例如,每一个终端都有自己的设备文件来供 Linux 写数据(出现在终端屏幕上)和读取数据(用户通过键盘输入)。设备文件和普通文件不一样,设备文件中并不包含任何数据。 
    设备文件有两种类型:字符设备文件和块设备文件。

字符设备文件以字母"c"开头。字符设备文件向设备传送数据时,一次传送一个字符。典型的通过字符传送数据的设备有终端、打印机、绘图仪、modern等。字符设备文件有时也被称为"raw"设备文件。

块设备文件以字母"b"开头。块设备文件向设备传送数据时,先从内存中的buffer中读或写数据,而不是直接传送数据到物理磁盘。磁盘和CD-ROMS既可以使用字符设备文件也可以使用块设备文件。

(3)、元字符 * ?

元字符是具有特殊含义的字符。* 和 ? 都是元字符:

  • * 可以匹配 0 个或多个任意字符;
  • ? 匹配一个字符。

例如

$ ls ch*.doc

可以显示所有以 ch 开头,以 .doc 结尾的文件:

ch01-1.doc   ch010.doc  ch02.doc    ch03-2.doc
ch04-1.doc   ch040.doc  ch05.doc    ch06-2.doc
ch01-2.doc ch02-1.doc c

这里,* 匹配任意一个字符。如果你希望显示所有以 .doc 结尾的文件,可以使用

$ ls *.doc

(4)、隐藏文件 ls -a

隐藏文件的第一个字符为英文句号或点号(.),Linux程序(包括Shell)通常使用隐藏文件来保存配置信息。 
下面是一些常见的隐藏文件:

.profile:Bourne shell (sh) 初始化脚本
.kshrc:Korn shell (ksh) 初始化脚本
.cshrc:C shell (csh) 初始化脚本
.rhosts:Remote shell (rsh) 配置文件

查看隐藏文件需要使用 ls 命令的 -a 选项:

$ ls -a

.         .profile       docs     lib     test_results
..        .rhosts        hosts    pub     users
.emacs    bin            hw1      res.01  work
.exrc     ch07           hw2      res.02
.kshrc    ch07.bak       hw3      res.03

一个点号(.)表示当前目录,两个点号(..)表示上级目录

注意:输入密码时,星号(*)作为占位符,代表你输入的字符个数。

2、vi:创建文件、编辑文件

在Linux中,可以使用 vi 编辑器创建一个文本文件,例如:

$ vi filename

上面的命令会创建文件 filename 并打开,按下 i 键即可进入编辑模式,你可以向文件中写入内容。例如:

This is Linux file....I created it for the first time.....
I'm going to save this content in this file.

完成编辑后,可以按 esc 键退出编辑模式,也可以按组合键 Shift + ZZ 完全退出文件。这样,就完成了文件的创建。

$ vi filename

vi 编辑器可以用来编辑文件。如下

可以打开一个名为 filename 的文件:

$ vi filename

当文件被打开后,可以按 i 键进入编辑模式,按照自己的方式编辑文件。如果想移动光标,必须先按 esc 键退出编辑模式,然后使用方向机或者下面的按键在文件内移动光标:

  • l 键向右移动
  • h 键向左移动
  • k 键向上移动
  • j 键向下移动

使用上面的按键,可以将光标快速定位到你想编辑的地方。定位好光标后,按 i 键再次进入编辑模式。编辑完成后按 esc 键退出编辑模式或者按组合键 Shift+ZZ 退出当前文件。

3、cat(Catenate链接):查看文件内容

可以使用 cat 命令来查看文件内容,下面是一个简单的例子:

$ cat filename
This is Linux file....I created it for the first time.....
I'm going to save this content in this file.

可以通过 cat 命令的 -b 选项来显示行号,例如:

$ cat -b filename
1   This is Linux file....I created it for the first time.....
2   I'm going to save this content in this file.
$

4、wc(Word Count):统计单词数目

可以使用 wc 命令来统计当前文件的行数、单词数和字符数,下面是一个简单的例子:

$ wc filename
2  19 103 filename

每一列的含义如下:

  • 第一列:文件的总行数
  • 第二列:单词数目
  • 第三列:文件的字节数,即文件的大小
  • 第四列:文件名

也可以一次查看多个文件的内容,例如:

$ wc filename1 filename2 filename3

5、 cp(Copy):复制文件

可以使用 cp 命令来复制文件。cp 命令的基本语法如下:

$ cp source_file destination_file

下面的例子将会复制 filename 文件:

$ cp filename copyfile

现在在当前目录中会多出一个和 filename 一模一样的 copyfile 文件。

6、mv(Move):重命名文件

mv 命令其实是一个移动文件的命令,不但可以更改文件的路径,也可以更改文件名。

重命名文件可以使用 mv 命令,语法为:

$ mv old_file new_file

下面的例子将会把 filename 文件重命名为 newfile:

$ mv filename newfile

现在在当前目录下,只有一个 newfile 文件。

7、rm(Remove):删除文件

rm命令可以删除文件,语法为:

$ rm filename

注意:删除文件是一种危险的行为,因为文件内可能包含有用信息,建议结合 –i (每次删除前给出提示)选项来使用 rm 命令。 
下面的例子会彻底删除一个文件:

$ rm filename

你也可以一次删除多个文件:

$ rm filename1 filename2 filename3

8、标准的Linux流

一般情况下,每个Linux程序运行时都会创建三个文件流(三个文件):

  • 标准输入流(stdin):stdin的文件描述符为0,Linux程序默认从stdin读取数据。
  • 标准输出流(stdout):stdout 的文件描述符为1,Linux程序默认向stdout输出数据。
  • 标准错误流(stderr):stderr的文件描述符为2,Linux程序会向stderr流中写入错误信息。

到此这篇关于Linux文件管理的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • linux文件管理命令实例分析【权限、创建、删除、复制、移动、搜索等】

    本文实例讲述了linux文件管理命令.分享给大家供大家参考,具体如下: 1.文件权限 读      r      4 写      w      2 运行    x      1 文件分为三种权限: 拥有者权限 组内用户权限 组外用户权限 2.查看目录下的文件 ls   [选项] [路径或文件名] -l   :查看详细信息 -a   :查看所有文件,包括隐藏文件 第一列:文件权限     -   (rw-) (---) (---)     第一字符表示文件类型(-表示普通文件,d表示文件夹)  

  • linux文件管理命令实例分析【显示、查看、统计等】

    本文实例讲述了linux文件管理命令.分享给大家供大家参考,具体如下: 1.显示文件内容 cat  :  显示文件内容 tac  :  倒序显示内容 2.更改文件权限 chmod :更改文件权限 -R     递归改变 chown :更改文件拥有者 -R     递归改变 chgrp :更改文件所属组 -R     递归改变 > chmod 666 1.txt > chown user1 1.txt > chgrp user1 1.txt 3.链接文件 1) 保护源程序 2) 访问方便

  • Linux文件管理使用详解

    对于计算机来说,所谓的数据就是0和1的序列.这样的一个序列可以存储在内存中,但内存中的数据会随着关机而消失.为了将数据长久保存,我们把数据存储在光盘或者硬盘中.根据我们的需要,我们通常会将数据分开保存到文件这样一个个的小单位中(所谓的小,是相对于所有的数据而言).但如果数据只能组织为文件的话,而不能分类的话,文件还是会杂乱无章.每次我们搜索某一个文件,就要一个文件又一个文件地检查,太过麻烦.文件系统(file system)是就是文件在逻辑上组织形式,它以一种更加清晰的方式来存放各个文件. 路径

  • Linux操作系统文件管理器的共享

    在目前最流行的RedHatLinux 9.0中有GNOME和KDE这两个图形桌面.这两个桌面系统中分别有两个不同的文件管理器:在GNOME中是Nautilus(鹦鹉螺)而KDE中是Konqueror,各有不少很实用的特色. 其实不管你登录哪个桌面都可以同时使用这两个文件管理器,方法很简单:在KDE中打开文件管理器Konqueror,找到/usr/bin/目录,将Nautilus文件直接拖到任务栏上,并在弹出的对话框中为它建一个新图标,以后只要点击该图标就可以运行Nautilus文件管理器.同理,

  • 浅析Linux常用文件管理命令

    一.文件管理基本命令 1.pwd pwd显示当前的工作目录(显示当前shell CWD的绝对路径)     用法:pwd [option]     选项:         -P  显示真实物理路径         -L  显示链接路径(默认) 拓展: •每个shell和系统进程都有一个当前的工作目录 •绝对路径:以正斜杠开始 完整的文件的位置路径 可用于任何想指定一个文件名的时候 •相对路径:不以斜线开始 指定相对于当前工作目录或某目录的位置 可以作为一个简短的形式指定一个文件名 2.cd cd

  • Linux文件管理方法介绍

    文件简介 用户通过Shell与Linux内核交互.Shell是一个命令行解释工具(是一个软件),它将用户输入的命令转换为内核能够理解的语言(命令).Linux下,很多工作都是通过命令完成的,学好Linux,首先要掌握常用命令. Linux中的所有数据都被保存在文件中,所有的文件被分配到不同的目录.目录是一种类似于树的结构,称为文件系统. 当你使用Linux时,大部分时间都会和文件打交道,通过本节可以了解基本的文件操作,如创建文件.删除文件.复制文件.重命名文件以及为文件创建链接等. 1.ls(L

  • 在linux下开启FTP服务方法介绍

    1. 首先服务器要安装ftp软件,查看是否已经安装ftp软件下: #which vsftpd 如果看到有vsftpd的目录说明服务器已经安装了ftp软件 如果没有安装ftp软件的话,这里有下载地址和相关教程可以参考: Wing FTP Server FTP服务器端中文版安装使用教程 2. 查看ftp 服务器状态     #service vsftpd status 3. 启动ftp服务器      #service vsftpd start 4. 重启ftp服务器  #service vsftp

  • Linux下文件的切分与合并的简单方法介绍

    linux下文件分割可以通过split命令来实现,可以将一个大文件拆分成指定大小的多个文件,并且拆分速度非常的快,可以指定按行数分割和安大小分割两种模式.Linux下文件合并可以通过cat命令来实现,非常简单. 在Linux下用split进行文件分割 先看下帮助文档 Usage: split [OPTION]... [INPUT [PREFIX]] Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default size

  • Linux环境下快速搭建ftp服务器方法介绍

    本文研究的主要是Linux环境下快速搭建ftp服务器方法,具体如下.首先看看ftp的介绍: FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application).基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件.在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上

  • 把windows下的字体安装到Linux系统下的方法介绍

    Linux(Fedora/Ubuntu/CentOS)的字体实在不尽如人意,而且在网页及文档显示时很多字无法显示出来,特别多的空白和乱码,其实,我们可以把windows下的字体和自己心仪的字体添加到Linux中,本文将介绍如何在Linux下添加字体. 一.Linux添加字体方法介绍 1.首先在windows的"控制面板"->"字体"中,将自己要的字体复制出来. 再进入到Linux(Fedora/Ubuntu),在桌面新建一个文件夹,名字叫做font,把Wind

  • docker连接spring boot和mysql容器方法介绍

    在之前使用docker部署运行了Spring Boot的小例子,但是没有使用数据库.在这一篇中,介绍docker如何启动mysql容器,以及如何将Spring Boot容器与mysql容器连接起来运行. docker基本命令 首先熟悉一下在操作过程中常用的docker基本命令: docker images:列出所有docker镜像 docker ps:列出所有运行中的容器,-a参数可以列出所有容器,包括停止的 docker stop container_id:停止容器 docker start

  • 1 秒内启动Linux的方法

    尽可能快的启动系统,对于自动化设备是非常重要的.系统能够在用户无法感知的时间内启动,也就意味着在不需要工作时,可以完全切断电源,而不是挂起 进入休眠状态.本文基于Atmel AT91系列片上系统和NAND闪存,经过一系列的优化,将Linux系统启动时间,从最初的11秒,降低到最终的656毫秒. 背景知识 系统从上电到完全启动,需要经过许多过程.一个简化的启动流程大概包含: 硬件重置 启动引导程序(bootloader) 操作系统初始化 应用程序执行 其中硬件非常关键,但是硬件一般难以更改.后续的

  • python简单图片操作:打开\显示\保存图像方法介绍

    一提到数字图像处理,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因此,我们这里使用python这个脚本语言来进行数字图像处理. 要使用python,必须先安装python,一般是2.7版本以上,不管是在windows系统,还是linux系统,安装都是非常简单的. 要使用python进行各种开发,就必须安装对应的库.这和matlab非常相似,只是matlab里面叫工具箱

  • 入域的Windows访问未入域的Samba服务方法介绍

    本文研究的主要是入域的Windows访问未入域的Samba服务的问题,具体介绍 如下. 由于权限控制问题,公司的Samba服务使用的是tdbsam认证方式,而不是加入到域环境,使用域认证. 这样做就出现了二个问题: 1.使用域名访问Samba服务器时,总是提示用户名和密码不正确: 解决方案:使用IP地址访问Samba服务器 2.如果使用IP地址访问Samba服务器时,则入域的Windows无法记住用户名和密码. 解决方案: a. 在控制面板中打开凭据管理器 b. 选择Windows 凭据,然后单

  • Xshell5连接虚拟机中的Linux的方法以及失败原因解决

    很早以前就装了虚拟机,现在终于装上了Linux.虽然机子的配置还不错,虚拟机一般也不会特别卡,但是来回切换有时也是一件十分令人头疼的事情.虽然说不卡,但是CPU占用率还是很高的.也十分耗电.所以自从听说了有Xshell这个神器之后 我就开始对他进行了相关的钻研.(出现问题请直接往下拉.) 首先Xshell是一个通过在同一网段进行连接两个主机的一款应用.简单的来说就是可以用一台机器来操控多台电脑的一个应用.注意 是同一个网段,这个概念很重要我们在配置Xshell的时候是一定会用到的.这个应用可以让

随机推荐