shell

本文介绍了Linux命令行中的基本文件管理操作,包括改变目录(cd)、查看文件信息(file)、浏览文件内容(less)、复制(cp)、移动/重命名(mv)和删除(rm)文件。此外,还讲解了ls命令的各种选项以详细列出目录内容,以及如何使用通配符进行文件操作。通过熟悉这些命令,用户可以高效地在Linux环境中管理文件和目录。
摘要由CSDN通过智能技术生成

双击或者滑动选择文本,然后点击鼠标中键可以粘贴

cd

支持绝对和相对路径。
相对路径可以省略 ./,如a/b
返回父级: ..
绝对路径:/usr/home

cd 更改工作目录到你的家目录。
cd - 更改工作目录到先前的工作目录。
ls 列出当前目录文件(不包括隐藏文件)
ls -a 列出当前目录所有文件(包括隐藏文件)
file — 确定文件类型
less — 浏览文件内容

ls

ls ~ /usr 列出多个目录:家(~),/usr

可选参数:
“-l”选项,则结果以长模式输出。
“t”选项按文件修改时间的先后来排序。
-a 所有
选项 “–reverse”,则结果会以相反的顺序输出:

ls -lt --reverse

-a	--all	列出所有文件,甚至包括文件名以圆点开头的默认会被隐藏的隐藏文件。
-d	--directory	通常,如果指定了目录名,ls 命令会列出这个目录中的内容,而不是目录本身。 把这个选项与 -l 选项结合使用,可以看到所指定目录的详细信息,而不是目录中的内容。
-F	--classify	这个选项会在每个所列出的名字后面加上一个指示符。例如,如果名字是 目录名,则会加上一个'/'字符。
-h	--human-readable	当以长格式列出时,以人们可读的格式,而不是以字节数来显示文件的大小。
-l	以长格式显示结果。	
-r	--reverse	以相反的顺序来显示结果。通常,ls 命令的输出结果按照字母升序排列。
-S	命令输出结果按照文件大小来排序。	
-t	按照修改时间来排序。	
输入:
ls -l
输出:
-rw-r--r-- 1 root root   32059 2007-04-03 11:05 oo-cd-cover.odf
解析:


-rw-r--r--	对于文件的访问权限。第一个字符指明文件类型。在不同类型之间, 开头的“-”说明是一个普通文件,“d”表明是一个目录。其后三个字符是文件所有者的 访问权限,再其后的三个字符是文件所属组中成员的访问权限,最后三个字符是其他所 有人的访问权限。这个字段的完整含义将在第十章讨论。
1	文件的硬链接数目。参考随后讨论的关于链接的内容。
root	文件属主的用户名。
root	文件所属用户组的名字。
32059	以字节数表示的文件大小。
2007-04-03 11:05	上次修改文件的时间和日期。
oo-cd-cover.odf	文件名。

file

获取文件信息

在 Linux 系统中,并不要求文件名来反映文件的内容。
一切皆文件”。

file cnn.jpg//虽然下的jpg,实际上是一个xml文件
cnn.jpg: XML 1.0 document, ASCII text, with very long lines

less

预览文本文件
允许你前后滚动文件。q退出

命令			行为
Page UP or b	向上翻滚一页
Page Down or space	向下翻滚一页
UP Arrow	向上翻滚一行
Down Arrow	向下翻滚一行
G	移动到最后一行
1G or g	移动到开头一行
/charaters	向前查找指定的字符串
n	向前查找下一个出现的字符串,这个字符串是之前所指定查找的
h	显示帮助屏幕
q	退出 less 程序

cp — 复制文件和目录
mv — 移动/重命名文件和目录
mkdir — 创建目录
rm — 删除文件和目录
ln — 创建硬链接和符号链接
为什么不使用图形窗口完成?命令行可以完成复杂任务

比如:复制所有html文件到目标位置,但是如果目标位置已经存在的不用复制,已经存在高版本了也不用复制

cp -u *.html destination

通配符

可以用于指定文件名

*	匹配任意多个字符(包括零个或一个)
?	匹配任意一个字符(不包括零个)
[characters]	匹配任意一个属于字符集中的字符
[!characters]	匹配任意一个不是字符集中的字符
[[:class:]]	匹配任意一个属于指定字符类中的字符:

[:alnum:]	Alphanumeric characters字母或数字
[:alpha:]	Alphabetic characters
[:digit:]	Numerals
[:upper:]	Uppercase alphabetic characters
[:lower:]	Lowercase alphabetic characters

举例:

[abc]* a/b/c开头的文件
[[:upper:]]* 大写开头的文件//不要使用[A-Z]*
*[![:lower:]] 不以小写结尾
BACKUP.[[:digit:]][[:digit:]],如BACKUP.12

cp

参数

-a, --archive	复制文件和目录,以及它们的属性,包括所有权和权限。 通常,复本具有用户所操作文件的默认属性。
-i, --interactive	在重写已存在文件之前,提示用户确认。如果这个选项不指定, cp 命令会默认重写文件。
-r, --recursive	递归地复制目录及目录中的内容。当复制目录时, 需要这个选项(或者-a 选项)。
-u, --update	当把文件从一个目录复制到另一个目录时,仅复制 目标目录中不存在的文件,或者是文件内容新于目标目录中已经存在的文件。
-v, --verbose	显示翔实的命令操作信息

例子

cp file1 file2	复制文件 file1 内容到文件 file2。如果 file2 已经存在, file2 的内容会被 file1 的内容重写。如果 file2 不存在,则会创建 file2。
cp -i file1 file2	这条命令和上面的命令一样,除了如果文件 file2 存在的话,在文件 file2 被重写之前, 会提示用户确认信息。
cp file1 file2 dir1	复制文件 file1 和文件 file2 到目录 dir1。目录 dir1 必须存在。
cp dir1/* dir2	使用一个通配符,在目录 dir1 中的所有文件都被复制到目录 dir2 中。 dir2 必须已经存在。
cp -r dir1 dir2	复制目录 dir1 中的内容到目录 dir2。如果目录 dir2 不存在, 创建目录 dir2,操作完成后,目录 dir2 中的内容和 dir1 中的一样。 如果目录 dir2 存在,则目录 dir1 (和目录中的内容)将会被复制到 dir2 中。

mv

和cp参数类似:

-i --interactive	在重写一个已经存在的文件之前,提示用户确认信息。 如果不指定这个选项,mv 命令会默认重写文件内容。
-u --update	当把文件从一个目录移动另一个目录时,只是移动不存在的文件, 或者文件内容新于目标目录相对应文件的内容。
-v --verbose	当操作 mv 命令时,显示翔实的操作信息。

例子

mv file1 file2	移动 file1 到 file2。如果 file2 存在,它的内容会被 file1 的内容重写。 如果 file2 不存在,则创建 file2。 每种情况下,file1 不再存在。
mv -i file1 file2	除了如果 file2 存在的话,在 file2 被重写之前,用户会得到 提示信息外,这个和上面的选项一样。
mv file1 file2 dir1	移动 file1 和 file2 到目录 dir1 中。dir1 必须已经存在。
mv dir1 dir2	如果目录 dir2 不存在,创建目录 dir2,并且移动目录 dir1 的内容到 目录 dir2 中,同时删除目录 dir1。如果目录 dir2 存在,移动目录 dir1(及它的内容)到目录 dir2。

rm

参数

-i, --interactive	在删除已存在的文件前,提示用户确认信息。 如果不指定这个选项,rm 会默默地删除文件
-r, --recursive	递归地删除文件,这意味着,如果要删除一个目录,而此目录 又包含子目录,那么子目录也会被删除。要删除一个目录,必须指定这个选项。
-f, --force	忽视不存在的文件,不显示提示信息。这选项颠覆了“--interactive”选项。
-v, --verbose	在执行 rm 命令时,显示翔实的操作信息。
表5-9: rm 实例

例子

命令	运行结果
rm file1	默默地删除文件
rm -i file1	除了在删除文件之前,提示用户确认信息之外,和上面的命令作用一样。
rm -r file1 dir1	删除文件 file1, 目录 dir1,及 dir1 中的内容。
rm -rf file1 dir1	同上,除了如果文件 file1,或目录 dir1 不存在的话,rm 仍会继续执行。

注意:最好rm之前ls,然后按上箭头,把ls改为mv;防止删错,不可挽回。

ls *.html
rm *.html

mkdir

mkdir directory...
mkdir dir1 dir2/dir3

ln

硬链接:

ln file link

类似创建文件的快捷方式,但又不一样,原名称和硬链接名称都是指向文件其实目录的指针,所以是等价的,不是说后者是前者的快捷方式:

  1. 只能是文件
  2. 只能创建同一分区的文件的硬链接
  3. 链接删除,文件还在
    用的少
    判断两个文件是否指向同一个分区地址(是不是互为硬链接);
ls -li
1211848 -rw-r--r-- 2 zhang zhang 2462 520 15:59 fun
1211848 -rw-r--r-- 2 zhang zhang 2462 520 15:59 fun-hard

第一个数字相同,是同一个

符号链接

类似快捷方式

ln -s item link
  1. 可以为文件或者文件夹创建
  2. 支持为不同分区的文件或文件夹创建
  3. 符号链接在文件夹列表中会有一个类似快捷方式的箭头
ln -s /home/me/playground/fun dir1/fun-sym

推荐使用绝对地址,就可以移动新创建的符号链接。

ls -l
lrwxrwxrwx 1 me  me    6 2008-01-15 15:17 fun-sym -> ../fun

l开头说明是一个符号链接文件

大部分针对符号链接的命令会处理实际的文件,mv命令除外,mv会删除这个符号链接。

在这里插入图片描述
蓝色:目录
白色:文件/硬链接
红色:没用的符号链接
亮蓝色:符号链接

命令

type – 说明怎样解释一个命令名
which – 显示会执行哪个可执行程序
man – 显示命令手册页
apropos – 显示一系列适合的命令
info – 显示命令 info
whatis – 显示一个命令的简洁描述
alias – 创建命令别名
什么是命令?

  1. executable program。程序,如c编写的程序
  2. command。shell 自身的命令,如cd
  3. shell function。shell 函数,如 cp
  4. alias。命令别名,可以自定义

怎么判断是什么命令?

[me@linuxbox ~]$ type type
type is a shell builtins//2
[me@linuxbox ~]$ type ls
ls is aliased to `ls --color=tty` //ls 并加颜色。4
[me@linuxbox ~]$ type cp
cp is /bin/cp

总结:

1,3函数:whitch(位置),–help, man,apropos
2自身命令:help
3自定义:type

which - 显示一个可执行程序的位置

只能查找类型1,3的命令。
返回所在的位置,用于查找可执行文件的位置

help - 得到 shell 内部命令的帮助文档

只能查找类型2的帮助文档

help cd
cd: cd [-L|-P] [dir]//可以有-L或者-P中的一个,可以用dir

–help - 显示用法信息

只能查找1 3
许多可执行程序支持一个 --help 选项,这个选项是显示命令所支持的语法和选项说明。例如:

[me@linuxbox ~]$ mkdir --help
Usage: mkdir [OPTION] DIRECTORY...
Create ...

man - 显示程序手册页

man ls

1 用户命令
2 程序接口内核系统调用
3 C 库函数程序接口
4 特殊文件,比如说设备结点和驱动程序
5 文件格式
6 游戏娱乐,如屏幕保护程序
7 其他方面
8 系统管理员命令
可以使用章节号,因为默认返回第一次找到的地方

man 5 passwd

apropos - 显示适当的命令

模糊搜索,等价于 man -k

whatis

针对程序:1,3
列出文档在手册中的位置;并打印一句描述

自定义命令

alias foo='cd /usr; ls; cd -'
unalias foo
alias //列出所有自定义命令

命令行定义的自定义命令会在关闭窗口时消失

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值