linux之文件基本操作学习笔记

前言

通过本教程你将熟悉linux文件的基本操作以及其具体使用。本文目录结构摘抄自《鸟哥的LINUX私房菜》基础学习篇(第三版)。

备注: 本文只摘录了部分书中内容,对于部分知识点不会做详尽的解读,只保留高频使用的部分,以供大家理解和查阅。(建议阅读时间:15-25min)

目录与路径

相对路径与绝对路径

路径分类

特征

说明

绝对路径

/ ~

需要写完整的路径,需要从根路径开始,路径名一般较长,精确

相对路径

../ ./或者不带任何符号

不需要写完整的路径,根据当前的路径去定位路径,../代表上一级,而不写路径代表在当前路径的同级中查找

目录的相关操作

表格说明 :

命令

功能

备注

cd

切换目录(相对或者绝对路径)

包括:.. 上一级 ./ 当前目录 ~ 当前根目录

pwd

当前目录

-p可以控制显示直接路径而非链接路径

mkdir [-mp]

创建文件夹

m为控制权限,p控制层次,如果创建的为多层目录,增加-p参数可以;否则会提示没有该目录

rmdir [-p]

删除空文件夹

-p可以同时删除上一级的空目录,不建议

rm [-fir]

删除文件或目录

常用删除非空文件夹:rm -rf files ;如果不加-r,删除非空文件夹会报错

cp [-adfilprsu] source 目标档

复制文件或目录

配置项参考教程 ,复制文件夹 cp -rf

mv [-fiu] source destination

移动文件或者目录

也可以叫重命名

注意事项 :

  • 权限概念,默认加的文件或者文件夹都是有权限的,但这个权限和umask有关,如果你想设置别的权限,需要给-m 711来给其权限。
  • 使用tab可以根据已经输入的名字进行自动匹配找到其路径的文件或者文件夹的名字,如果没有反应会有错误的提示,可能是两种原因,1 该前缀没有匹配 2 匹配到了多个,如果是多个下面会给一个匹配到的多个结果,根据自己的需要进行继续。
  • 当你对某个文件没有操作权限的时候,可以通过chmod -R 777 /xx/ 来给文件夹赋予操作权限,777为最高权限。

执行文件路径的变量

我们知道执行任何的操作都需要底层命令的支持,而一般情况下命令的支持脚本是不在我们的应用目录的,比如bin/ls 查看文件的命令,可以在任何位置使用ls。

能够这样支持,是因为我们有设置路径变量,设置之后会按照我们定义的路径去找对应的可执行文件。

对于这部分,不详细讲,有兴趣得可以通过echo $PATH 查看自己系统中已经命名好的变量。每个变量用冒号隔开。

[root@iiii /]# echo $PATH
/root/.nvm/versions/node/v7.4.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

文件与目录的管理

更多详情参考文档:linux文件操作

查看文件目录

ls可以查看文件目录,如果想查看更详细的,可以ls -l可以查看到文件被创建时的文件性质,权限,文件所属的用户和组。

[root@www /]# ls -l
total 64
dr-xr-xr-x   2 root root 4096 Dec 14  2012 bin
dr-xr-xr-x   4 root root 4096 Apr 19  2012 boot
……

其中第一个字符分别代表如下含义 :

符号

代表

d

目录

文件

l

链接文档

b

可供储存的接口设备

c

装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

目录的管理(复制删除与移动)

命令

功能

备注

rm [-fir]

删除文件或者目录

常用删除非空文件夹:rm -rf files

cp [-adfilprsu] source 目标档

复制文件或目录

配置项参考教程 ,复制文件夹 cp -rf

mv [-fiu] source destination

移动文件或者目录

也可以叫重命名

取得路径的文件名与目录名

在具体的路径中,我们很多时候分不清哪个是文件名,哪个是目录名,通过dirname和basename可以分清楚这部分。通过下面的代码我们可以得出index为一个文件名,而其上一级为目录名。(某些时候需要根据某个路径是文件的路径还是目录的位置来决定是新增目录还是文件。)

[root@iZbpZ /]# basename /robin/demo2/index
index
[root@i8Z /]# dirname /robin/demo2/index
/robin/demo2

查看文件内容

基本查看与数据选取

命令

说明

备注

cat

从正文第一行开始看

tac

从最后一行开始看

nl

显示的时候追加行号

more/less

按照页显示内容

less更好的是可以向前翻页

head

只看头几行

tail

只看尾部几行

说明:实际使用中我们一般常用的是cat 查看基本的配置文件内容;tail -n number log 查看日志文件。

备注 :

  • 二进制文件是无法正常查看的,会是乱码信息的,我们通过od命令进行查看:od -t type 文件,不过即使这样还是看不出其内容代表什么。这类的文件比如图片、表格等。
  • 修改文件时间(略)

分页查看

当文件的内容很多的时候,可以根据屏幕的显示空间进行分页显示的控制。还是以刚才的网页文件为例:当翻到最后的时候会跳出文件。

命令

作用

空格

下一页

回车

向下滚动一行

/字符串

向下查询字符串关键字

:f

立刻显示文件名以及目前显示的行数

q

离开文件,不再显示

b

向上翻页,只对文件有效,对管道无效

<!DOCTYPE html><html><head><meta charset=utf-8><rel=stylesheet></head><style>mi
--More--(29%)

编辑文件

如果你是mac shell ,文件编辑是vi进入.

//vim打开某文件
vim file 
//进入编辑模式
i
//退出并保存 esc+
:wq!
//退出不保存文件
:q!
//强制退出
:!

服务器根目录结构

在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。 /etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。 /bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。 值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。 /var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。

目录结构

说明

备注

bin

bin是Binary的缩写, 这个目录存放着最经常使用的命令。

boot

这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

dev

dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

etc

这个目录用来存放所有的系统管理所需要的配置文件和子目录。

home

用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的

lib

这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

opt

这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

root

超级管理员主目录

var

这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

sbin

s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

usr

这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

参考文档

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏C/C++基础

Linux命令(30)——scp命令

scp(secure copy)命令是一个基于SSH安全的进行远程文件拷贝命令,用于在Linux下进行远程拷贝文件,和它类似的命令有cp,不过cp只是在本机进行...

15120
来自专栏Java帮帮-微信公众号-技术文章全总结

Java面试系列18-servlet

Servlet方面 01 说一说Servlet的生命周期? servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期...

35080
来自专栏面朝大海春暖花开

properties文件乱码问题 eclipse

java最常用的开发工具eclipse里面的properties配置文件里面打开中文是乱码的,解决方式很简单。

62220
来自专栏月牙寂

swarm源码分析(3)---manage cluster

第一时间获取文章,可以关注本人公众号 月牙寂道长 yueyajidaozhang

28650
来自专栏Golang语言社区

Golang 命令

go buildgo build 命令用于编译我们指定的源码文件或代码包以及它们的依赖包。go build [-o output] [-i] [build fl...

448140
来自专栏决胜机器学习

《Redis设计与实现》读书笔记(十五) ——Redis AOF持久化原理与实现

《Redis设计与实现》读书笔记(十五) ——Redis AOF持久化原理与实现 (原创内容,转载请注明来源,谢谢) 一、概述 AOF(Append OnFil...

37450
来自专栏Vamei实验室

C编译: makefile基础

在编译一个大型项目的时候,往往有很多目标文件、库文件、头文件以及最终的可执行文件。不同的文件之间存在依赖关系(dependency)。比如当我们使用下面命令编译...

278100
来自专栏java工会

HTTP 方法:GET 对比 POST

15540
来自专栏算法channel

Python|模块,包,标准模板

01 .py文件-模块 一个.py文件就称之为一个模块,Module,模块使用的最大好处是大大提高了代码的可维护性。 当然,还提高了代码的复用性。 使用模块...

37650
来自专栏Golang语言社区

【Go 语言社区】学习网页开发基础 HTTP 方法:GET 对比 POST

两种最常用的 HTTP 方法是:GET 和 POST。 什么是 HTTP? 超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信。 HTTP 的...

380100

扫码关注云+社区

领取腾讯云代金券