系列2:1、linux相关

一、文件结构

1、 Windows和Linux文件系统区别:

在windows平台下,打开“此电脑”,我们可以看到盘符分区。每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形。但是在 Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录)。没有盘符这个概念,只有一个根目录/,所有文件都在它下面。

2、用户概念

分为普通用户与root超级管理员用户。普通用户目录位于/home,称之为用户工作目录或家目录。root用户目录位于根目录下。
例如:

普通用户user:
[root@localhost ~]# cd /home
[root@localhost home]# ls
user
[root@localhost msb123]# cd ~    ( 使用~回到root目录,使用/是回到根目录下)
[root@localhost ~]# 

3、几个重要目录

(1)/etc :系统中的配置文件
(2)/bin,/sbin,/usr/bin,/usr/sbin:系统预设的执行文件的放置目录
其中,/bin,/usr/bin是给系统用户使用的指令(除root用户外的通用户),而/sbin,/usr/sbin则是给root使用的命令。
(3)/var:程序产生的日志记录到此目录下。

4、相对路径和绝对路径

从/目录开始描述的路径为绝对路径 ,从当前位置开始描述的路径为相对路径。

5、. 和 …

每个目录下都有.和. .
. 表示当前目录,. . 表示上一级目录,即父目录

例:

# 从 / 根目录切换到 home目录
[root@localhost /]# cd home

# 确认路径/home
[root@localhost home]# pwd
/home

# 切换到当前目录cd .  目录无变化
[root@localhost home]# cd .

# 切换到当前目录cd ..  目录回到上一级根目录
[root@localhost home]# cd ..
[root@localhost /]# 

二、权限

1、概念

文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作。Unix/Linux系统是一个典型的多用户系统,不同的用户处于不同的地位,对文件和目录有不同的访问权限。为了保护系统的安全性Unix/Linux系统除了对用户权限作了严格的界定外,还在用户身份认证、访问控制、传输安全、文件读写权限等方面作了周密的控制。
在 Unix/Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。

2、通过设定权限可以从以下三种访问方式限制访问权限:

  • 只允许用户自己访问(所有者) 所有者就是创建文件的用户,用户是所有用户所创建文件的所有者,用户可以允许所在的用户组能访问用户的文件。
  • 允许一个预先指定的用户组中的用户访问(用户组) 用户都组合成用户组,例如,某一类或某一项目中的所有用户都能够被系统管理员归为一个用户组,一个用户能够授予所在用户组的其他成员的文件访问权限。
  • 允许系统中的任何用户访问(其他用户) 用户也将自己的文件向系统内的所有用户开放,在这种情况下,系统内的所有用户都能够访问用户的目录或文件。在这种意义上,系统内的其他所有用户就是 other 用户类

3、用户能够控制一个给定的文件或目录的访问程度,一个文件或目录可能有读、写及执行权限:

  • ​ 读权限(r) 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
  • ​ 写权限(w) 对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
  • ​ 可执行权限(x) 对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

4、例

# 用到 ls -l 命令查看当前文件夹下详细信息,具体的命令和参数
l  rwx  rwx  rwx
d  r-x  r-x  r-x

# 首先第一个字母 在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。
[ d ] 表示目录
[ l ] 表示为链接文档(link file)
[ - ] 表示为文件
[ b ] 表示为装置文件里面的可供储存的接口设备(可随机存取装置)
[ c ] 表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

# 其次接下来的字符中,以三个为一组,且均为 [ rwx ] 的三个参数的组合
[ r ]代表可读(read)
[ w ]代表可写(write)
[ x ]代表可执行(execute)
要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

#这三个组分别代表
所有者    所有者表示该文件的所有者
用户组    表示当前用户再同一组
其他用户  允许系统中的任何用户访问,系统内的其他所有用户就是 other 用户类
(对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。同时,在Linux系统中,用户是
按组分类的,一个用户属于一个或多个组。文件所有者以外的用户又可以分为文件所有者的同组用户和其他用
户。因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。)

三、基本命令

1、ls 命令

作用:Linux ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
语法: ls [选项] [参数]
参数:
(1)-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
在这里插入图片描述
(2)-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出.
在这里插入图片描述
(3)-r 将文件以相反次序显示(原定依英文字母次序)
在这里插入图片描述

(4)-t 将文件依建立时间之先后次序列出
在这里插入图片描述
(5)-A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
(6)-F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
在这里插入图片描述
(7)-R 若目录下有文件,则以下之文件亦皆依序列出
(8)常用组合

常用组合
[1]查看文件详情:ls -l 或 ll
[2]增强对文件大小易读性,以人类可读的形式显示文件大小: ls -lh
[3]对文件或者目录进行从大到小的排序: ls -lhs
[4]查看当前目录下的所有文件或者目录,包括隐藏文件: ls -la
[5]只查看当前目录下的目录文件: ls -d .
[6]按照时间顺序查看,从上到倒下时间越来越近: ls -ltr
[7]查看文件在对应的inode信息:ls -li

2、cd 命令

作用:变换当前目录到dir。默认目录为home,可以使用绝对路径、或相对路径。
语法:cd [路径]
(1)跳到用户目录下
在这里插入图片描述
(2)回到home目录
在这里插入图片描述
(3)跳到上次所在目录
在这里插入图片描述
(4)跳到父目录(也可以直接使用 cd …)
在这里插入图片描述
(5)再次跳到上次所在目录
在这里插入图片描述
(6)跳到当前目录的上两层
在这里插入图片描述

3、pwd 命令

作用:可立刻得知目前所在的工作目录的绝对路径名称
语法:pwd [–help][–version]
参数说明:
–help 在线帮助。
–version 显示版本信息。
(1)查看当前所在目录:
在这里插入图片描述

4、mkdir 命令

作用:命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录
语法:mkdir [选项] 目录
命令功能:通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限。并且,所创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名重名,即同一个目录下不能有同名的(区分大小写)
选项参数:
(1)-p进行递归创建目录

在这里插入图片描述

5、touch 命令

作用:用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。(ls -l 可以显示档案的时间记录。)
命令参数
-a:只更新访问时间,不改变修改时间
-m:改变修改时间记录
-c :不创建不存在的文件
-f :不使用,是为了与其他 unix 系统的相容性而保留。
-m : 只更新修改时间,不改变访问时间
-r file :使用文件file的时间更新文件的时间
-t :将时间修改为参数指定的日期,如:07081556代表7月8号15点56分
–no-create:不会建立文件
–help:列出指令格式
–version:列出版本讯息


(1)使用指令"touch"创建"hello.txt"文件
在这里插入图片描述
(2)一次创建多个文件
在这里插入图片描述
(3)使用指令"touch"修改文件"hello.txt"的时间属性为当前系统时间,发现如果文件存在,这里直接是修改时间了
在这里插入图片描述
—发现时间是已经修改了
(4)如果新文件不存在,则需要避免创建新文件 使用参数 -c
在这里插入图片描述
(5)更改文件的访问和修改时间 使用参数 -a
—使用stat查看文件详细信息 最近访问和最近更改时间
在这里插入图片描述
在这里插入图片描述

(6)使用指定的时间戳创建新文件 使用参数-t
在这里插入图片描述

6、rm 命令

作用:用于删除一个文件或者目录。
语法:rm [选项] 文件…
命令参数:
-i :删除前逐一询问确认
-f :即使原档案属性设为唯读,亦直接删除,无需逐一确认
-r:将目录及以下之档案亦逐一删除 (递归删除)


(1)删除文件或者目录前提示 使用参数 -i
在这里插入图片描述
(2)删除 test 子目录及子目录中所有档案删除,并且不用一一确认 -rf
在这里插入图片描述

7、rmdir 命令

作用:用于删除空的目录。从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限。
语法:rmdir [-p] dirName
命令参数:
-p :当子目录被删除后使它也成为空目录的话,则顺便一并删除。
注意:不能删除非空目录

(1) 正常删除目录
在这里插入图片描述
(2)工作目录下的 text1 目录中,删除名为 text2 的子目录。若 text2 删除后,text1 目录成为空目录,则 text1 亦予删除
在这里插入图片描述

8、mv 命令

作用:用来为文件或目录改名、或将文件或目录移入其它位置。
语法:
mv [options] source dest
mv [options] source… directory
命令参数
-i:若指定目录已有同名文件,则先询问是否覆盖旧文件;
-f:在 mv 操作要覆盖某已有的目标文件时不给任何指示
mv 文件名 文件名 :将源文件名改为目标文件名
mv 文件名 目录名 :将文件移动到目标目录
mv 目录名 目录名 :目标目录已存在,将源目录移动到目标目录;目标目录不存在则改名
mv 目录名 文件名 :出错

(1)将文件 text1.log 重命名为 text2.txt
在这里插入图片描述
(2)将文件 text1.txt text2.log text2.txt 移动到mydir的 test2 目录中
在这里插入图片描述
(3)将文件 file1 改名为 file2,如果 file2 已经存在,则询问是否覆盖 使用参数 -i 询问
在这里插入图片描述
(4)移动当前文件夹下的所有文件到上一级目录
在这里插入图片描述

9、cp 命令

作用:用于复制文件或目录。
语法:
cp [options] source dest
cp [options] source… directory
命令参数:
-a :此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合 |
-d :复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f :覆盖已经存在的目标文件而不给出提示。
-i 与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p :除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r :若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l :不复制文件,只是生成链接文件。
例:
(1)复制 text1.txt 到 test1 目录下,保持原文件时间,如果原文件存在提示是否覆盖。使用参数 -ai
在这里插入图片描述
(2)为 text1.txt 建议一个链接(快捷方式) 使用参数 -s
在这里插入图片描述
(3)将当前或者制定的目录下的所有文件复制到新目录

[root@localhost ~]# cp -r mydir/ test
[root@localhost ~]# ls -R test
test:
test1  test2  text1.txt  text2.log

test/test1:
text1.txt

test/test2:
test1  test2

test/test2/test1:
text1.txt

test/test2/test2:

[root@localhost ~]# ls -R mydir/
mydir/:
test1  test2  text1.txt  text2.log

mydir/test1:
text1.txt

mydir/test2:
test1  test2

mydir/test2/test1:
text1.txt

mydir/test2/test2:
# 两个文件一模一样的内容

10、cat命令

作用:用于连接文件并打印到标准输出设备上
命令参数:
-n --number:由 1 开始对所有输出的行数编号
-b --number-nonblank: 和 -n 相似,只不过对于空白行不编号
-s --squeeze-blank : 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v --show-nonprinting: 使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外
-E --show-ends: 在每行结束处显示 $
-T --show-tabs: 将 TAB 字符显示为 ^I
-A --show-all: 等价于 -vET
-e : 等价于"-vE"选项
-t : 等价于"-vT"选项
例:
(1)显示整个文件内容 使用 cat 正常进查看

[root@localhost ~]# cat mydir/text1.txt

(2)把 text1.txt 的文档内容加上行号后输入 text2.log 这个文档里

[root@localhost mydir]# cat -n text1.txt > text2.log 
[root@localhost mydir]# cat text2.log 

(3)把 text1.txt 和 text2.txt 的文档内容加上行号(空白行不加)之后将内容附加到 text3.txt 文档里

[root@localhost mydir]# cat -b text1.txt  text2.log >> text3.txt
[root@localhost mydir]# cat text3.txt

(4)清空 /mydir/text1.txt 文档内容

[root@localhost mydir]# cat /dev/null > text1.txt
[root@localhost mydir]# cat text1.txt
[root@localhost mydir]# ls
test1  test2  text1.txt  text2.log  text3.txt

11、more 命令

作用:类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似)
命令参数:
-num :一次显示的行数
-d :提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,
如果使用者按错键,则会显示 [Press ‘h’ for instructions.] 而不是 ‘哔’ 声
-l: 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
-f : 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-p : 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-c :跟 -p 相似,不同的是先显示内容再清除其他旧资料
-s: 当遇到有连续两行以上的空白行,就代换为一行的空白行
-u :不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
+/pattern: 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
+num:从第 num 行开始显示
fileNames: 需要显示内容的文档,可为复数个数
常用的操作命令
Enter : 向下 n 行,需要定义。默认为 1 行
Ctrl+F: 向下滚动一屏
空格键 : 向下滚动一屏
Ctrl+B : 返回上一屏
= : 输出当前行的行号
:f : 输出文件名和当前行的行号
V : 调用vi编辑器
!命令 : 调用Shell,并执行命令
q : 退出more
例:
(1)显示文件中从第3行起的内容

[root@localhost mydir]# more +3 text3.txt

(2)在所列出文件目录详细信息,借助管道使每次显示 5 行

[root@localhost mydir]# ls -l / | more -5
总用量 20
lrwxrwxrwx.   1 root root    7 831 15:48 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 831 15:58 boot
drwxr-xr-x.  20 root root 3240 95 13:07 dev
drwxr-xr-x.  75 root root 8192 97 10:30 etc
--More--
# 空格会显示下5行
# 回车会显示下1

12、less 命令

作用:less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
语法:less [参数] 文件
命令参数:
-i : 忽略搜索时的大小写
-N : 显示每行的行号
-o : <文件名> 将less 输出的内容在指定文件中保存起来
-s : 显示连续空行为一行
例:
(1)查看文件

[root@localhost mydir]# less text3.txt 

(2)查看命令历史使用记录并通过less分页显示

[root@localhost test]# history | less
    1  exit
    2  reboot
    3  shutdowm -r now
    4  poweroff
    5  cd 

13、head 命令

作用:用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容
语法:head [参数] [文件]
命令参数:
-q :隐藏文件名
-v :显示文件名
-c<数目> :显示的字节数
-n<行数> :显示的行数
例:
(1)显示 1.log 文件中前 20 行

[root@localhost ~]# head 1.log -n 20

(2)显示 t.log最后 10 行

[root@localhost ~]# head -n -10 t.log

(3)显示 1.log 文件前 20 字节

[root@localhost ~]# head -c 20 log2014.log

(4)扩展:tail 命令,查看文件的末尾

在 linux 要查找某个命令或者文件,但不知道放在哪里了,可以使用下面的一些命令来搜索
which 查看可执行文件的位置。
whereis 查看文件的位置。
locate 配合数据库查看文件位置。
find 实际搜寻硬盘查询文件名称。

14、which 命令

作用:用于查找文件(which指令会在环境变量$PATH设置的目录里查找符合条件的文件。)
语法:which [文件…]
命令参数:
-n<文件名长度>: 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名 |
-p<文件名长度> : 与-n参数相同,但此处的<文件名长度>包括了文件的路径
-w : 指定输出时栏位的宽度
-V : 显示版本信息

例:
(1)查看 ls 命令是否存在,执行哪个
在这里插入图片描述
(2)查看 which

在这里插入图片描述

(3)查看 cd
在这里插入图片描述
(注意:显示不存在,因为 cd 是内建命令,而 which 查找显示是 PATH 中的命令)
(4)查看当前 PATH 配置
在这里插入图片描述

15、whereis命令

whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。whereis 及 locate 都是基于系统内建的数据库进行搜索,因此效率很高,而find则是遍历硬盘查找文件

作用:用于查找文件
命令参数:
-b :定位可执行文件
-B<目录>:只在设置的目录下查找可执行文件
-f :不显示文件名前的路径名称
-m :定位帮助文件
-M<目录> : 只在设置的目录下查找说帮助文件
-s : 定位源代码文件
-S<目录> :只在设置的目录下查找源代码文件
-u : 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件

例:
(1)查找 locate 程序相关文件

[root@localhost ~]# whereis locate
locat: /usr/bin/locate /usr/share/man/man1/locate.1.gz

(2)查找 locate 的源码文件

[root@localhost ~]# whereis -s locate

(3)查找 lcoate 的帮助文件

[root@localhost ~]# whereis -m locate

16、locate命令

作用:用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录
命令参数:
-b :仅匹配路径名的基本名称
-c : 只输出找到的数量
-d :使用 DBPATH 指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db |
-e : 仅打印当前现有文件的条目
-1 :如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。
这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料
-0 : 在输出上带有NUL的单独条目
-S : 不搜索条目,打印有关每个数据库的统计信息
-q :安静模式,不会显示任何错误讯息
-P :检查文件存在时不要遵循尾随的符号链接
-l :将输出(或计数)限制为LIMIT个条目
-n :至多显示 n个输出
-m :被忽略,为了向后兼容
-r : REGEXP – 使用基本正则表达式
–regex :使用扩展正则表达式
-o : 指定资料库存的名称
-h : 显示帮助
-i : 忽略大小写
-V : 显示版本信息
例:
(1)查找和 pwd 相关的所有文件(文件名中包含 pwd)
在这里插入图片描述
(2)搜索 etc 目录下所有以 sh 开头的文件
在这里插入图片描述
(3)查找 /root 目录下,以 sh 结尾的文件
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值