Linux文件和常用的文件处理命令

简介:


一、Linux的文件

Linux的文件及文件夹的组织结构成一个倒立置的树形结构。并以 / (slash)分隔。

 

重要的文件目录

家目录 /root, /home /username

user executables(普通用户可执行文件):/bin,/usr/bin,/usr/local/bin

 

systemexecutables(超级用户可执行文件):/sbin,/usr/sbin,/usr/local/bin
总结可以发现:/bin与/sbin的区别就是后者只有root权限才能执行,/bin和/usr/bin的区别就是前者可以在单用户下执行,而后者不可以


other mountpoints(其他挂载点):/media,/mnt,/misc

系统建议media用来挂载媒体设备,例如光盘,mnt挂载额外设备,例如U盘和移动硬盘,misc用来挂载NFS服务的共享目录,不过都是由管理员自己绝对的,我现在的习惯是在mnt下挂载不同的习惯/mnt/cdrom挂载光盘,/mnt/usb挂载U盘


configuration(配置):/etc


tempoary files(临时文件):/tmp


kernels and bootloader(启动工具和内核):/boot


server data(服务器数据):/rar,/srv


system information(系统信息):/sys,/proc 虚拟文件系统,都是保存在内存中的,主要保存系统的内核,进程,外部设备和网络状态行,如/proc/cpuinfo保存cpu信息,/pro/filesytems是保存文件系统列表的


shared libraries(库文件):/lib,/usr/lib,/usr/local/lib


dev:系统设备文件


lost+found:当系统意外崩溃或机器意外关机,而产生文件碎片放在这里,当系统启动过程中fsck工具会检查这里,并修复损坏的文件(每个分区都会有这个目录)


usrunix softwre resource):系统软件资源目录。usr不是user的缩写,而是unix softwre resource的缩写,所以不是存放用户数据,而是存放软件资源的目录。系统安装的软件大多数保存在这里。


var:动态数据保存位置。主要用于保存缓存、日志以及软件运行所产生的文件

 


 

命令的格式:

命令 -选项】 【参数】

选项:调整命令功能

参数:操作的对象

 如:ls -la /etc

说明:1.个别命令不遵循此格式

      2.当有多个选项时,可以写在一起

      3.简化选项与完整选项

         -a等于--all






二、常用的文件处理命令

 

  ls:显示目录文件

英语原意list

所在路径:/bin/ls ,通过这个路径,然后结合上面所说,/bin是所有用户都有执行的权限

-a 显示所有文件,包括隐藏文件

-l 详细信息显示

-d 查看目录属性

-h 人性化显示

-i 查询文件的i节点

-R 递归显示目录及其子目录

wKiom1fGvyyTJua0AABSr97723s945.png


代表当前目录

.. 代表上一级目录

 

linux的隐藏文件都以点开头,所以在linux中,想把文件隐藏,只有把文件名改名为以点开头的文件名

wKioL1fGv1LwfFk8AAAv59NmBXk966.png

-rw-r--r--:第一个"-"位置是代表文件类型的。

  

文件权限前的第一个字母用来标识文件类型:

-:一般文件

d:目录文件

b:块设备文件

c:字符设备文件

l:链接文件

p:人工管道

常见的为-dI

 

rw-  r--  r-- :文件权限

u    g   o

u所有者,g所属组,o其他人

r读 w写 x执行

如:-rw- r-- r--的意思就是这个文件的类型是一般文件,文件本身所在的用户可读可写不可执行,所在的组可读,不可写不可执行,其他用户可读,不可写不可执行。

 

 

1:引用系数,代表这个文件曾经被调用或者引用多少次,对文件和目录来说,只在硬链接才起作用。

root 拥有者

root拥有组

1618 大小,默认大小为字节,可以使用ls -lh 来人性化显示,统计命令基本支持-h选项

8月 30 0106 最后一次修改时间,linux有文件的最后一次访问时间,状态修改时间时间,文件的数据修改时间,没有创建时间概念,当文件创建,没有修改过,就是创建时间了

文件名

 

 

  mkdir  创建新目录

英语原意:make directories

语法:mkdir  [目录名]

-p 递归创建,如果创建的目录不存在,在创建目录的同时创建子目录

wKiom1fGv3_iupe3AAArFkxpyvI371.png



touch 创建空文件

语法:touch 【选项】【文件名】

wKiom1fGv57h0TOTAAAqZnit22A564.png

1、没有指明路径,会在当前路径下创建,绝对路径可以指明路径

2、linux没有扩展名的概念

3、windows的很多特殊符号不能使用,如*?《,在linux中,除了表示根目录/不能用以外,几乎都可以使用,不过并不推荐使用

4、空格,我们在复制创建时可以同时对多个文件操作,假如我们在创建文件的时候如下:touch 1 2.txt

wKioL1fGv9XySBvIAAA4R0wv1ko077.png


系统会理解为是创建了两个文件,此时应用“”括起来,touch 1 2.txt”,也不建议使用

wKiom1fGv9XyxS_cAAAt3j_2OLw367.png



 cd  切换目录

英语原意:change directory

语法:cd 【目录】

cd ~ 当前的家目录

cd .. 返回上一级,cd../../返回上二级,以此类推

cd / 返回根目录

cd - 在最近访问过的两个目录切换

 

pwd  显示当前目录

英语原意:print working directory

wKioL1fGv_2QNqW2AAANScIbnIY620.png

 

 

 


 cp  复制文件或目录

英语原意:copy

cp 【选项】 【原文件或目录】 【目标目录】

-r 递归复制该目录下所有的子目录和文件

-p  保持原文件的权限和属性不变

wKiom1fGwBWxhcEMAAAhmdcKB2o862.png

因为加了-p参数,所以,保持了原文件的属性好权限不变,

wKioL1fGwDLBQMRCAAAhk8gW3k8419.png


没加-p参数,可以看到属性不一样了。

wKiom1fGwE3ClpJiAAAbsmb_Es4819.png


在复制的同时,可以改名。

wKioL1fGwGmRVvtVAAAifOFm_Z0206.png



scp


不同的Linux之间copy文件常用有3种方法:


第一种就是ftp,也就是其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的copy。


第二种方法就是采用samba服务,类似Windows文件copy 的方式来操作,比较简洁方便。


第三种就是利用scp命令来进行文件复制。


    scp是有Security的文件copy,基于ssh登录。操作起来比较方便,比如要把当前一个文件copy到远程另外一台主机上,可以如下命令。


scp /home/daisy/1.tar.gz root@172.19.2.75:/home/root


然后会提示你输入另外那台172.19.2.75主机的root用户的登录密码,接着就开始copy了。


    如果想反过来操作,把文件从远程主机copy到当前系统,也很简单。

scp root@/1.tar.gz 172.19.2.75:/home/root/1.tar.gz home/daisy/1.tar.gz



 mv 剪切文件、改名

英语原意:move

语法:mv 【选项】【原文件或目录】 【目标目录】

wKioL1fGwKCw4eOZAAAzAEVeobE808.png




剪切过去了,当然,wt目录下就空了。现在我在wt/目录下,我也可以不用绝对目录,可以使用相对路径。

wKiom1fGwKCAug1jAAAzXp5KqPI523.png


当然,复制的时候可以改名,剪切的时候也可以改名。

wKiom1fGwMai2-0EAAAOsdCmiu8506.png




 rmdir 删除空目录

英语原意:remove empty dircetories

语法:rmdir 【目录名】

只能删除空目录

 


 rm 删除文件

英语原意:remove

语法:rm 【选项】 【文件或目录】

-r 删除目录

-f 不提示确认信息(你连唯一后海的机会都没了)

wKioL1fGwOOBNDmjAAA1tXi6F2A491.png


linux是没有类似于windows的回收站,删除时就得注意了

 

做好备份操作

误删后尽量不要对硬盘进行读写操作,读写操作越多,恢复的可能性越小

 

 

 

 cat 显示文件内容

cat【选项】 【文件名】

-n 显示行号

wKiom1fGwQqi-SliAABHPuvV664839.png

wKioL1fGwQrBLZ22AABd5TX721s032.png




 tac 显示文件内容(反向显示)

wKiom1fGwSiDHXixAABM1VAB6Mc459.png



cat不适合用于长文件



 more  分页显示文件内容

more 【文件名】

空格(或f)  翻页

Enter         换行

q(或Q)     退出

 

1
more /etc/services


wKioL1fGwU7R0-cnAACvD_J903E227.png




 less  分页显示文件内容(可向上翻页)

pgug: 按钮往上翻页

上箭头: 一行一行往上翻页

搜索:输入冒号进行命令行界面,例如输入/service,搜索service,按n进行下一个匹配额关键词

wKiom1fGwW6A_0ZcAACqqXTubkU182.png




 head  显示文件前面几行

语法:head【选项】【文件夹】 默认显示前十行

-n 指定行数

wKioL1fGwaHiiSyJAACMHvqywF0588.png





 tail 显示文件后面几行

语法:tail【选项】【文件名】

-n 指定行数

-f 动态显示文件末尾内容

wKiom1fGwaHi5vdlAAB9tIhTsmA772.png


假如文件更新了,查看的时候就会动态的变化



三、软链接和硬链接

 

 ln 生成链接文件

英语原意:link

语法:ln [选项][原文件][目标文件]

-s 创建软链接

1
ln -s /etc/issue /tmp/issue. soft


创建文件/etc/issue的软链接/tmp/issue.sofe

wKiom1fGwcfjugl5AAAhOXKX2hw108.png


软链接:相当于为原文件创立一个快捷方式,可跨分区。

软链接特征:

1、软链接的权限全是lrwxrwxrwx,但文件的权限取决于对应着原文件的权限最终决定的。

2、文件大小——只是符号链接

3、/tmp/issue.soft——>/etc.issue ,箭头指向源文件,硬链接没有箭头指向

 

 

1
ln /etc/issue /tmp/issue.hard


创建文件/etc/issue的硬链接/tmp/issue.hard

wKioL1fGwfXBK5_VAAAZkbtpJ7w997.png


硬链接:硬链接文件完全等同于原文件,相当于使用了cp -p 命令

硬链接特征:

1、相当于使用了cp -p 命令 同步更新

wKiom1fGwfbijtkkAABjw-c7JoM171.png


硬链接会响应的同步更新,但是软链接怎么也更新了,软链接归根结底也就是在访问原文件,当然也更新了。

 

 

2、源文件丢失,硬链接可以访问,软链接就找不到目录了

wKioL1fGwiqC7f6-AAAlja3MEjs210.png 


3、可以看到硬链接和原文件的i节点是一样的。一个文件必须有一个i节点,但是一个i节点并不只对应一个文件,硬链接就是一个很好的案例。这也恰好的解释了为什么会同步更新,当你对一个文件进行更新,其实是对一个i节点进行更新,同时使用一个i节点,所以就同步更细了。

 

4、跨分区

硬链接不能跨分区,软链接可以。

 

5、针对目录使用

硬链接不能针对目录使用,软链接可以。

 

硬链接的优点:实时同步更新。

       相当于备份




本文转自 wt7315 51CTO博客,原文链接:http://blog.51cto.com/wt7315/1844919
相关文章
|
1天前
|
存储 安全 Linux
Linux命令sync详解
`sync`命令在Linux中用于将内存缓冲区的数据强制写入磁盘,保证数据持久性和一致性。它在关机、重启或重要文件操作前后使用,以防数据丢失。工作原理是强制将内存中的数据同步到磁盘,特点是阻塞式执行且通常无需参数。常见用法包括安全关机、数据备份和配置文件修改后确保更改生效。应注意,过度使用可能影响性能,应适时使用`fsck`检查文件系统一致性。
|
1天前
|
安全 数据管理 Shell
Linux命令su详解
`su`命令在Linux中用于切换用户身份,常用于权限管理。它允许用户无须注销当前会话就切换到另一个用户,尤其是root。`su`有多种选项,如`-`或`--login`加载目标用户环境,`-c`执行指定命令后返回。使用时需注意权限安全,建议用`sudo`以减少风险。通过限制`/etc/pam.d/su`可加强访问控制。`su`在系统维护和数据管理中扮演角色,但不直接处理数据。
|
1天前
|
存储 运维 安全
Linux命令stat:深入了解文件与文件系统状态
`stat`命令在Linux中用于显示文件和文件系统的详细状态,包括权限、大小、时间戳等。它通过读取inode获取信息,特点是显示全面、易用且支持多种参数,如`-c`自定义格式,`-f`查看文件系统状态,`-L`处理符号链接。例如,`stat example.txt`显示文件详情,`stat -c "%n 的大小是 %s 字节" example.txt`输出文件大小。理解`stat`有助于系统管理和故障排查。
|
1天前
|
关系型数据库 MySQL Linux
Linux命令systemctl详解
`systemctl`是Linux系统用于管理systemd服务的核心命令,它与systemd守护进程交互,实现启动、停止、重启服务及查看服务状态等功能。主要参数包括`start`、`stop`、`restart`、`status`、`enable`和`disable`等。例如,启动Apache服务使用`systemctl start httpd.service`,查看服务状态用`systemctl status <service>`。使用时需注意权限,服务名通常以`.service`结尾,但命令中可省略。最佳实践包括利用tab键补全、定期查看服务状态和合理配置服务自启。
|
1天前
|
安全 Linux 数据安全/隐私保护
Linux命令strings详解
`strings`是Linux工具,用于从二进制文件中提取可打印字符串,常用于文件分析、安全审计和逆向工程。它可以识别至少4个连续可打印字符的序列,并支持多种参数,如`-n`调整最小长度,`-f`显示文件名。示例用法包括`strings /bin/ls`和`strings -n 6 /usr/bin/uptime | grep GLIBC`。注意敏感信息泄露,结合其他命令可增强分析能力。
|
1天前
|
存储 监控 Linux
stdbuf命令在Linux中的深度解析
`stdbuf`是Linux工具,用于控制命令的stdin、stdout和stderr的缓冲模式。它可以设置为无缓冲、行缓冲或块缓冲,以优化数据处理和实时性。例如,`stdbuf -o0 cmd`禁用cmd的输出缓冲,`-oL`则按行缓冲。在需要实时监控或高效处理大量数据时,选择合适的缓冲模式至关重要。注意,过度使用无缓冲可能影响性能,并非所有系统都支持`stdbuf`。
|
1天前
|
存储 算法 安全
Linux命令sum详解
`sum`命令在Linux中用于计算文件的校验和与磁盘块数,确保文件传输或存储时的完整性。它使用加法运算生成校验和,可与文件内容比较验证变化。支持不同算法(如CRC),能处理多个文件。基本用法包括:`sum file.txt`来计算校验和,`sum -c checksum.txt`来验证文件完整性。但要注意,更强的校验算法如MD5或SHA家族可能更适合安全性需求。结合`find`和`xargs`可用于目录的递归校验。定期校验和记录校验和是最佳实践。
|
1天前
|
安全 Linux 数据处理
Linux命令strip详解
`strip`命令在Linux中用于移除可执行文件和库的符号表及调试信息,减小文件大小,提升运行效率。它的工作原理是删除文件中包含的函数名、变量名等信息。主要参数包括`-s`(移除所有符号)、`-g`(仅移除调试信息)等。在应用时要注意文件备份,因为该操作不可逆。最佳实践是在发布版本中使用,并结合构建流程自动化。
|
1天前
|
Unix Linux 数据处理
Linux命令stty详解
`stty`是Linux命令,用于设置和查看终端参数,如波特率、字符处理和控制字符。它直接与终端驱动交互,支持多种选项以适应不同的配置需求。例如,`stty -a`显示当前设置,`stty -echo`关闭回显,`stty 115200 cs8`调整波特率和字符大小。注意修改设置可能影响终端行为,建议先备份(`stty -g`)并谨慎操作。查阅手册页以获取详细信息。
|
1天前
|
监控 安全 Linux
Linux命令ssltap的深入解析与应用实践
`ssltap`是一个假想的Linux命令,用于模拟SSL/TLS流量分析。它捕获、解密(如果有密钥)并分析加密流量,提供实时监控、协议解析和安全审计。特点包括实时性、灵活性、可扩展性和安全性。示例用法包括捕获特定端口流量和实时监控会话状态。在实际操作中应注意私钥安全、性能影响及合规性,建议定期审计和自动化监控。