江天飞鸟

V1

2022/03/14阅读:27主题:极客黑

第2章 Linux的基本操作(续)

今天这篇文章将介绍Linux的基本操作的剩余内容。


第2章 Linux的基本操作

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

4.错误重定向(2>)

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 //为用户1设置密码

3.删除用户

命令:userdel username

例如:userdel user1

4.切换用户

命令:su [选项] username

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

选项说明:

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

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

su -c ls root //变更帐号为 root 并在执行 ls 指令后退出变回原使用者。

普通用户切换到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”的权限,在这里直接去掉该权限即可)

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

注解:[root@localhost ~]表示用户主目录,[root@localhost root]就是表示root用户的主目录(cd ~可以切换到主目录

④使用sudo命令,测试过程如图所示:sudoers文件

案例:当前用户为zsh,想要直接在根目录/下创建文件夹是没有权限的,可以使用sudo命令暂时使用root用户的权限,然后输入用户zsh的密码。

sudo mkdir /goods

总结:sudo与su区别

su是需要输入root用户的密码,sudo是只需要输入当前用户的密码,但是需要将当前用户添加到sudo用户组。

6.Linux的命令行打字不显示咋办?

原因:这时因为你不小心关闭了命令行的回显功能

stty echo #开启回显,打字就可以显示了

stty -echo #关闭回显

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的基本操作的内容已经总结完毕了,接下来将要介绍Linux完全解密的第3章文本编辑器,在接下来的章节中你将学习到如何用vi编辑器进行文本编辑的操作,通过几个按键实现文本的复制、粘贴、剪切、删除等等操作。 长按关注CoderSong

分类:

后端

标签:

后端

作者介绍

江天飞鸟
V1