js333 > 计算机互联网 > 命令学习笔记,Linux文件管理相关命令

原标题:命令学习笔记,Linux文件管理相关命令

浏览次数:162 时间:2019-10-07

学习Shell命令最好的资料当然的是$man, 绝对是查找命令的第一大杀器,但是我们有时只是想实现某个功能,甚至连这个命令是什么都不知道,又或者不想淹没在man里大段大段的英文里,大家可以在Linux公社搜索有关Linux命令的教程。

学习Shell命令最好的资料当然的是$man, 绝对是查找命令的第一大杀器,但是我们有时只是想实现某个功能,甚至连这个命令是什么都不知道,又或者不想淹没在man里大段大段的英文里,大家可以参考Linux命令大全,里面很好将各个命令进行了分类,便于学习

Linux文件管理相关命令

 

作者:Vamei 出处: 欢迎转载,也请保留这段声明。谢谢!

 

在了解了Linux文件管理背景知识之后, 我们可以学习一些命令来管理我们的文件。

 

Linux 命令学习笔记

文件基本操作

ls ,rm , mv , ln

ls

 ls [option] [files]

不带参数时,列出当前工作目录的内容

$ls

列出指定目录的内容

ls dir1

或个别文件

ls file1

选项

-a 列出所有文件,包括隐藏文件和目录 (以 .开头)

-l 以长格式显示文件名属性和明细

-h 以k,m等适合用户阅读的单位取代字节

-F 以象征类型的鼓号来修饰特定文件名

/ 目录

* 可执行文件

@ 符号文件(symbolic links)

l 命令管道(named pipes)

= 通信管道(sockets)

 符号附加在文件名之后,可帮忙一眼看出他们的类型,这些符号并非文件名的一

部分,而是ls在显示时自己加上去的。

-i 在问价名之前加注该文件的inode编号

-s 在文件名之前加注文件所占的块数(1 block 一般是 1024 bytes)

-R 递归列出目录内容

-d 列出目录本身,而不是其内容

 

 

cp [option] files (file|dir)

不添加参数表示复制一个文件

$cp srcfile destfile

复制多个文件到某个目录下

$cp file1 fle2 file3 dir

-a或者-R 选项,可以递归复制整个子目录

-p 连同源文件的访问模式,时间戳也一并复制给新文件,如果你的权限允许,新文件的拥有者和所属组也和旧文件一样。如果没可以指定本项,新文件的拥有者是你,膝盖时间是当前时间,而访问模式则是源文件的访问模式与你的umask的交集。

-a 复制整个目录树,而且保留特殊文件、访问模式、符号连接与硬链接的关系。

本选项相当于同时指定 -R(包含特殊文件在内的递归复制), -p(访问模式)

-d(链接)

-i 交互模式,覆盖目标文件之前,先征求用户的意见

-f 强行复制,及时目标文件已存在,也一律无条件改写。

 

mv [option] sources target

移动和改名其实是一回事, move 命令也可改变文件名。

 

mv file1 file2

将文件或目录移动到另一个目录下

mv file1 file2 dir3 dir4 dest_dir

-i 交互模式

-f 强制移动

 

rm [options] files|dirs

rm (remove)命令可删除文件

rm file1 file2 file3

也可删除整个目录

rm -r dir1 dir3

 

-i 交互模式

-f 强制删除,忽略任贺错误或警告

-r 递归喊出目录与其内容,

 

ln [options] source target

链接link是对另一个文件的引用reference,有ln命令所建立。链接分成两种,符

号连接(symbolic link)以"路径"来表示另一个文件,就想windows中的快捷方

式(shorcut)或macintosh的别名alias

$ln -s myfile softlink

若删除源文件,符号链接文件因为只想不存在路径二变得无效。另一方面,硬链接(hard link)是磁盘上某物理文件的第二个名称(以术语来说,硬链接只想同一个inode)。删除源文件并不会造成链接失败那你仍然可通过硬链接来访问源文件的内容。

$ln myfile softlink

符号链接可跨越磁盘分区,因为他们只是对源文件路径的引用而已。但是硬链接则不可以,因为一个分区上的inode对其他分区是没有意义。符号链接的对象可以使目录,但是硬链接不可以,除非你是superuser而且使用-d选项。

常用选项

-s 制作符号链接(默认行为是制作硬链接)

-i 交互模式

-f 强制模式,无条件予以覆盖

-d 容许superuser制作目录的硬链接

使用下列命令之一,可轻易找出符号链接的对象为何

$readlink linkname

$ls -l linkname

目录操作 

cd 改变当前工作目录

pwd 显示当前工作目录的名称

basename 显示文件路径中的末端部分

dirname 像是文件路径中的末端之外的部分

mkdir 创建目录

rmdir 删除空目录

rm -r 删除非空目录及其内容

 

cd [directory] bash

shell 内置命令 

本文永久更新链接地址:

命令学习笔记 文件基本操作 ls ,rm , mv , ln ls ls [option] [files] 不带参数时,列出当前工作目录的内容 $ls 列出指定目录的内容 ls dir...

pwd

查看当前工作目录,现在常见的发行版都会把当前的完整路径标记在"$"之前,所以也不怎么需要这个命令,但是如果你嫌前面的路径标记太长了,把路径改的很短了(sudo vi ~/.bashrc里改PS1的值),此时就需要这个命令显示当前目录的完整路径

pwd

查看当前工作目录,现在常见的发行版都会把当前的完整路径标记在"$"之前,所以也不怎么需要这个命令,但是如果你嫌前面的路径标记太长了,把路径改的很短了(sudo vi ~/.bashrc里改PS1的值),此时就需要这个命令显示当前目录的完整路径

文件操作相关

有一些命令可以帮助我们"修剪"之前看到的文件树。

$touch a.txt

如果a.txt不存在,生成一个新的空文档a.txt。如果a.txt存在,那么只更改该文档的时间信息。(这个命令实际上用得并不广泛,但可以帮我们创建一个空文件来实验下面操作)

$ls .

是list的简写,列出当前目录下的所有文件名

$ls -l a.txt

列出文件的详细信息

 

$cp a.txt b.txt 

cp是copy的简写,用来复制文件。在工作目录下,将a.txt复制到文件b.txt

$cp a.txt ..

将a.txt复制到父目录的a.txt

 

$mv a.txt c.txt

mv是move的简写,用来移动文件。将a.txt移动成为c.txt (相当于重命名rename)

$mv c.txt /home/vamei

将c.txt移动到/home/vamei目录

 

$rm a.txt

rm是remove的缩写,用于删除文件。删除a.txt

$rm -r /home/vamei 

删除从/home/vamei向下的整个子文件系统。-r表示recursive, 是指重复删除的操作,/home/vamei文件夹为空,然后删除/home/vamei文件夹本身。

(程序员总是对这个命令很感兴趣,   $rm -rf /   它会删除整个文件树。f的目的是告诉rm放心干,不用再确认了…… 一般情况下,应该没有人会用这个命令。)

 

$mkdir /home/vamei/good

创建一个新的目录

$rmdir /home/vamei/good

删除一个空的目录

 

cd

切换工作目录
Linux是多用户操作系统,每个用户(除了root)都有自己的home目录,用表示,root有自己的文件夹/root
Linux中用./表示当前目录,用../表示当前目录的父目录,用于表示相对路径

cd

切换工作目录
Linux是多用户操作系统,每个用户(除了root)都有自己的home目录,用表示,root有自己的文件夹/root
Linux中用./表示当前目录,用../表示当前目录的父目录,用于表示相对路径

文件权限相关

$chmod 755 a.txt

(你必须是文件a.txt的拥有者才能运行此命令。或者以$sudo chmod 755 a.txt的方式,以超级用户的身份运行该命令。)

change mode 改变a.txt的读、写以及执行权限。还记得每个文件都有九位的读写执行权限(参看 Linux文件管理背景知识),分为三组,分别对应拥有者(owner),拥有组(owner group)中的用户和所有其他用户(other)。在这里,我们也有三个数字,755,对应三个组。7被分配给拥有者,5被分配给拥有组,最后一个5分配给其它用户。Linux规定: 4为有读取的权利,2为有写入的权利,1为有执行的权利。我们看到的7实际上是4

  • 2 + 1,表示拥有者有读、写、执行三项权利。(想想5 意味着什么)

这时,运行$ls -l a.txt, 你应该看到九位的权限变成了rwxr-xr-x。根据自己的需要,你可以用比如444, 744代替755,来让文件有不同的权限。

 

$sudo chown root a.txt

change owner 改变文件的拥有者为root用户。这个命令需要有超级用户权限才能执行,所以我们在命令之前加上sudo。

$sudo chgrp root a.txt

change group 改变文件的拥有组为root组

 

ls

列出目录里的内容,缺省选项列出非隐藏内容的简要信息,缺省目录就列出当前目录的内容
$ls -F [目录] #列出非隐藏内容的简要信息,并标识文件类型,/表示目录,@表示连接,普通文件无标识
$ls -l [目录] #列出非隐藏内容的详细信息
$ls -a/-f [目录] #列出所有内容的简要信息
$ls -al [目录] #列出所有文件的详细信息

ls

列出目录里的内容,缺省选项列出非隐藏内容的简要信息,缺省目录就列出当前目录的内容
$ls -F [目录] #列出非隐藏内容的简要信息,并标识文件类型,/表示目录,@表示连接,普通文件无标识
$ls -l [目录] #列出非隐藏内容的详细信息
$ls -a/-f [目录] #列出所有内容的简要信息
$ls -al [目录] #列出所有文件的详细信息

Linux文件名通配表达式

(wild card, 也叫filename pattern matching)

 

之前所讲的命令,比如ls, mv, cp都可以接收多个参数,比如:

$ls -l a.txt b.txt c.txt

就可以列出这三个文件的所有信息。

 

有时候,我们想列出工作目录下所有的以.txt结尾的文件的信息,可以用下面的方式:

$ls -l *.txt

*.txt的写法就运用了Linux通配表达式。它与正则表达式相类似,但语法有所不同。

 

Filename Pattern Matching       对应含义 

 

*                               任意多个任意字符

 

?                               任意一个字符

[kl]                            字符k或者字符l

 

[0-4]                           数字0到4字符中的一个

 

[b-e]                           b到e字符中的一个

 

[^mnp]                          一个字符,这个字符不是m,n,p

Linux会找到符合表达式的文件名,然后用这些文件名作为参数传递给命令。注意,当使用rm的时候,要格外小心。下面两个命令,只相差一个空格,但效果大为不同:

$rm * .txt

$rm *.txt

第一个命令会删除当前目录下所有文件!

 

cat

查看一个文件,将其中的内容直接显示在Terminal

touch

$touch [-acdmt] filepath #修改文件时间或创建新文件,可以接很多parameter,一次性创建很多文件
-a#仅修改访问时间
-c#仅修改文件的时间,若不存在则不创建新文件
-d#后面可以接欲修改的日期而不用目前的日期,也可以使用-date=“日期或时间”
-t#后面可以接欲修改的日期而不用目前的日期,格式为[YYMMDDhhmm]

总结

touch, ls, mv, cp, rm, mkdir, rmdir

chmod, chown, chgrp

wild card

touch

创建一个文件,可以接很多parameter,一次性创建很多文件

cp

复制一个文件,缺省选项时复制文件
cp [文件] [新目录] #将文件1复制到新目录
cp -r [目录] [新目录] #-r表示recursion,将目录1连同其子目录一并复制到新目录

cp

复制一个文件,缺省选项时复制文件
cp [文件] [新目录] #将文件1复制到新目录
cp -r [目录] [新目录] #-r表示recursion,将目录1连同其子目录一并复制到新目录

mv

移动/重命名一个文件/目录
mv [文件/目录] [新目录] #将文件1移动到新目录
mv [文件1/目录1] [文件2/目录2] #将文件1/目录1移动到文件2/目录2所在目录并重命名为文件2/目录2

mv

移动/重命名一个文件/目录
mv [文件/目录] [新目录] #将文件1移动到新目录
mv [文件1/目录1] [文件2/目录2] #将文件1/目录1移动到文件2/目录2所在目录并重命名为文件2/目录2

mkdir

创建一个目录,缺省选项创建一个目录
$mkdir -p #-p表示递归生成目录,就是指定路径中的所有目录,只要不存在,就会被创建
$mkdir -p my/{firstsub/grand,secondsub}可以同时创建多个子目录

mkdir

创建一个目录,缺省选项创建一个目录
$mkdir -r #-r表示递归生成目录,就是指定路径中的所有目录,只要不存在,就会被创建

rmdir

删除一个空目录
$rm [-p] [目录] #递归删除所有的空目录

rmdir

删除一个空目录
$rm -p [目录] #递归删除所有的空目录

rm

删除一个文件/目录
$rm [文件] #删除一个文件
$rm -r [目录] #递归删除一个目录及其里面的内容

rm

删除一个文件/目录
$rm [文件] #删除一个文件
$rm -r [目录] #递归删除一个目录及其里面的内容

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-09/135154.htm

图片 1

本文由js333发布于计算机互联网,转载请注明出处:命令学习笔记,Linux文件管理相关命令

关键词:

上一篇:金沙js333娱乐场C语言文件操作函数大全,linux标准

下一篇:没有了