Linux基本指令

这一章我们将讲解在Linux系统下,一些基本指令的用法和功能.

后面有一些重要的指令我们将单独讲解.

目录


ls 指令

用法:ls [选项] [目录和文件]

功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

ls常用的选项有以下几种:

-a 列出目录下的所有文件,包括以 . 开头的隐含文件

-l 列出文件的详细信息

ls -a

这就是当前目录下的所有文件,包括隐藏的文件.

ls -l

这个是显示文件的详细信息,但是不显示隐藏文件的信息. 

其它选项:
-d 将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件。
-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
-r 对目录反向排序。
-t 以时间排序。
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。(递归)
-1 一行只输出一个文件。

值得注意的是:

1.选项可以随意搭配使用,并不是只可以指定一个选项,而是可以多个一起使用.

2.可以不写选项和文件名,默认为显示当前目录下的文件夹.

3.前两个文件:代表当前目录;.. 代表上一级目录.

pwd 指令

用法:pwd(后面不加任何东西)

功能:显示用户当前所在目录.

说明我当前所在的路径在/home/liqi

cd 指令

用法:cd 目录名

功能: 改变工作目录,将当前目录改变到指定目录下.

用法举例:

cd ..    :返回上级目录(上面说过,..代表上级目录,所以进入上级目录就是cd ..)

cd /home/liqi     : 绝对路径

cd ../liqi/    : 相对路径

cd ~     :进入用户家目录

cd –    :访问最近一次访问的目录 

.代表是当前路径,所以cd .就是进入当前路径,所以并没有什么效果.

解释一下相对路径:不是以根目录开始,而是以当前路径为参考点,这样定位文件的方式,叫做相对路径.

touch 指令

语法:touch [选项] [文件]

功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者 新建一个不存在的文件(核心作用). 

有以下选项,但不常用,touch主要被用来创建文件.

-a   或–time=atime或–time=access或–time=use只更改存取时间。
-c   或–no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m   或–time=mtime或–time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间.

用touch创建普通文件

touch 文件名

 可以看到,我先显示一下当前文件,然后再创建一个liqi文件,这个时候我们再显示,发现liqi这个文件已经被创建好了.

这里先说一个命令:ll   等价于ls -l

touch还有一个作用:就是更新文件的时间.

看liqi这个文件,我一开始创建的时间是12:27,过了一会,我再touch一下,再次显示,发现最近新的时间更新为了当前的时间12:31.

mkdir 指令★

用法:mkdir [选项] dirname….

功能:在当前目录下创建一个名为dirname的目录

这里只有一个常用的选项 -p

-p, –parents  可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;

先来看普通mkdir的使用.

可以看到一开始这个文件里什么都没有,然后我mkdir既创建了一个名字为liqi的目录.然后再显示,发现成功了.

但是如果我想创建的时候在liqi的目录里再添加一个hmy的目录呢?

我们先按普通的试一下:

 可以看到无法创建.

所以此时要想同时创建多个目录,必须加-p

 可以发现此时liqi和hmy同时被创建完成了.

这里大家可以安装一个tree的结构,可以树状结构显示目录.

指令为yum install -y tree(注意必须是root用户)

安装完成后,就可以使用了,tree 目录名即可把当前目录下的所有文件树状显示.

这样再看目录时就一目了然了.

 rmdir 指令 && rm指令★

rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除目录.

 用法:rmdir [-p] [dirname]

适用对象:具有当前目录操作权限的所有使用者

功能:删除空目录

记住,只能删除空目录,不是空目录不能被删除.

当然上面这个是次要的,最重要的是下面这个指令.

rm指令

rm [选项] [dirname/dir]

适用对象:所有使用者

功能:删除文件或目录

常用选项:

-f 即使文件属性为只读(即写保护),也直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件

看一下大致用法

 rm不加选项默认删除文件,不能删除目录.

加上-r才可以删除目录!

 还有下面几种小用法,可以自己下去具体了解一下

rm -rf 文件/目录    //删除文件或目录

rm -rf *.c                //*是一种通配结构,既*是什么都可以,只要最后带有.c的文件会全被删除.相当于是xxx.c的文件都会被移除.

rm -rf *                   //*后面什么都没加,说明这是删除所有文件(-r递归(删目录),-f强制)

rm -rf /                  //直接将根目录下的所有文件全部删除,也就是我们口中所说的删库.大家不要轻易尝试哦~

man 指令★

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是
man 语法: man [选项] 命令

功能:查看相关指令的用法

选项:

1. -k 根据关键字搜索联机帮助
2. num 只在第num章节找
3. -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。

针对于第二个num,这里详细解释一下,面手册分为8章
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)[也是常用的].
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

举个例子:

我们想查ls的用法. 

这个时候我们可以用man 1 ls       (ls属于普通的命令,所以选项是1,不加选项也可以)

 然后看结果:

 看NAME下面那一行,解释了功能:是列出所有的目录.

然后下面那一行也介绍了相应的用法.

再下面也分别介绍了各个选项的作用.非常方便.

cp 指令 ★

语法:cp [选项] 源文件或目录 目标文件或目录

功能:复制文件或目录

说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息

常用选项:

-f 或 –force :强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 –interactive :覆盖文件之前先询问用户
-r :递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 –recursive :递归处理,将指定目录下的文件及子目录一并处理

先来一个文件的cp

 

这里就成功的将test1和test2拷贝到了tmp文件,而且自身也没有变化.

再来看目录的cp

首先可以看到普通的不加选项的cp指令不可以拷贝目录.

拷贝目录必须添加选项-r.

mv 指令★

mv命令是move的缩写,可以用来移动文件或者将文件改名,是Linux系统下常用的命令,经常用来备份文件或者目录。

用法:mv [选项] 源文件或目录 目标文件或目录

功能:

视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。(若目标是个文件,则将其(源文件名字)重命名为目标文件名字,若目标是个目录,则会移动到这个目录中)

1.当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
2. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

常用选项:

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

第一种情况:当目标参数类型是文件时

 可以看到test1里是123456,test2里是789

然后将test1 mv到 test2 中

由于test2是文件,所以将test1重命名为test2,里面的内容也变成了test1里的内容

相当于是test1覆盖了test2,并且将test1重命名为test2

再来看第二种情况:当目标参数类型是目录时

 可以看到这会将文件移动到目标目录下.

这就是mv的两种基本用法.

cat && tac指令

语法:cat [选项] [文件]
功能: 查看目标文件的内容

常用选项:

-b 对非空输出行编号(不包括空行)
-n 对输出的所有行编号(包括空行)
-s 不输出多行空行(不输出每一行的的空行,相当于是不输出每一行的空格)

我们具体来看一下效果,然后很快就能明白区别.

 tac指令

cat是把文件内容正向输出出来.

而tac指令是把文件内容反向输出出来.

我们看下面:

echo 指令

用法:echo [选项] [输出内容(string类型)]

功能:显示文字

选项

  • -n 不要输出新行
  • -e 启用反斜线转义解释
  • -E 禁用反斜线转义解释(默认)

第二第三个选项的意思是对后面的string字符串,是否启用转义字符,-e启用,-E禁用.

若是用-e选项,则可用如下转义序列:

  • \ 反斜线
  • \a 警告(BEL)
  • \b 反斜线
  • \c 不产生进一步输出
  • \e 转义
  • \f 换页
  • \n 新行
  • \r 换行字符
  • \t 水平制表
  • \v 垂直制表
  • \0NNN 八进制值表示的字节NNN(1到3个数字)
  • \xHH 十六进制值表示的字节NNN(1到2个数字)

看这三选项的区别.

 可以看到带-e选项的字符串中的\n被转移成了换行,而-E没有.

还有一种用法,就是可以直接输出到指定文件,用法如下:

echo “string” > 文件名

 可以看到原本的文件里的内容是hello world

把hello linux输出到文件里面时候,会先清除文件里所有内容,然后再进入写入.

所以此时文件里只有hello linux.

这个过程叫做输出重定向

echo “string” >> 文件名

 

可以看到原本的文件里的内容是hello linux

把hello world输出到文件里面时候,此时在文件后面追加了一行,并没有把原来的清空.

这个过程叫做追加重定向.

这是Linux的一些基本的指令,但这只是一小部分,还有一部分等待我们后面继续讲解.

版权声明:本文为博主作者:次元工程师!原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/weixin_47257473/article/details/127842389

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2024年1月16日
下一篇 2024年1月16日

相关推荐