热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux命令(文件管理)

Linux命令概述Linux刚出世时没有什么图形界面,所有的操作全靠命令完成,就如同电视里的黑客那样,充满了神秘与晦涩。近几年来,尽管Linux发展得非常迅速,图形界面越来越友好,

Linux命令概述



  • Linux 刚出世时没有什么图形界面,所有的操作全靠命令完成,就如同电视里的黑客那样,充满了神秘与晦涩。

  • 近几年来,尽管 Linux 发展得非常迅速,图形界面越来越友好,但是在真正的开发过程中,Linux 命令行的应用还是占有非常重要的席位,而且许多Linux功能在命令行界面要比图形化界面下运行的快。可以说不会命令行,就不算会 Linux

  • Linux 提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。Linux 发行版本最少的命令也有 200 多个,这里只介绍比较重要和使用频率最多的命令。


Linux命令格式

command [-options] [parameter1]...

说明:



  • command:命令名,相应功能的英文单词或单词的缩写。

  • [-options]:选项,可用来对命令进行控制,也可以省略,[]代表可选。

  • [parameter1] ... :传给命令的参数,可以是零个一个或多个。

例如:

技术图片


查看帮助文档

1、--help:一般是linux命令自带的帮助信息,如:ls --help

2、man(有问题找男人,manual)

man是linux提供的一个手册,包含了绝大部分的命令、函数使用说明,该手册分成很多章节(section),使用man时可以指定不同的章节来浏览。例:man ls ; man 2 printf

man中各个section意义如下:



  • Standard commands(标准命令)。



  • System calls(系统调用,如open,write)。



  • Library functions(库函数,如printf,fopen)



  • Special devices(设备文件的说明,/dev下各种设备)。



  • File formats(文件格式,如passwd)



  • Games and toys(游戏和娱乐)。



  • Miscellaneous(杂项、惯例与协定等,例如Linux档案系统、网络协定、ASCII 码;environ全局变量)。



  • Administrative Commands(管理员命令,如ifconfig)。



man是按照手册的章节号的顺序进行搜索的。

man设置了如下的功能键:







































功能键功能
空格键显示手册页的下一屏
Enter键一次滚动手册页的一行
b回滚一屏
f前滚一屏
q退出man命令
h列出所有功能键
/word搜索word字符串

技术图片

3、自动补全

在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令。


文件管理


查看文件信息:ls

ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。

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

语法说明:

命令名称:ls
命令英文原意:list
命令所在路径:/bin/ls
执行权限:所有用户
功能描述:显示目录文件
语法:
ls 选项[-ald] [文件或目录]
-a 显示指定目录下所有子目录与文件,包括隐藏文件
-l 以列表方式显示文件的详细信息
-h 配合 -l 以人性化的方式显示文件大小
-d 可以查看当前目录的属性
案例:
ls -a 显示当前目录下的所有文件包含隐藏文件
ls -al 显示当前目录下的所有文件包含隐藏文件以列表方式显示文件的详细信息
ls -alh 显示当前目录下的所有文件包含隐藏文件以列表方式显示文件的详细信息和大小
ls -dl 查看当前文件夹的属性

技术图片

技术图片

图中列出的信息含义如下图所示:

技术图片

与DOS下的文件操作类似,在Unix/Linux系统中,也同样允许使用特殊字符来同时引用多个文件名,这些特殊字符被称为通配符。

技术图片


切换工作目录: cd

在使用Unix/Linux的时候,经常需要更换工作目录。cd命令可以帮助用户切换工作目录。Linux所有的目录和文件名大小写敏感。

语法说明:

命令名称:cd
命令英文原意:change directory
命令所在路径:shell内置命令
执行权限:所有用户
语法:cd [目录]
功能描述:切换目录
cd / 进入用户的主目录。
cd test 进入当前目录下的test目录 【这个是相对目录】
cd /root/test 进入root目录下的test目录 【这个是绝对目录】
cd ~ 切换到当前用户的主目录(/home/用户目录)
cd . 切换到当前目录
cd .. 切换到上级目录
cd - 可进入上次所在的目录

cd后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录。

注意:如果路径是从根路径开始的,则路径的前面需要加上 / ,如 /mnt ,通常进入某个目录里的文件夹,前面不用加 / 。


清屏:clear

clear作用为清除终端上的显示(类似于DOS的cls清屏功能),也可使用快捷键:Ctrl + l


显示当前路径:pwd

使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数。

语法说明:

命令名称:pwd
命令英文原意:print working directory
命令所在路径:/bin/pwd
执行权限:所有用户
语法:pwd
功能描述:显示当前所在的工作目录
范例:pwd

创建目录:mkdir

通过mkdir命令可以创建一个新的目录。参数-p可递归创建目录。
需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。

语法说明:

命令名称:mkdir
命令英文原意:make directories
命令所在路径:/bin/mkdir
执行权限:所有用户
语法:mkdir [目录名]
功能描述:创建新目录
参数说明 -p 如果上层目录不存在,则会创建上层目录
范例:
mkdir test 在当前目录下创建一个test的目录
mkdir /root/test 在root目录下创建一个test目录
mkdir /root/test1/test2/test3 创建目录 这里会报错,因为test1,test2目录不存在 解决办法是 mkdir -p /root/test1/test2/test3
mkdir /root/test4 /root/test4 同时创建两个目录
mkdir test6 test7 在当前目录下创建两个目录
mkdir ‘pargam files‘创建一个有空格的目录【不推荐使用】

创建文件:touch

通过touch命令可以创建一个新空文件。

语法说明:

命令名称:touch
命令所在路径:/bin/touch
执行权限:所有用户
语法:touch [文件名]
功能描述:创建空文件
范例:
touch test 在当前目录下创建一个test的文件
touch /root/test在root下创建一个test的空文件
touch test1 test2 在当前目录下创建两个空文件
touch ‘test1 test2‘在当前目录下创建一个有空格的文件[不推荐使用]

拷贝文件:cp

cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。

常用选项说明:

技术图片

语法说明:

命令名称:cp
命令英文原意:copy
命令所在路径:/bin/cp
执行权限:所有用户
语法:cp -R [源文件或目录] [目的目录]
-R 复制目录
功能描述:复制文件或目录 ,默认的cp只能复制文件,不能是目录 如果是目录要使用-r
案例:
cp -r /root/mywork /root/helloworld 把mywork复制到helloworld里面
cp - /root/install.log /root/helloworld 把install.log文件复制到helloworld里面
cp -rvif /root/install.log /root/helloworld 把install.log文件复制到helloworld里面 并显示进度

移动文件:mv

用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。

常用选项说明:

技术图片

语法说明:

命令名称:mv
命令英文原意:move
命令所在路径:/bin/mv
执行权限:所有用户
语法:mv [源文件或目录] [目的目录]
功能描述:移动文件、更名
案例:
mv /root/install.log /root/mywork/install.log 把install.log移动到mywork里面
mv /root/install.log /root/ins.log 把install.log改成ins.log

删除目录:rmdir

可使用rmdir命令删除一个目录。必须离开目录,并且目录必须为空目录,不然提示删除失败。


删除文件:rm

可通过rm删除文件或目录。使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。

常用参数及含义如下:

技术图片

语法说明:

命令名称:rm
命令英文原意:remove
命令所在路径:/bin/rm
执行权限:所有用户
语法:rm -r [文件或目录]
案例:
rm test1 删除test1文件
rm -r test1 删test1文件或者test1文件夹里面的所有内容会提示
rm -rf test1删除test1文件或者文件夹不提示
rm -rf /root/mywork 删除root下面的mywork文件或者文件夹不提示
rm -rf / 删除所有的操作系统文件 【千万不要使用】

查看或合并文件:cat

cat 命令用于连接文件并打印到标准输出设备上。参数-n:显示文件里数据的行号。

语法说明:

命令名称:cat
命令英文原意:concatenate and display files
命令所在路径:/bin/cat
执行权限:所有用户
语法:cat [文件名]
功能描述:显示文件内容
范例:
cat install.log 查看当前目录下的install.log文件
cat /root/install.log 查看绝度目录下的文件
cat test1.txt test2.txt >>test3.txt 把test1.txt test2.txt里面的内容追加到test3里面
cat test1.txt test2.txt > test3.txt 先清空test3.txt再把test1.txt test2.txt里面的内容追加到test3里面
> >>的区别是前者先清空再追加 后者直接追加

分屏显示:more

查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。

语法说明:

命令名称:more
命令所在路径:/bin/more
执行权限:所有用户
语法:more [文件名]
(空格) 或f显示下一页
(Enter)显示下一行
q或Q退出
功能描述:分页显示文件内容
范例: $ more /etc/services 显示services里面的内容。并分显示

查看文件前几行:head

语法说明:

指令名称:head
指令所在路径:/bin/head
执行权限:所有用户
语法:head -num [文件名]
-num 显示文件的前num行
功能描述:查看文件的前几行
范例:$ head -20 /etc/services 查看services文件的前20行,一般用于看代码的注释

查看文件后几行:tail

语法说明:

指令名称:tail
指令所在路径:/bin/tail
执行权限:所有用户
语法:tail -num [文件名]
-num 显示文件的后num行
功能描述:查看文件的前几行
范例:$ tail -20 /etc/services 查看services文件的后20行

建立链接文件:ln

Linux链接文件类似于Windows下的快捷方式。

链接文件分为软链接和硬链接。

软链接:软链接不占用磁盘空间,源文件删除则软链接失效。

硬链接:硬链接只能链接普通文件,不能链接目录,会同步更新。

使用格式:



  • ln 源文件 链接文件



  • ln -s 源文件 链接文件



如果没有-s选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-s选项是更常见的形式。

注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。

语法说明:

命令名称:ln
命令英文原意:link
命令所在路径:/bin/ln
执行权限:所有用户
语法:ln -s [源文件] [目标文件]
-s 创建软链接
功能描述:产生链接文件
案例:
ln /etc/issue /root/etc/issue.bak.hard 硬链接(如果删除了issue文件 issue.bak.hard可以使用)
可以使用命令echo ‘www.whsxt.com‘ >> /etc/issue去修改issue文件看issue.bak.hard里面内容更新了
ln -s /etc/issue /root/etc/issue.soft 软链接(如果删除了etc/issue文件,那么issue.soft就失效了)
ls -ilh可以查看文件的硬盘地址,可以看到硬链接的地址的原文件的地址一样,这也就是为什么能同步更新的原因了。

输出重定向命令

Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。

如:ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )

所谓的重定向就是修改了默认的输出方向 ,>:输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部。


文件搜索命令:which

作用:显示系统命令所有目录

语法说明:

命令名称:which
命令所在路径:/usr/bin/which
执行权限:所有用户
语法:which [命令名称]
功能描述:显示系统命令所在目录范例: which ls 可以查看命令所在的目录

文件搜索命令:find

作用:查找文件

find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。

常用用法:

技术图片

语法说明:

命令名称:find
命令所在路径:/usr/bin/find
执行权限:所有用户
语法:find [搜索路径] [搜寻关键字]
功能描述:查找文件或目录
$ find /etc -name init 在目录/etc中查找文件init
$ find / -size +204800 在根目录下查找大于100MB的文件
$ find / -user sam 在根目录下查找所有者为sam的文件
$ find /etc -ctime -1 在/etc下查找24小时内被修改过属性的文件和目录
$ find /etc -size +163840 -a -size -204800 在/etc下查找大于80MB小于100MB的文件
$ find /etc -name inittab -exec ls -l {} \; 在/etc下查找inittab文件并显示其详细信息

文件搜索命令:grep

搜索文件里面的内容的命令

Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。

grep一般格式为:grep [-选项] ‘搜索内容串’文件名

在grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grep‘a ’1.txt

常用选项说明:

技术图片

grep搜索内容串可以是正则表达式。

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

grep常用正则表达式:

技术图片

语法说明:

命令名称:grep
命令所在路径:/bin/grep
执行权限:所有用户
语法:grep [指定字串] [源文件]
功能描述:在文件中搜寻字串匹配的行并输出
范例:# grep ftp /etc/services

归档管理:tar

计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。

tar使用格式:tar [参数] 打包文件名 文件

tar命令很特殊,其参数前面可以使用“-”,也可以不使用。

常用参数:

技术图片

语法说明:

命令名称:tar
命令所在路径:/bin/tar
执行权限:所有用户
语法:tar 选项[cvf] [目录]
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
功能描述:打包目录
压缩后文件格式:.tar.gz
案例
tar -zcvf test.tar.gz test #把test文件或文件夹压缩成test.tar.gz
tar -zxvf test.tar.gz #解压test.tar.gz到当前目录
tar -zxvf xxx.tar.gz -C ./dir1 #解压到指定目录

文件压缩解压:gzip

tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。

注意gzip不能压缩目录,只能压缩文件,要压缩目录只能使用tar的方法

gzip使用格式如下:

gzip [选项] 被压缩文件

常用选项:

技术图片

语法说明:

命令名称:gzip
命令英文原意:GNU zip
命令所在路径:/bin/gzip
执行权限:所有用户
语法:gzip 选项 [文件]
功能描述:压缩文件
压缩后文件格式:.gz
案例1 原文件名为file1.txt,压缩后原文件消失,压缩后文件名为file1.txt.gz
gzip file1.txt
案例2 解压文件 gzip -d file1.txt.gz
案例3 压缩的时候,显示压缩率 gzip -v file1.txt
案例4 一条命令压缩多个文件,压缩之后,是各自分开的
gzip file1.txt file2.txt 会生成file1.txt.gz file2.txt.gz
案例5 压缩过程中,保留原文件 gzip -k file1.txt
案例6 压缩到标准输出中 gzip -c file1.txt file2.txt > foo.gz
案例7 gzip -c test.txt > /root/test.gz 把当前目录 的test.txt压缩到root/test.gz里面
案例8 gzip -d /root/test.gz >/root/server/

Linux命令(文件管理)



推荐阅读
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
author-avatar
奶油晓生2502876643
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有