Linux 下文件和目录的特点

简介: Linux 下文件和目录的特点

Linux 下文件和目录的特点

  • Linux 文件 或者 目录 名称最长可以有 256 个字符
  • 以 . 开头的文件为隐藏文件,需要用 -a 参数才能显示
  • . 代表当前目录
  • … 代表上一级目录


目标:

  • 理解学习linux终端命令的原因
  • 常用linux命令实践


原因

  • Linux 刚面世时并没有图形界面,所有的操作全靠命令完成,如 磁盘操作、文件存取、目录操作、进程管
    理、文件权限 设定等
  • 在职场中,大量的 服务器维护工作 都是在 远程 通过 SSH 客户端 来完成的,并没有图形界面,所有的维护
    工作都需要通过命令来完成
  • 作为后端程序员,必须要或多或少的掌握一些 Linux 常用的终端命令
  • Linux 发行版本的命令大概有 200 多个,但是常用的命令只有 10 多个而已
  • 学习终端命令的技巧:
  • 不需要死记硬背,对于常用命令,用的多了,自然就记住了
  • 不要尝试一次学会所有的命令,有些命令是非常不常用的,临时遇到,临时百度就可以


常用Linux命令的基本使用

序号 命令 对应英文 作用
01 ls list 查看当前文件夹下的内容
02 pwd print work directory 查看当前所在文件夹
03 cd[目录名] change directory 切换文件夹
04 touch[文件名] touch 如果文件不存在,新建文件
05 mkdir[文件名] make directory 创建目录
06 rm[文件名/目录名] remove 删除指定的文件或目录
07 clear clear 清屏,等同于ctrl+L
08 mv[文件名/目录名][文件名/路径] move 两个作用:[修改文件或目录名为新的名字][移动文件或目录到新的路径下]
09 cp[文件名/目录名][路径] copy 复制文件/目录到新的路径下
10 cat[文件名] Concatenate 查看文件内容
11 su Swith user 切换用户,切换到root用户,“-”表示用户的环境变量一起切换,“-c”,仅执行一次命令,而不切换用户身份
12 chown Change owner 改变所有者
13 chgrp Change group 改变用户组
14 ps Process Status 进程状态
15 chmod 权限数字 [文件名/目录名] Change mode 改变文件或目录权限
16 head head 查看文件前几行(默认10行),-n:指定行数
17 tail tail 查看文件的后几行,-n:指定行数,-f(follow)动态显示文件内容
18 ln link 产生链接文件,类似win中创建快捷方式
19 man manual 获取命令或者配置文件的帮助信息
20 help 查看shell内置命令的帮助信息


小技巧:

ctrl + shift + =:放大终端窗口的字体显示

ctrl + -:缩小终端窗口的字体显示


文件系统操作
  • 常用选项
参数 含义
-a 显示指定目录下所有子目录与文件,包括隐藏文件
-l 以列表方式显示文件的详细信息
-h 配合 -l 以人性化的方式显示文件大小

ll等同于ls -al


  • ls 通配符的使用
通配符 含义
* 代表任意个数个字符
? 代表任意一个字符,至少 1 个
[] 表示可以匹配字符组中的任一一个
[abc] 匹配 a、b、c 中的任意一个
[a-f] 匹配从 a 到 f 范围内的的任意一个字符


切换目录:

注意:Linux 所有的 目录 和 文件名 都是大小写敏感的

命令 含义
cd 切换到当前用户的主目录(/home/用户目录)
cd ~ 切换到当前用户的主目录(/home/用户目录)
cd . 保持在当前目录不变
cd .. 切换到上级目录
cd - 可以在最近两次工作目录之间来回切换


  • 相对路径和绝对路径
  • 相对路径:在输入路径时,最前面不是 / 或者 ~,表示相对 当前目录 所在的目录位置
  • 绝对路径:在输入路径时,最前面是 / 或者~,表示从根目录/家目录开始的具体目录位置


删除目录/文件

使用 rm 命令要小心,因为文件删除后不能恢复

选项 含义
-f force,强制删除,忽略不存在的文件,无需提示
-r recursive,递归地删除目录下的内容,删除目录时必须加此参数


扩展点: 删除乱码文件

一些文件乱码后使用rm -rf 依然无法删除
此时,使用ll -i 查找到文件的inode节点
然后使用find . -inum 查找到的inode编号  -exec rm {} -rf \;
就能顺利删除了


修改文件名称/移动文件
mv aaa bbb:修改文件名aaa到bbb
mv aaa bbb/ccc:将aaa文件移动到bbb目录下并改名为ccc


复制文件

cp aaa '路径':复制aaa文件到'路径'下


[语法]:cp [-rp] 源文件或目录 目的目录

-r :递归处理,复制目录

-p :保留文件属性(yuan)


创建文件
  • 创建文件或修改文件时间
  • 如果文件 不存在,可以创建一个空白文件
  • 如果文件已经存在,可以修改文件的末次修改日期


  • touch 文件名:创建文件
  • touch {文件名1,文件名2}:同时创建多个文件
  • echo "hello,nice to meet u" > aaa:向文件aaa中写入hello,nice to meet u【如果aaa文件存在,则覆盖掉原数据】
  • echo 'hi baby' >> aaa:向文件aaa中末尾处追加hi baby


创建文件夹
选项 含义
-p 可以递归创建目录


  • mkdir 目录名

新建目录的名称 不能与当前目录中 已有的目录或文件 同名


查看文件内容
  • cat 命令可以用来查看文件内容、文件合并等功能
  • cat 会一次显示所有的内容,适合查看内容较少的文本文件
选项 含义
-b 对非空输出行编号
-n 对输出的所有行编号


cat 文件名:查看文件内容
• 1
  • more命令可以用于分屏显示文件内容,每次只显示一页内容
  • 适合于 查看内容较多的文本文件


使用 more 的操作键:

操作键 功能
空格键 显示手册页的下一屏
Enter 键 一次滚动手册页的一行
b 回滚一屏
f 前滚一屏
q 退出


  • head:head 文件名
[root@master data]# head idf.txt 
劳动防护 13.900677652
生化学 13.900677652
奥萨贝尔 13.900677652
考察队员 13.900677652
岗上 11.5027823792
倒车档 12.2912397395
编译 9.21854642485
蝶泳 11.1926274509
外委 11.8212361103
故作高深 11.9547675029
[root@master data]# head -3 idf.txt 
劳动防护 13.900677652
生化学 13.900677652
奥萨贝尔 13.900677652


  • tail:tail 文件名
[root@master data]# tail idf.txt 
拿手戏 13.2075304714
冯公子 13.2075304714
哲 9.34680076038
外行话 12.1089181827
防冻液 11.0674643079
推服 13.2075304714
丝路 10.604840786
一闹 10.1394775363
写封信 10.1630080337
玩花样 13.2075304714
[root@master data]# tail -3 idf.txt 
一闹 10.1394775363
写封信 10.1630080337
玩花样 13.2075304714


  • ln
  • ln -s [源文件] [目标文件] ---> 创建软链接,源文件使用绝对路径
  • ln [源文件] [目标文件] ---> 创建硬链接
命令 语法 作用 示例
find find [搜索路径] [匹配条件] 查找文件或目录 find -name 123.txt:当前路径下查找 123.txt 文件
参数1 -name 按名称查找、精确查找 find / -name 123.txt
参数2 -iname 按名称查找,不区分大小写、模糊查找 find / -iname abc*:查找根目录下所有 abc 开头的、find / -iname abc??? 在“/”目录下查找 abc 开头并且后面有三位的文件
参数3 -size 按文件大小查找,以block为单位,一个block是512B, 1K=2block、+:大于、-:小于、不写:是等于 find / -size -102400,在根目录下找小于 100M 的文件
参数4 -type 按文件类型查找,f:二进制文件、l:软连接文件、d:目录、c:字符文件 find / -type f —>查找根目录下的二进制文件


  • Find Tips
  • 当使用正则时候,加双引号:find / -name “*abc” —> 查找根目录下以 abc 结尾的所有文件
  • 模糊匹配的条件,建议使用单引号或双引号括起来。如果*被转义,可使用 单双引号括住查询条件,或者使用*。


grep命令
  • Linux系统中 grep 命令是一种强大的文本搜索工具
  • grep 允许对文本文件进行模式查找,所谓模式查找,又被称为正则表达式
选项 含义
-n 显示匹配行及行号
-v 显示不包含匹配文本的所有行(相当于求反)
-i 忽略大小写


  • 常用的两种模式查找
参数 含义
^a 行首,搜寻以 a 开头的行
ke$ 行尾,搜寻以 ke 结束的行


管道 |
  • Linux 允许将一个命令的输出可以通过管道做为另一个命令的输入可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里【|】的左右分为两端,左端塞东西(写),右端取东西(读)
  • 常用的管道命令有:
  • more :分屏显示内容
  • grep :在命令执行结果的基础上查询指定的文本


linux权限描述格式解读

示例:drwxr-xr-x

  • d:表示节点类型(‘d’:文件夹—‘-’:文件—‘l’:链接)
  • r:可读
  • w:可写
  • x:可执行


第一组rwx:表示文件拥有者对它的权限:可读可写可执行
第二组x-r:文件所属组的权限:可读可执行,不可写
第三组x--:其他用户组权限(不包含以上两组):可执行,不可写、不可读


修改权限

字符修改权限
  • chmod g -rw aaa: 将aaa文件所在用户组权限:不可读、不可写
  • chmod o -rw: 将aaa文件其他用户组权限:不可读、不可写
  • chmod u+x:将aaa文件所属用户权限增加x


数字修改权限
r = 4 
w = 2 
x = 1
777:一位数字代表一个用户组,每个用户组的权限之和为7


chmod 777 aaa:aaa文件全部用户组拥有可读、可写、可执行权限

chmod 644 aaa: rw-r-r


多级目录权限的修改【递归修改权限】:

chmod - R 644 aaa:aaa目录下所有的文件按文件夹的权限都更改为644


444 r--r--r-- 
600 rw-------
644 rw-r--r--
666 rw-rw-rw-
700 rwx------
744 rwxr--r--
755 rwxr-xr-x
777 rwxrwxrwx
其他

echo

重定向: > 和 >>

管道: |


终端实用技巧
  • 自动补全
  • 在敲出文件/目录/命令的前几个字母之后,按下tab键
  • 如果输入的没有歧义,系统会自动补全
  • 如果还存在其他文件/目录/命令,再按一下tab键,系统会提示可能存在的命令
  • 曾经使用过的命令
  • 按上/下光标键可以在曾经使用过的命令之间来回切换
  • 如果想要退出选择,并且不想执行当前选中的命令,可以按 ctrl + c
Tips
  • ctrl + c:强制关闭
  • ctrl + z:后台运行
目录
相关文章
|
8天前
|
Linux Shell
Linux系统文件默认权限
Linux系统文件默认权限
27 2
|
2天前
|
Linux 数据安全/隐私保护 Windows
命令方式:window向linux传文件
【10月更文挑战第6天】本文介绍了如何在Linux系统中通过命令`ip a`获取IP地址,并在Windows系统下使用CMD命令行工具和SCP命令实现文件传输。示例展示了如何将D盘中的`mm.jar`文件上传至IP地址为192.168.163.122的Linux系统的/up/目录下,最后在Linux系统中确认文件传输结果。
106 65
|
3天前
|
Linux C++
Linux c/c++文件的基本操作
在Linux环境下使用C/C++进行文件的基本操作,包括文件的创建、写入、读取、关闭以及文件描述符的定位。
11 0
Linux c/c++文件的基本操作
|
8天前
|
存储 Linux 编译器
cmake的单目录和多目录的使用(Linux和Windows)
本文介绍了在Windows和Linux平台上使用CMake构建单目录和多目录项目的步骤,包括如何配置CMakeLists.txt文件以及如何生成和使用可执行文件、库文件。
13 2
|
9天前
|
移动开发 Linux
Linux 文件与目录管理
Linux 文件与目录管理
14 3
|
9天前
|
关系型数据库 MySQL Linux
Linux 文件基本属性
Linux 文件基本属性
14 3
|
18天前
|
安全 Linux 数据安全/隐私保护
探索Linux操作系统的文件权限管理
【9月更文挑战第29天】在数字世界中,文件权限管理如同保护我们隐私的锁。本文将带你了解如何在Linux系统中设置和管理文件权限,确保你的数据安全。我们将一起学习如何通过命令行工具来控制文件访问,就像学习一门新语言一样有趣。准备好了吗?让我们一起开启这场技术之旅!
|
3天前
|
Linux C++
Linux c/c++文件虚拟内存映射
这篇文章介绍了在Linux环境下,如何使用虚拟内存映射技术来提高文件读写的速度,并通过C/C++代码示例展示了文件映射的整个流程。
12 0
|
3天前
|
Linux C++
Linux c/c++文件移动
这篇文章介绍了在Linux环境下,使用C/C++语言通过命令方式和文件操作方式实现文件移动的方法。
19 0
|
8天前
|
资源调度 JavaScript 前端开发
yarn源|yarn 国内镜像+linux删除大量文件
yarn源|yarn 国内镜像yarn源|yarn 国内镜像+linux删除大量文件
75 0