第2章 Linux的基本操作

第2章 Linux的基本操作

2.1 shell初体验

2.1.1虚拟终端

Linux操作系统是一个真正的多用户操作系统,其虚拟终端可以为多用户提供多个互不干扰、独立工作的界面。用户可用相同或不同的账号登录,同时使用计算机。方法如下:

在centos系统中经测试,Ctrl+Alt+(F2…F6)组合键可以进入不同的终端,以不同身份登录。

如何从虚拟终端返回图形界面:按组合键Alt+F1

如何在不同虚拟终端切换:Alt+(F2…F6)

在这里插入图片描述

2.1.2 Shell 命令

1.shell命令提示符

在终端,Shell命令提示符有两种,当以root(管理员)身份登录后,提示符为“#”号;当以普通账号登录后,提示为“$”符号。

2.Shell命令格式

命令名 [选项] [参数]

说明:

(1)其中命令名是实现shell命令功能 的英文单词缩写。

(2)选项起到增强或限定命令功能的作用。以-或–开头或省略。通常情况下,-后面是单个字母,- -后面是一个单词,多个选项可以只使用一个“-”。

(3)示例: ① ls --help ②ls -l ③ls --a ④tar cf…

(4)参数是命令执行的直接作用对象,不同的命令参数个数也不相同,可以是0个、1个或多个。

注意:命令严格区分大小写。然后输入命令时,只需要输入命令名 选项 参数
即可,它们之间用空格隔开,同时不要把中括号也输入,参数可以缺省,默认为当前目录。

3.shell命令学习法宝——man手册

man是manual的缩写,即帮助的意思。man除了提供shell命令的帮助信息,还包括系统内核函数等帮助信息。可以说,man手册是初学者在学习shell命令时必备的“字典”,格式如下:

“man 命令名" 可以查看该命令的帮助信息;

”man 函数名“ 可以查看该函数的帮助信息;

Tip:当命令名和函数名(即上面提到的内核函数)相同时,默认查看的是命令的帮助信息,若想查看函数帮助信息,则加一个选项2。即man 2 函数名 man ls;man cd ;man open;
注意:空格不能丢

2.2 shell常用命令

2.2.1 目录和文件操作命令

1.pwd命令

格式:pwd

说明:显示当前目录的绝对路径

知识储备:Linux中的路径分为绝对路径和相对路径。绝对路径是指从根目录/出发到当前目录或文件的路径,而相对路径是指从当前路径到其下子目录或文件的路径。目录之间用”/“分隔(提示查看Windows操作系统下的路径表示,注意与Linux下的路径表示进行区分)。

2.cd命令

格式:cd [目录相对路径或绝对路径]

说明:切换到指定目录。

3.ls命令

格式:ls [选项] [文件或目录]

说明:无任何选项情况下,参数若是目录,显示该目录下的文件及子目录信息;如果参数是文件则显示该文件本身的信息。

选项说明:

[-l]显示文件或目录的详细信息。

[-d]参数必须是目录。功能是显示本目录的信息。

[-a]显示包括隐藏文件的所有文件和目录,Linux中以”.“开头的就是隐藏文件。

知识补充:Linux中存在两个特殊的目录,分别是.和…,其中.表示当前目录,…表示上一级目录。

示例:切换到/home下,查看/home下的文件及子目录的详细信息;只查看/home目录本身的详细信息;再切换到根目录/下,查看/目录下的文件及子目录详细信息,如图所示:
在这里插入图片描述

4.mkdir命令

格式:mkdir [选项] 目录路径

说明:创建目录(文件夹)

选项说明:

[-p] 可以创建多级目录

示例:在Code文件夹下创建test文件夹,然后在test目录下创建多级目录one/two
在这里插入图片描述

5.rm命令

格式:rm [选项] 目录或文件

说明:删除指定目录或文件

选项说明:

[-r] 递归删除,也就是删除目录下的子文件夹(不限深度)

[-f] 不需要确认的强制删除

eg: rm -r one/two/与rm -r one/two等价,都是删除two文件夹

示例:已知test目录下有one文件夹,one文件夹下有two文件夹,现递归删除two文件夹。

选项既可以组合在一起也可以分开,写法一:
在这里插入图片描述
写法二:
在这里插入图片描述
如果要删除test文件夹下的one目录怎么办,只要将选项设为-r,路径为当前目录下的one文件夹。两种写法:
在这里插入图片描述
一次删除多个目录:
在这里插入图片描述

6.mv命令

格式:mv 源文件或目录 目标文件或目录

说明:移动重命名文件及目录

示例:将/home中的game文件夹重命名为mygame,然后将其移动到/home/study中,如图所示:
在这里插入图片描述

7.cat命令

说明:查看文本文件的内容、创建文本文件、向文件追加内容、合并文件

用法:

cat 文件路径——查看文本文件内容。

cat > 文件路径——文件不存在则创建;文件存在,则覆盖原来文件的内容(输入完毕后一定按Enter键,然后使用Ctrl+C组合键结束输入)。

cat >> 文件路径——将新的内容追加到已存在的文件中;若文件不存在,则新建文件。

cat 文件1路径 文件2路径 > 文件3路径——将文件1和文件2的内容合并到文件3中。

例如:在/home中创建名为a.c和b.c的文件,并查看a.c文件的内容;为b.c添加内容并再次查看b.c的内容;将a.c和b.c合并成main.c。如图所示:
在这里插入图片描述
在这里插入图片描述

使用通配符删除所有.c后缀的文件:
在这里插入图片描述

8.cp命令

格式: cp 源文件或目录 目标文件或目录

说明:文件或目录的复制

例如:在/home下创建”备份“文件夹,将main.c复制到”备份“文件夹中。

若要将上述要求改为将main.c复制到”备份“文件夹中,并重命名为”program.c“,如何实现?想一想还有没有其他办法。(提示可以用mv指令改名)

思考如何将所有的.c文件进行复制?(提示:通配符)

指令:cp 备份/*.c 备份1

知识补充:

使用Ctrl+空格可以完成中英文输入法的切换;使用键盘上的向上方向键可以“翻”出历史命令重新执行,提高工作效率。

示例:
在这里插入图片描述

9.find命令

格式:find [目录列表] [匹配标准]

其中,目录列表是文件查找范围,多个目录用空格隔开。匹配标准是希望查询的文件的依据。

说明:查找文件。

重点匹配标准为按文件名查找

格式:find 目录列表 -name 需要查找的文件名

注意:

当文件名有通配符时,必须用“”将文件名引起来。

-type f 表示查找普通文件

-type d 表示查找目录

例如:查找/home及其子目录下的main.c文件;查找/home及其子目录下所有的a.c文件;自己创建一些文件和目录,练习按类型查找目录和文件。

示例:在/home目录下创建了dir1、dir2、dir3三个文件夹,并在dir1下创建了dir1/dir11/dir12,两个子目录。
在这里插入图片描述

在这里插入图片描述
知识补充:

很多情况下,查找文件或目录的目的是对其进行处理。例如将/home下的所有的a.c文件删除。(当然你可以新建一个dir1文件夹,在里面放一些文件,然后删除)这种情况就可以在find命令后添加:

-exec command {} ; 即对查找到的文件进行command操作

注意:{}和;之间有空格。

那么将/home下所有a.c文件删除,正确的写法为:find /home -name a.c -exec rm {} ;

示例:在home文件夹下的新建dir1文件夹,执行上述操作。
在这里插入图片描述

10.grep命令

格式:grep [参数] <要找的字符串><要寻找字串的源文件>

说明:在文件中搜索匹配的字符并进行输出

[-i] 表示不区分大小写。

例如:在/home/main.c中查找max:
在这里插入图片描述

11.wc命令

格式:wc [选项] 文件列表

选项说明:

[-c] 统计字节数。

[-l] 统计行数

[-w] 统计字数

说明:统计指定文件中的字节数、行数、字数,并将统计结果显示输出。

示例:
在这里插入图片描述
统计一个目录下的文件和子目录个数,可利用下面的补充知识及wc命令完成

知识补充:

重定向符号>另一种用法是,可以将命令的输出结果重定向到一个文件。

例如:默认情况下ls命令的输出结果显示在屏幕上即标准输出,可将结果重定向到一个文件将信息存储起来。例如,将/home下的文件及子目录信息以文件/beifen.txt存储

示例:
在这里插入图片描述

2.2.2 文件归档及压缩

在Linux操作系统中,使用tar命令可以为文件和目录创建备份。使用tar命令,用户可以为某一特定文件创建备份文件,也可以在备份中改变文件,或者向备份文件中添加新的文件。使用tar命令,可以将大量文件和目录全部打包成一个文件,或者将备份文件和几个文件组合成为一个文件,以便网络传输。

tar命令详解

格式: tar [主选项+辅选项] 文件或者目录

主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。

选项说明:

[c] 创建打包备份文件

[r]
追加到备份文件的末尾。例如用户已经做好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。

[t] 列出备份文件的内容,查看已经备份了哪些文件。

[u] 更新备份中的文件。

[x] 从备份文件中释放文件。

情景模拟:小张要送给女朋友小李一些文件作为礼物,于是准备了一些文件后对其进行打包,打包后对备份文件的内容进行查看,发现少备份了一个文件,于是将其追加到备份文件中,再次查看备份文件。
操作如图:
在这里插入图片描述
小张突然想起来其中一个文件的内容需要更改,于是将文件内容修改后对备份文件进行了更新。如图:
在这里插入图片描述
小李收到礼物后非常高兴,于是她将礼物移动到/home/study中(如果没有study文件夹,可用mkdir study创建),然后将备份文件进行释放,查看各文件内容。如图:
在这里插入图片描述
如果小李收到礼物后,只想将部分文件进行释放,应该怎么做?如果将文件释放到指定目录而非当前目录,应该怎么做?

辅选项:z

在备份文件时加上辅选项z,就会完成备份文件的压缩。本次练习以上述情景为前提来进行。注意比较压缩文件和非压缩文件的名称和大小,如图所示:
在这里插入图片描述

2.3 深入shell

2.3.1 通配符

通配符的作用是同时匹配多个文件以便于操作。常用的通配符是“*”和“?”,除此之外还包括由[] -!等组成的模式。

采取小组学习的方式将通配符的使用举例说明并动手操作。

例如:

 cp  *.c    /home 
 将当前目录下所有的.c文件复制到/home文件夹中。
rm  -f  a?d.txt 
强制删除当前目录下首字符是a,尾字符是d的文本文件。

2.3.2 重定向

重定向,顾名思义,重新定向。Linux的标准输入设备是键盘,标准输出设备是显示器。与输入有关的只有输入重定向。与输出有关的分为输出重定向、附加输出重定向和错误输出重定向。

1.输入重定向(0< 或<)

标准输入重定向:不用键盘输入,而用其他设备输入。这里用wall来广播一下之前编辑的test文件,写法是:

wall < /home/test

即将test文件内容广播出去

2.输出重定向(1>或>)
cat a.c b.c>c.c  ls>/home/file.txt
3.附件输出重定向(>>)
cat c.c>>/home/file.txt

2.3.3 管道

Shell的一个重要特征就是可以将多个命令用管道符号“|”连接起来形成一个管道流,前一个命令的输出将作为后一个命令的输入,从左到右依次执行管道中的各命令。

统计一个目录下的文件和子目录个数可利用管道来完成。例如,统计/home下文件和子目录个数,构造管道命令为:

ls /home |wc-l

解析:ls /home命令的结果不再显示在屏幕上,而通过管道成为下一个命令wc的输入,所以最后屏幕显示的就是wc的统计结果。

2.3.4 自动补全

当目录或文件名很长很复杂时,用户容易因输入错误而不能准确定位到目录或文件,自动补全就可以避免这种错误。用户在定位某个文件或目录时,只需要输入文件名的前几个字符,然后按下Tab键,系统就可以将文件名自动补全了。

2.3.5 用户操作命令

Linux是一个多用户、多任务操作系统,其中root用户是超级用户,该用户具有对系统操作最高权限,所以若一直以root身份登录系统并操作,存在着一定风险。因此,在Linux中通常要创建很多普通账号,各个账号可根据需要分配不同的权限。

1.创建用户

命令:useradd username

例如:useradd user1//创建了一个名为user1的账号

2.为用户设置密码

命令:passwd username

例如:passwd user1

3.删除用户

命令:userdel username

例如:userdel user1

4.切换用户

命令:su [选项] username

例如:su user1//切换到user1身份进行操作

选项说明:

[-p] 执行su时不改变环境参数。

[-c] 切换到username时并执行命令,然后切换回原来的用户。

su root-c mkdir /dir1 #以root身份创建文件夹dir1

普通用户切换到root用户要输入root用户的登录密码,而从root用户切换回普通用户则不用输入密码。

5.sudo命令

使用su命令切换用户的缺陷就是任何一个想要转为root用户的人都得掌握root用户的密码,显然很不安全。sudo命令能够补偿su命令的这个致命缺陷。sudo命令还可以实现以系统管理员的身份进行操作。

需要注意的是:sudo不同于su,不是人人都可以使用sudo临时切换到root身份进行操作,只有root授权的用户才享有sudo的特权。授权文件为/etc/sudoers,新装的Linux操作系统中享有sudo特权的用户只有root,如果希望用户user1享有sudo特权,必须将user1加入到授权文件中。操作步骤如下:

①将/etc/sudoers的权限更改为属主用户具有可读可写权限(默认是只读,无法进行修改)

在[root@localhost root]# 终端输入命令:chmod u+w /etc/sudoers

②使用vi打开sudoers文件后,找到下面的字样,添加上带有底纹的一行。

#User privilege specification

root ALL=(ALL) ALL

user1 ALL=(ALL) ALL

③保存退出。保存后一定要记得将sudoers的权限改为初始值

第①步中增加了“w”的权限,在这里直接去掉该权限即可

在终端输入命令:chmod u-w /etc/sudoers

④使用sudo命令,测试过程如图所示

2.3.6 关机与重启

Linux中常用的关机和重新启动的命令有shutdown、halt、reboot以及init,它们都可以达到关机和重新启动的目的,但是每个命令的内部工作过程是不同的,本节将介绍各个命令的使用方法。

1.shutdown命令

shutdown命令用于安全关闭Linux系统。通过直接断掉电源的方式来关闭Linux是十分危险的,因为Linux后台运行着多个进程,所以强制关机可能会导致进程数据的丢失,使系统处于不稳定的状态,甚至损坏硬件设备。

执行shutdown命令时,系统会通知所有登录的用户系统将要关闭,即使新的用户也不能再登录系统。使用shutdown命令可以直接关闭系统,也可以延迟指定的时间再关闭系统,还可以重新启动。延迟指定的时间再关闭系统,可以让用户有时间存储当前正在处理的文件和关闭已经打开的程序。

shutdown的命令格式:

shutdown [][][][][选项] [时间] [警告信息]

shutdown命令的主要选项如下:

[-t] 指定在多长时间之后关机

[-r] 重启系统

[-k] 并不真正关机,只是给每个登录的用户发送警告信号。

[-h] 关闭系统

[-c] 取消一个已经运行的shutdown

例如:用户希望2分钟之后关机,并告诉所有用户。输入的命令如下:

[root@localhost root]# shutdown -h +2 "The system will be shutdown in 2 minutes"

2.halt命令

halt是最简单的关机命令,其实就是调用shutdown -h命令。执行halt命令时,杀死应用进程,文件系统写操作完成后停止。

halt命令的使用格式:halt [选项]

halt命令的主要选项如下:

[-f] 强制关机

[-i] 关机之前,断开所有的网络接口。

[-p] 关机前执行关闭电源的操作poweroff,取消一个已经运行的shutdown。

[-n] 关机前不做将内存数据写入硬盘的操作。

3.reboot命令

reboot的工作过程和halt类似,其作用是重新启动计算机,

reboot的使用格式:reboot [选项]

reboot命令的主要选项如下:

[-f] 强制关机

[-i] 关机之前,断开所有的网络接口

[-n] 关机前不做将内存数据写入硬盘的操作。

4.init命令

initial是所有进程的祖先,其进程号始终为1。init用于切换系统的运行级别,切换的工作是立即完成的。

init0命令用于将系统的运行级别切换为0,即关机;init 6命令用于将系统运行级别切换为6,即重新启动。

5.poweroff

部分UNIX/Linux系统才支持。

2.4 硬链接和软连接

我们知道任何文件都有文件名与文件内容两个属性,这在Linux操作系统中被分成两个部分:用户数据(user data)与元数据(meta data)。用户数据,即文件数据块(data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者信息等。在Linux中国,元数据中的inode号(inode是文件元数据的一部分,但其并不包括文件名,inode号即索引节点号)这才是文件的唯一标识而非文件名。文件名是为了人们的记忆和使用。

为了解决文件的共享使用,Linux系统引入了两种链接:硬链接与软链接。

2.4.1 硬链接

如果一个inode号对应多个文件名,则称这些文件互为硬链接。也就是说硬链接是同一个文件使用了多个别名。创建硬链接的命令为link或ln。

例如要创建文件a.c的硬链接,输入命令:ln a.c a_ylj.c 则创建了a.c文件的硬链接文件a_ylj.c

由于互为硬链接的文件具有相同的inode索引号,只是文件名不同,因此硬链接具有以下特点。

  • 文件有相同的inode及data block
  • 只能对已存在的文件创建硬链接
  • 不能对目录创建硬链接
  • 更改一个文件,与其互为硬链接的文件都会改变(一改全改)
  • 删除一个硬链接文件并不影响其他互为硬链接的文件

2.4.2 软链接

软链接与硬链接不同,软链接文件内容是另一文件的路径名,相当于Windows系统下文件或文件夹的快捷方式。
创建软链接的命令:ln -s fileold fileruan,即为文件fileold创建软链接——fileruan

软链接特点为

  • 软链接有自己的inode节点
  • 可创建对文件或目录的软链接
  • 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关的软链接被称为死链接(即dangling link ,若被指向的路径文件被重新创建,死链接可以恢复成正常的软链接)

点击跳转上一篇文章 Linux操作系统概述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西里小诸葛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值