热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux操作系统学习笔记4【文件管理与常用命令】

文件目录:一:Linux文件基础知识1.Linux常用文件类别2.Linux目录结构概述3.Linux目录常见概念4.Linux系统目录及说明

文件目录:

一:Linux文件基础知识 

1.Linux常用文件类别

2.Linux目录结构概述

3.Linux目录常见概念

4.Linux系统目录及说明


二:文件与目录基本操作

1.显示文件内容命令——cat,more,less,head,tail

1.1 cat命令

1.2.more命令

1.3 less命令

1. 4 head命令

1.5 tail命令

2.文件内容查询命令——grep,egrep,fgrep

3.文件查找命令——find,locate

3.1 find命令

3.2 locate命令

4.文本处理命令——sort,uniq

4.1 sort命令

4.2 uniq命令

5.文件内容统计命令——wc

6.文件比较命令——comm,diff

6.1 comm命令

6.2 diff命令

7.文件的复制、移动和删除命令——cp,mv,rm

7.1 cp命令

7.2 mv命令

7.3 rm命令

8.文件链接命令——ln

9.目录的创建与删除命令——mkdir,rmdir

9.1 mkdir命令

9.2 rmdir命令

10.改变工作目录、显示路径以及显示目录内容命令——cd,pwd,ls

10.1 cd命令

10.2 pwd命令

10.3 ls命令


三:文件/目录访问权限管理

1.文件/目录访问权限简介

2.改变文件/目录的访问权限——chmod命令

2.1 文字设定法

2.2 数字设定法

3.更改文件/目录的默认权限——umask命令

4.更改文件/目录的所有权——chown命令


四:文件/目录的打包和压缩

1.文件压缩——gzip压缩

2.文件压缩——bzip2压缩

3.文件归档——tar命令

4.  zip压缩

5.unzip解压缩

6.其他归档压缩工具


本章介绍了Linux文件和目录的基本知识,并且对常用的文件和目录操作命令进行了讲解。除此之外,本章还对Linux下常用的压缩归档工具gzip,bzip,tar,zip等进行了介绍。

一:Linux文件基础知识 

1.Linux常用文件类别


1.在Linux系统上,任何软件和I/O设备都被视为文件。

 

2.Linux中的文件名最大支持256个字符,分别可以用A~Za~z0~9等字符来命名。

 

3.和Windows不同,Linux中文件名是区分大小写的,所有的UNIX系列操作系统都遵循这个规则。

 

4.Linux下也没有盘符的概念(如Windows下的C盘、D盘),而只有目录,不同的硬盘分区是被挂载在不同目录下的。

Linux目录和Windows目录有着很大的不同,Linux目录类似一个树,最顶层是其根目录,如下图:

 

5.Linux的文件没有扩展名,所以Linux下的文件名称和它的种类没有任何关系。例如,abc.exe可以是文本文件,而abc.txt也可以是可执行文件。

 

6.Linux下的文件可以分为5种不同的类型:

普通文件、目录文件、链接文件、设备文件和管道文件


2.Linux目录结构概述


Linux系统以文件目录的方式来组织和管理系统中的所有文件

——所谓文件目录就是将所有文件的说明信息采用树型结构组织起来

——【目录也是一种类型的文件】各个目录结点之下都会有一些文件和子目录


3.Linux目录常见概念


1.路径

          路径是指从树型目录中的某个目录层次到某个文件的一条道路。

2.根目录

          Linux的根目录(/)是Linux系统中最特殊目录。

3.用户主目录

         是系统管理员增加用户时建立起来的(以后也可以根据实际情况改变),每个用户都有自己的主目录,不同用户的主目录一般互不相同

4.工作目录

         用户登录Linux系统之后,每时每刻都处在某个目录之中,此目录被称作工作目录或当前目录(Working Directory)


4.Linux系统目录及说明


目录

 

/bin

存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。

/etc

存放系统管理和配置文件

/home

存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示

 

/usr

用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。

/usr/x11r6 存放x window的目录

/usr/bin 众多的应用程序  

/usr/sbin 超级用户的一些管理程序  

/usr/doc linux文档  

/usr/include linux下开发和编译应用程序所需要的头文件  

/usr/lib 常用的动态链接库和软件包的配置文件  

/usr/man 帮助文档  

/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里  

/usr/local/bin 本地增加的命令  

/usr/local/lib 本地增加的库

/opt

额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。

/proc

虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。

/root

超级用户(系统管理员)的主目录(特权阶级^o^)

/sbin

存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。

/dev

用于存放设备文件。

/mnt

系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。

/boot

存放用于系统引导时使用的各种文件

/lib

存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。

/tmp

用于存放各种临时文件,是公用的临时文件存储点。

/var

用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。

/lost+found

这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里

参考:Linux各目录及每个目录的详细介绍



二:文件与目录基本操作

1.显示文件内容命令——cat,more,less,head,tail


1.1 cat命令


主要功能是用来显示文件,依次读取其后所指文件的内容并将其输出到标准输出设备上
还能够用来连接两个或多个文件,形成新的文件常用形式如下:
cat [option] filename


1.2.more命令


该命令就可以一次显示一屏文本,并在终端底部打印出“--More--”,
系统还将同时显示出已显示文本占全部文本的百分比。
若要继续显示,按回车或空格键即可常用形式如下:
more [option] filename


1.3 less命令


和more命令的功能基本相同,也是用来按页显示文件。不同之处在于less命令在显示文件时,允许用户既可以向前又可以向后逐行翻阅文件,而more命令只能向后翻阅文件如果要向后翻阅,可以使用键盘的“Page UP”键,
要向前翻阅文件,则相应地使用键盘的“Page Down”键即可。
按方向键可以逐行滚动,
按“Q”键退出

如果要按页显示test文件,则执行如下命令:[root@localhost root]# less test

 


1. 4 head命令


该命令只显示文件或标准输入
(从计算机的标准输入设备中得到的信息流,通常是指从键盘、鼠标等获得的数据)的头几行内容。如果用户希望查看一个文件究竟保存的是什么内容,
只要查看文件的头几行,而不必浏览整个文件,便可以使用这个命令。常用形式如下:
head - number filename


1.5 tail命令


和head命令的功能相对应。如果想查看文件的尾部,可以使用tail命令该命令显示一个文件的指定内容。它把指定文件的指定显示范围内的内容显示在标准输出上
同样,如果没有给定文件名,则使用标准输入文件常用形式如下:
tail option filename


2.文件内容查询命令——grep,egrep,fgrep


指定的查找模式搜索文件,通知用户在什么文件中搜索到与指定的模式匹配的字符串,
并且打印出所有包含该字符串的文本行,该文本行的最前面是该行所在的文件名

这组命令在搜索与定位文件中特定的主题和关键词方面非常有效
可以用其来搜索文件中包含的这些关键词grep命令
一次只能搜索一个指定的模式;egrep命令
检索扩展的正则表达式(包括表达式组和可选项);fgrep命令
检索固定字符串,并不识别正则表达式,是一种更为快速的搜索命令——总的来说,grep命令的搜索功能比fgrep强大
因为grep命令的搜索模式可以是正则表达式,而fgrep却不能

该组命令的常用格式如下:grep [option] [search pattern] [file1, file2,……]erep [option] [search pattern] [file1, file2,……]frep [option] [search pattern] [file1, file2,……]

 


3.文件查找命令——find,locate


3.1 find命令


功能是在指定的目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。此命令提供了相当多的查找条件,功能非常强大。find命令提供的寻找条件——可以是一个用逻辑运算符not、and、or组成的复合条件
——and:逻辑与
在命令中用“-a”表示,是系统默认的选项,表示只有当所给的条件都满足时,寻找条件才满足
——or:逻辑或
在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满足时,寻找条件就满足
——not:逻辑非
在命令中用“!”表示。该运算符表示查找不满足所给条件的文件常用格式如下:
find [option] filename


3.2 locate命令


4.文本处理命令——sort,uniq


4.1 sort命令


对文件中的各行进行排序
该命令将逐行地对文件中的内容进行排序,如果两行的首字符相同,该命令将继续比较这两行的下一字符
sort排序是根据从输入行抽取的一个或多个关键字进行比较来完成的可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件默认情况下,以整行为关键字按ASCII字符顺序进行排序。sort命令的常用格式如下:
sort [option] filename


4.2 uniq命令


用uniq命令将这些重复行从输出文件中删除,只留下每条记录的唯一样本常用格式如下:
uniq [option] filename


5.文件内容统计命令——wc


统计给定文件中的字节数、字数、行数如果没有给出文件名,则从标准输入读取wc同时也给出所有指定文件的总统计数字是由空格字符区分开的最大字符串常用格式如下:
wc [option] filename


6.文件比较命令——comm,diff


6.1 comm命令


该命令是对两个已经排好序的文件进行比较comm读取这两个文件,然后生成三列输出:
仅在file1中出现的行;
仅在file2中出现的行;
在两个文件中都存在的行。如果文件名用“-”,则表示从标准输入读取常用格式如下:
comm [option] filename


6.2 diff命令


功能为逐行比较两个文本文件,列出其不同之处它对给出的文件进行系统地检查,并显示出两个文件中所有不同的行,不要求事先对文件进行排序常用格式如下:
diff [option] file1 file2
diff [option] dir1 dir2


7.文件的复制、移动和删除命令——cp,mv,rm


7.1 cp命令


功能是将给出的文件或目录复制到另一文件或目录中
就如同DOS下的copy命令一样,功能非常强大常用格式如下:
cp [option] [src_file|src_dir] [dst_file|dst_dir]


7.2 mv命令


为文件或目录改名或将文件由一个目录移入另一个目录中该命令如同DOS下的ren和move的组合常用格式如下:
mv [option] [src_file|src_dir] [dst_file|dst_dir]


7.3 rm命令


对于无用文件,用户可以用rm命令将其删除
功能为删除一个目录中的一个或多个文件,它也可以将某个目录及其下的所有文件及子目录均删除
对于链接文件,只是删除了链接,原有文件均保持不变常用格式如下:
rm [option] [files|dirs]


8.文件链接命令——ln


在文件之间创建链接是给系统中已有的某个文件指定另外一个可用于访问它的名称对于这个新的文件名,可以为其指定不同的访问权限,以控制对信息的共享和安全性的问题链接有两种:
一种称为硬链接(Hard Link);
另一种称为符号链接(Symbolic Link),也称为软链接常用格式如下:
ln [option] file link


9.目录的创建与删除命令——mkdir,rmdir


9.1 mkdir命令


创建目录需要使用mkdir命令,该命令创建名为dirname的目录要求创建目录的用户在当前目录(即dirname的父目录)中具有写权限,
并且dirname不能是当前目录中已有的目录或文件名称常用格式如下:
mkdir [option] [dirname]


9.2 rmdir命令


删除目录需要使用rmdir命令dirname表示目录名。rmdir命令可以从一个目录中删除一个或多个子目录项。须要注意的是,一个目录被删除之前必须是空的。和mkdir命令一样,删除某目录时也必须具有对父目录的写权限常用格式如下:
rmdir [option] [dirname]


10.改变工作目录、显示路径以及显示目录内容命令——cd,pwd,ls


10.1 cd命令


cd命令即英文词组change directory的缩写,作用是改变当前工作目录常用格式如下:
cd [directory]


10.2 pwd命令


pwd命令即英文词组print working directory的缩写,作用是显示当前工作目录的路径该命令无参数和选项要想知道当前所处的目录,可以用pwd命令,该命令显示整个路径名


10.3 ls命令


ls是英文单词list的简写,其功能为列出目录的内容用户要不时地查看某个目录的内容该命令类似于DOS下的dir命令对于每个目录,该命令将列出其中所有的子目录与文件
对于每个文件,ls将输出其文件名以及所要求的其他信息默认情况下,输出条目按字母顺序排序当未给出目录名或文件名时,就显示当前目录的信息常用格式如下:
ls [option] [dirname|filename]




三:文件/目录访问权限管理

Linux系统中的每个文件和目录都有访问许可权限通过其确定何种用户/用户组可以通过何种方式对文件和目录进行访问和操作

1.文件/目录访问权限简介


分为三种:只读、只写、可执行有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户每一个文件或目录的访问权限都有三组,每组用三位表示,分别为:
文件属主的读、写和执行权限;
与属主同组的用户的读、写和执行权限;
系统中其他用户的读、写和执行权限。


2.改变文件/目录的访问权限——chmod命令

改变文件或目录的访问权限,它是一条非常重要的系统命令
用户可用其控制文件或目录的访问权限该命令有两种用法:
一种是包含字母和操作符表达式的文字设定法;
另一种是包含数字的数字设定法

2.1 文字设定法

一般使用形式如下:
chmod [who] [+|-|=] [mode] filename

2.2 数字设定法

比文字设定法更加简洁数字设定法用3个二进制位来表示文件权限:【设定好后将其换算为十进制数即可】
第一位表示r权限(可读),
第二位表示w权限(可写),
第三位表示x权限(对于文件而言为可执行,对于文件夹而言为可枚举)也可以直接用十进制数计算:
0表示没有权限,
1表示x权限,
2表示w权限,
4表示r权限,
然后将其相加数字属性的格式应为3个从0到7的八进制数——其顺序是(u)、(g)、(o)如果想让某个文件的属主有“读/写”二种权限,须要把4(可读)+2(可写)=6(读/写)
一般使用形式如下:
chmod [mode] filename

3.更改文件/目录的默认权限——umask命令

登录系统之后,创建文件或文件夹有一个默认权限的umask命令则用于显示和设置用户创建文件的默认权限当使用不带参数的umask命令时,系统会输出当前umask的值
代码如下所示:
[root@localhost root]# umask
0022

4.更改文件/目录的所有权——chown命令

chown命令用来更改某个文件或目录的属主和属组常用格式如下:
chown [option] [user|group] filename



四:文件/目录的打包和压缩

1.文件压缩——gzip压缩

gzip压缩利用Lempel-Ziv(LZ77)算法与之相关的命令有:gzip(压缩),gunzip(解压缩)和zcat(解压并输出到标准输出设备)常用格式如下:
gzip [-acdfhlLnNqrtvV] [-level] [-S suffix] [file]
gunzip [-acdfhlLnNqrtvV] [-S suffix] [file]
zcat [-fhlV] [file]使用gzip时需要注意以下几点。(1)默认gzip压缩的文件会以.gz结尾,同时删除原始文件。(2)若不希望使用.gz后缀,则需用-S覆盖。(3)gunzip -c和zcat功能相同

2.文件压缩——bzip2压缩


利用Burrows-Wheeler block sorting和Huffman编码算法与之相关的命令有:
bzip2(压缩),
bunzip2(解压缩),
bzcat(解压并输出到标准输出设备)
和bz2recover(从损坏的bzip2文件中恢复数据)常用格式如下。
bzip2 [-cdfhkLstvVz][--repetitive-best][--repetitive-fast][-level] [file]
bunzip2 [-fkLsvV] [file]
bzcat [-s] [file]
bz2recover [file]

bzip2压缩的命令和gzip非常类似,不过bzip2通常都比基于LZ77算法的工具压缩率更高。默认bzip2压缩的文件会以.bz2结尾,同时删除原始文件。但和gzip相比,bzip2可以通过添加-k参数保留原始文件。bunzip2-c和bzcat功能相同

 


3.文件归档——tar命令


tar可以把许多文件打包成为一个归档文件或者把它们写入备份设备,例如一个磁带驱动器Linux下保存文件都是先用tar命令将目录或者文件打成tar归档文件(也称为tar包),然后gzip或bzip2压缩正因为如此,Linux下已压缩文件的常见后缀有tar.gz、tar.bz2,以及tgz和tbz等

1.创建tar包创建归档可以使用-cf参数,如果需要显示日志,可以使用-cvf参数。
2.查看tar包内容查看归档可以使用-tf参数。
3.还原tar包还原归档可以使用-xf参数,如果需要显示日志,可以使用-xvf参数。
4.直接在tar包中使用压缩选项打好的tar包可以交由gzip或bzip2进行压缩另外也可以直接在tar命令中调用这些压缩功能,加入相应参数即可

 


4.  zip压缩

与zip相关的命令相当多,主要有zip、unzip等zip命令的格式如下:
zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$]
[-b tmp_dir] [-ll] [-n suffix]
[-t datetime] [-level] [zipfile]
[files_to_zipped] [-i include_pattern] [-x exclude_pattern]

5.unzip解压缩

zip文件可用unzip解压缩unzip命令的格式如下:
unzip [-cflptuvz] [-agCjLMnoqsVX] [zipfile] [files] [-d dir] [-x file]

6.其他归档压缩工具

Linux中还可以使用的工具有:
UNIX下的压缩工具compress/uncompress(后缀.Z),
从lharc演变而来的压缩程序lha(后缀.lzh),
以及解压ARJ的unarj与解压RAR的unrar等。有备份归档的程序还有:dump、cpio等Linux也有图形化的压缩/解压缩工具,如GNOME桌面环境下的压缩操作

 


推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • 本文介绍了连接库的定义和使用方法。连接库是通过编译生成的dll文件,例如php_mysql.dll。在使用扩展时,需要去掉配置文件中的分号,并通过phpinfo查看是否正确加载了mysql连接库。详细内容请参考链接:https://www.cnblogs.com/xiaobiaomei/p/7654750.html。摘要字数:180字。 ... [详细]
  • Mono为何能跨平台
    概念JIT编译(JITcompilation),运行时需要代码时,将Microsoft中间语言(MSIL)转换为机器码的编译。CLR(CommonLa ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
author-avatar
手机用户2502863161
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有