Linux命令(一)ls,cd,pwd,mkdir,rm,mv,cp,cat,nl

本篇记录了9个命令,分别是ls,cd,psw,mkdir,rm,mv,cp,cat,nl
参考链接:https://www.cnblogs.com/peida/archive/2012/10/26/2740521.html

一.ls,cd,psw

1.1ls命令

作用: list(显示列表)
格式:

ls [options]
optionfunctuion
-a显示全部路径,包括文件,文件夹
-l显示文件详细信息
-d显示directory而不是里面的文件
-h以人类能理解的语言显示文件详细信息
-t按修改的时间排序

使用例子:
1.寻找所有的文件并显示所有的详细信息:

ls -a -l

或者

ls -al

2.寻找以xx开头的文件

ls d*

1.2 cd命令

作用: change directory
格式:

cd [Directory]
parameterfunction
/返回根目录
..返回父级目录
~返回home directory(是一个特定的目录,与根目录有所不同)
-上一次的目录,类似于windows的返回上一级

补充:关于斜杠,Linux用正斜杠表示路径,反斜杠表示转义字符,所以在路径的时候不要使用反斜杠,而windows则相反,它用反斜杠表示本地路径,正斜杠表示参数

1.3 pwd命令

作用: 在进入了环境但是不知道这个环境属于哪一个目录的时候,可以用这个命令来获取当前目录

parameterfunction
-P显示真实的物理路径而不是链接路径
-L当这个路径是连接路径就会显示(只显示链接路径)

目前没有发现两者的不同
使用例子:
在这里插入图片描述

interlude: 如果删了某个文件还是会显示原来的目录,可以看到这里的zhou文件被删了,但是用pwd还是会显示原本的路径

二.mkdir,rm,mv,cp,cat,nl

2.1 mkdir

作用: make directory(创建路径,不是文件噢)
格式:

mkdir [options] directory
parameterfunction
-m设定权限
-p如果父目录不存在会自动创建父目录
-v每次创建新目录就会显示信息

使用例子:
1.在home的环境下,一条指令创建路径/ling/me,并指定权限是777,显示创建信息,ling不存在
在这里插入图片描述
修改权限出现问题,可能是没有登录

2.2 rm

作用: remove(删除)
格式:

rm [options]
parameterfunction
-r递归地删除这个文件以及它内部的子文件或子文件夹
-f强制性删除,不询问
-iinterative,互动式的,删之前会询问

使用例子:
1.删除文件file,系统会先询问是否删除。

rm -i log.file

默认状态的模式下是不提示的,只有不存在才会提示
2.强行删除file,系统不再提示,就算不存在也不提示

rm -f file

3.删除任何.log文件;删除前逐一询问确认

rm -i  *.log

4.将 test1子目录及子目录中所有档案删除,不用-r 是无法删除目录的

rm -r test1

5.将 test2 子目录及子目录中所有档案删除,并且不用一一确认

rm -rf test1

6.实现回收站功能,即在删除的时候不直接删掉,而是将文件放到一个目录中,当用户后悔的时候可以来这里回恢复(移动操作)
步骤A: 先定义一个函数

myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; }

这个函数的意思是:
1.先定义D是根目录下tmp路径中的一个子路径(文件夹),路径以日期来命名
2.用mkdir来创建这个路径
3.用mv命令将当前的文件移动到路径D下
4.最后回应显示:move to D ok
步骤B: 定义好函数之后,将rm的功能改一下:

$alias rm='myrm'

步骤C: 使用rm函数,示例如下
在这里插入图片描述
这里我们可以看到,删除的功能变成了将文件加入回收站的功能,当需要恢复文件时,可以从这里移动回去
这里引入一个思考:如何将rm函数重置?在上面的步骤中我们将rm函数定义成了myrm(),如果我们需要把它换回原来的函数,应该怎么操作?
我的办法是:

$alias rm='rm'

亲测有效,如下图所示:
在这里插入图片描述

2.3 mv

作用: move(移动文件或者重命名)
格式:

mv [options] 源路径/文件 目标路径/文件

如果是文件–>文件就是重命名或者覆盖,如果是文件–>路径就是移动

parameterfuncrion
-iinteractive,如果存在目标文件,询问是否覆盖
-fforce,如果存在目标文件,直接执行不询问
-bbackup,如果覆盖,先备份
-u如果存在目标文件,并且源文件比目标文件更新,才会询问并更新,否则不询问也不更新
-ttarget,这个命令使用时,目标目录在前,源路径/文件在后

使用例子:
1.将文件a.txt,b.txt,c.txt移动到目录test3中

mv -t test3 a.txt b.txt c.txt
或者:mv a.txt b.txt c.txt test3

2.将文件aa改名为bb,如果bb已经存在,则询问是否覆盖

mv -i aa bb 

3.将文件aaa改名为bbb,即使bbb存在,也直接覆盖掉。

mv -f aaa bbb

4.将目录ling移动到ling1,跟windows资源管理器是一样的移动目录

mv ling ling1

5.移动当前文件夹下的所有文件到上一级目录

mv  * ../(注意不是mv * ..

6.把当前目录的一个子目录test1里的所有文件移动到另一个子目录test2里,

mv -r test1 test2

备注:如果test2存在就是改名
7.文件log1.txt被 log2.txt覆盖,被覆盖前做简单备份,注意-b的位置

mv  log2.txt-b log1.txt

关于重命名,它并不检查你的后缀名是否有改动,你可以将1.txt重命名为test,而这个test不是路径,而是文件,可以通过文件颜色判断

2.4 cp

作用: copy(复制),将源文件复制至目标文件,或将多个源文件复制到目标目录
格式:

cp [options]
parameterfunction
-aarchive,此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpr参数组合
-bbackup
-d复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-fforce,如果目标文件无法打开,则将其移除并重试(-n出现时不再需要此选项)
-iinteractive,覆盖前询问(使-n无效)
-llink,链接文件而不复制
-L总是跟随符号链接
-r若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-n不要覆盖已存在的文件(使前面的 -i 选项失效)
-p除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。

使用例子:
1.复制单个文件file到目标目录tdir,文件在目标文件中不存在

cp file tdir

2.目标文件存在时,会询问是否覆盖

cp -i file tdir

不加-i 也可以,目标文件存在时,会询问是否覆盖。这是因为cp是cp -i 的别名。目标文件存在时,即使加了-f 标志,也还会询问是否覆盖。
3.复制整个目录sdir到tdir(当目标目录存在,当目标目录不存在两种情况下操作不同)

cp -a  sdir tdir

当目标目录存在时,是将sdir整个放到tdir里面,当目标目录不存在时,直接将sdir复制一份 改名成tdir(复制并重命名)
4.复制的 log.log 建立一个连结档 log_link.log

cp -s  log.log log_link.log

这个连结档相当于一个快捷方式

2.5 cat

作用: concat(拼接)
有合并,显示,创建三大功能:
1.一次显示整个文件:cat filename
2.从键盘创建一个文件:cat > filename (只能创建新文件,不能编辑已有文件)
3.将几个文件合并为一个文件:cat file1 file2 > file
格式:

cat [options] filename
parameterfunction
-a–show-all ,显示所有,相当于vET
-E–show ends,每行结束的地方显示$
-n–number,对输出的所有行编号,由1开始对所有输出的行数编号
-b–number-nonblank ,对非空输出行编号
-s–squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行
-v–show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外
-T,–show-tabs ,相当于-vT将跳格字符显示为 ^I
-t与 -vT 等价
-e与-vE等价

使用例子:
1.把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里

cat -n log2012.log log2013.log

2.把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加
到 log.log 里。

cat -b log2012.log log2013.log log.log

3.把 log2012.log 的文件内容加上行号后输入 log.log 这个文件里

cat -n log2012.log log2013.log

4.使用here doc来生成文件,文件内容hello world

cat >hello.txt <<EOF
heredoc>hello world
heredoc>EOF

<<EOF是一个开始标志,EOF是结束标志,在<<EOF与EOF之间是生成文件的内容
cat后面的>是重写的意思,换成>>是追加
在这里插入图片描述

5.反向列示log.txt

tac log.txt

2.6 nl

作用: n the line(连接,显示)
格式:

nl [options] [document]

options主要有两个参数b与n

parameterfunction
-b指定行号指定的方式
-n列出行号表示的方法
-w辅助n rz,用于指定行号栏位的占用位数(几个0)

具体参数:

parameterfunction
-b a表示不论是否为空行,也同样列出行号(类似 cat -n)
-b t如果有空行,空的那一行不要列出行号(默认值)
parameterfunction
-n ln行号在萤幕的最左方显示
-n rn行号在萤幕的最右方显示,不加0
-n rz行号在萤幕的最右方显示,加0

使用例子:
1.用 nl 列出a.txt 的内容

nl a.txt 

在这里插入图片描述

此操作空文本不加行号
2.用 nl 列出 log2012.log 的内容,空本行也加上行号

nl -ba a.txt 

在这里插入图片描述

3.让行号前面自动补上0,统一输出格式,调整行号位数为3位。

nl -rz -w 3 a.txt 

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值