目录
- [1. Linux严格区分大小写](#1. Linux严格区分大小写)
- [2. Linux一切皆文件](#2. Linux一切皆文件)
- [3. Linux不依靠扩展名区分文件类型](#3. Linux不依靠扩展名区分文件类型)
- [4. Linux中所有的存储设备都必须挂载后才能使用](#4. Linux中所有的存储设备都必须挂载后才能使用)
- [5. Windows中的程序不能直接在Linux中使用](#5. Windows中的程序不能直接在Linux中使用)
- 5、创建空文件或修改文件时间
- 6、查看文件属性
- 7、查看文件内容
- 8、文件操作
- 9、文件链接
1. Linux严格区分大小写
Linux 是严格区分大小写的,这一点和 Windows 不一样,所以操作时要注意区分大小写的不同,包括文件名和目录名、命令、命令选项、配置文件设置选项等。
2. Linux一切皆文件
Linux 中所有内容都是以文件的形式保存和管理的,硬件设备也是文件,这和 Windows 完全不同,Windows 是通过设备管理器来管理硬件的。Linux 的设备文件保存在/dev/目录中,硬盘文件是/dev/sd[a-p],光盘文件是/dev/hdc 等。
3. Linux不依靠扩展名区分文件类型
Windows 是依赖扩展名区分文件类型的,比如,".txt"是文本文件、".exe"是执行文件、".ini"是配置文件、".mp4"是小电影等。但 Linux 不是靠扩展名区分文件类型的,而是靠权限位标识来确定文件类型的,而且文件类型的种类也不像 Windows 下那么多,常见的文件类型只有普通文件、目录、链接文件、块设备文件、字符设备文件等几种。Linux 的可执行文件不过就是普通文件被赋予了可执行权限而已。
但 Linux 中的一些特殊文件还是要求写"扩展名"的,但是大家小心,并不是 Linux 一定要靠扩展名来识别文件类型,写这些扩展名是为了帮助管理员来区分不同的文件类型。这样的文件扩展名主要有以下几种。
4. Linux中所有的存储设备都必须挂载后才能使用
Linux 中所有的存储设备都有自己的设备文件名,这些设备文件必须在挂载之后才能使用,包括硬盘、U盘和光盘。挂载其实就是给这些存储设备分配盘符,只不过 Windows 中的盘符用英文字母表示,而Linux中的盘符则是一个已经建立的空目录。我们把这些空目录叫作挂载点(可以理解为Windows的盘符),把设备文件(如/dev/sdb)和挂载点(已经建立的空目录)连接的过程叫作挂载
5. Windows中的程序不能直接在Linux中使用
Linux 和 Windows 是不同的操作系统,可以安装和使用的软件也是不同的,所以能够在 Windows中安装的软件是不能在 Linux 中安装的。有好处吗?当然有,那就是能够感染 Windows 的病毒和木马都对 Linux 无效。有坏处吗?也有,那就是所有的软件要想在 Linux 中安装,必须单独开发针对 Linux的版本,或者依赖模拟器软件运行。
很多软件也会同时推出针对 Windows 和 Linux 的版本,如大家熟悉的即时通信软件 QQ。
命令基本格式
命令 [选项] 参数
短选项(short options):顾名思义,就是短小参数。它们通常包含一个连字号和一个字母(大写或小写字母)
例如:-s,-h等
长选项(long options):长选项,包含了两个连字号和一些大小写字母组成的单词
例如:--size,--help等
第一种:参数用一横的说明后面的参数是字符形式。
第二种:参数用两横的说明后面的参数是单词形式。
第三种:参数前有横的是 System V风格。
第四种:参数前没有横的是 BSD风格。
注:
一个程序通常会提供包括short options和long options两种参数形式的参数,short options一般是
其对应的long options的开头字母
-和 --可以用来做区分sh是一个选项sh还是两个选项s和h的组合
-sh是s和h的组合--sh则说明sh是单一的选项
一些例外情况,这个单双连字符的规则不起作用,例如
find -name -fstype
1、显示目录下的内容
ls [选项] [文件名或目录名]
选项:
-a 显示所有文件(包括隐藏文件)
-d 显示目录信息,而不是目录下的文件
-h 人性化显示,按照我们习惯的单位显示文件大小
-i 显示文件的i节点号
-l 显示文件的详细信
第一列为文件种类及权限。此列共有10个字符,其中第一个字符表示文件的种类。即,-表示是普通文
件,d表示为目录,c表示为字符设备,b表示为块设备。而紧跟其后的10个字符,可以分为3块,每3个
字符为一块,表示了此文件(目录)的属主、属组及others的权限。其中,r表示read,w表示write,x
表示execute,-表示无权限。
如,上图中的第一行,-rw-------,表示这是一个普通文件,文件的属主有读取和写入的权限,文件的属
组无权限,others无权限。
第二列表示硬链接个数(文件每增加一个硬链接,数字会增加1,默认从1开始,1表示无硬链接文件,
如果是一个目录,它的默认值应该是2。目录是不能做硬链接的)。
第三列为文件(目录)的属主。
第四列为文件(目录)的属组。
第五列为文件(目录)的大小,单为为字节。
第六列为文件(目录)创建时间或最后一次访问时间,顺序为月、日、时间,如果该时间离现在过久,
则直接显示年份。
第七列为文件名。
2、目录切换命令
3、创建目录命令
mkdir [选项] 目录名
-p 递归建立目录
此命令只能删除空目录,如果目录非空,则会报错
5、创建空文件或修改文件时间
touch 文件名
touch -d "日期时间" 文件名
6、查看文件属性
stat 文件名
7、查看文件内容
-
查看文件内容
cat [选项] 文件名
-E 列出每行结尾的回车符$
-n 显示行号
-T 把Tab键用^I显示出来
-v 列出特殊字符
-
分页显示文件内容
-
单独展示文件内容
less 文件名
-
显示文件开头
head [选项] 文件名
-n 行数 从文件开头开始,显示指定行数
-f 监听文件的新增内容
-
显示文件结尾
tail [选项] 文件名
-n 行数 从文件结尾开始,显示指定行数
-f 监听文件的新增内
8、文件操作
- 删除文件命令
rm [选项] 文件或目录
-f 强制删除
-i 交互删除,删除前询问是否删除
-r 递归删除,可以删除目录
注:慎用rm -rf *
-
复制文件命令
cp [选项] 源文件 目标文件
-d 如果源文件为软链接(对硬链接无效) ,则复制出的目标也为软链接
-i 询问,如果目标文件存在,是否覆盖
-p 复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间)
-r 递归复制,用于复制目录
-a 相当于-dpr选项的集合
(1)复制单个文件
[root@localhost tmp]# mkdir ccc
[root@localhost tmp]# touch aaa
[root@localhost tmp]# ls ccc
[root@localhost tmp]# cp aaa ccc/
[root@localhost tmp]# ls ccc
aaa
(2)复制多个文件
[root@localhost tmp]# mkdir crr
[root@localhost tmp]# touch file{1,2,3}
[root@localhost tmp]# ls crr/
[root@localhost tmp]# cp file1 file2 file3 crr/
[root@localhost tmp]# ls crr/
file1 file2 file3
3)复制目录,-r
[root@localhost tmp]# mkdir crr1 crr2
[root@localhost tmp]# ls crr2
[root@localhost tmp]# cp -r crr1 crr2
[root@localhost tmp]# ls crr2
crr1
-
移动文件命令
mv [选项] 源文件 目标文件
-f 强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖
-i 交互
-v 显示详细信
9、文件链接
什么是链接?
链接简单说实际上是一种文件共享的方式,可以将链接简单地理解为 Windows 中常见的快捷方式
Linux 中常用它来解决一些库版本的问题,通常也会将一些目录层次较深的文件链接到一个更易访问的
目录中。在这些用途上,我们通常会使用到软链接(也称符号链接)
链接分类:软链接和硬链接
- 硬链接
ln [选项] 源文件 目标文件-s 建立软链接文件,如果不加-s,则建立硬链接-f 强制。如果目标文件已存在,则删除目标文件后再建立链接文件 - 软链接
ln -s 源文件绝对路径 目标文件
创建软连接必须使用绝对路径,否则报错
软链接和硬链接区别
硬链接不会创建inode,即使用的inode都是一样的。软链接会创建新的inode
硬链接的访问属性和源文件一模一样,没有l的标识。软链接的访问属性写明了是l,且访问权限不能设
置,只能是777,真正的权限取决于源文件
如果移动源文件,则软链接找不到,而硬链接则没有这个问题,因为软链接存的是文件的位置
硬链接是一种引用关系,一个源文件建立1个硬链接,引用计数加1,删除一个文件(硬链接文件或者源
文件),引用计数减1,当引用计数为0时,真正删除文件。删除源文件软链接只是找不到了目标文件
不能创建目录的硬链接,不能在不同的文件系统的文件间建立硬链接,软链接则没有这些限制