计算机基础和Linux基础入门

1. 一个完整计算机系统的简要介绍。

一个完整的计算机系统由硬件(Hardware)系统和软件(Software)系统两大部分组成。

大致的组成如下:

2. 学会进制的转换,并简单举例完成转换。

计算机的数制采用二进制,bit 位, byte 字节 1 byte =8 bit,而人们日常使用的数制则是十进制,

计算机间的通信采用的是二进制数制的,那么不同的进制数制是如何相互转换的?

下面将利用8 4 2 1 BCD码进行演示!

范例: 十进制和二进制互转换,

12=1100

  • 8 4 2 1 (bcd码)

  • 1 1 0 0 (十进制数制12在8421中是8+4,所以匹配到为1,反之为0,则是1100)

范例: 八进制和二进制互转换,(八进制数最高位是7,所以这里用4 2 1 来匹配八进制)

14=1100

  • 4 2 1 4 2 1 (bcd码)

  • 0 0 1 1 0 0 (1在421中匹配到1,所以八进制的1在是001,八进制的4是100,合起来则是001 100)

范例: 二进制和十进制互转换,

11101=29

  • 16 8 4 2 1 (bcd码)

  • 1 1 1 0 1 (转换的十进制数为16+8+4+1=29)

#这个方法建议百度查找更加详细的教学,此处讲解的不详细。

4. 说明GPL和MIT开源协议的区别。

GPL-强制开源-linux

GPL(GNU General Public License):GNU通用公共许可协议。

GPL协议的目的就是强制代码开源和免费使用。

其最大的特点就是“开源的传染性”。也就是说,假设某公司使用了具有GPL协议的代码库,那么他理论上也必须把自己的代码库开源。

MIT-受公司欢迎的宽松协议-vue

MIT(The Massachusetts Institute of TechnologyLicense,麻省理工学院许可协议)是众多协议条款中,被广泛使用的其中一种。与其他常见的软件许可协议相比,MIT是相对宽松的软件许可协议。

MIT协议允许你任意的使用、复制、修改原MIT代码库,随便你卖钱还是开源,唯一需要遵循的原则就是在你的软件中声明你也使用的是MIT协议就行了。

而很多的公司企业在选用开源产品的时候都首选MIT协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。

UI框架VUE、脚本语言Lua使用的就是MIT协议。

6. 说明tab键补全命令以及补全路径的原理。

tab 键可以实现命令及路径等补全,提高输入效率,避免出错。

命令补全

内部命令:

外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令命令的子命令补全,需要安装 bash-completion

注意:用户给定的字符串只有一条惟一对应的命令,直接补全,否则,再次Tab会给出列表。

路径补全

把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名

如果惟一:则直接补全;否则:再次Tab给出列表

双击Tab键

command 2Tab 所有子命令或文件补全

string2Tab 以string开头命令

/2Tab 显示所有根目录下一级目录,包括隐藏目录

./2Tab 当前目录下子目录,包括隐藏目录

*2Tab 当前目录下子目录,不包括隐藏目录

~2Tab 所有用户列表

$2Tab 所有变量

@2Tab /etc/hosts记录 (centos7 不支持)

=2Tab 相当于ls –A (centos7不支持)

7. 说明内部命令和外部命令的区别,以及他们如何获取帮助的?

shell中可执行的两类命令

内部命令:由shell自带的,而且通过某命令形式提供, 用户登录后自动加载并常驻内存中。

外部命令:在文件系统路径下有对应的可执行程序文件,当执行命令时才从磁盘加载至内存中,执行完毕后从内存中删除。

#区别指定的命令是内部或外部命令:type COMMAND

内部命令帮助

help COMMAND

man bash

外部命令

COMMAND --help 或 COMMAND -h

8. 说明命令行快捷键如何完成,

1)快速跳转到行首?Ctrl + a ,相当于Home

2)快速跳转到行尾?Ctrl + e ,相当于End

3)快速删除当前光标到行尾,Ctrl + K

4)快速删除光标到行首, Ctrl + u

5)如何快速取消执行命令。 Ctrl + c

9. 总结Linux目录结构说明每个目录主要的用途。

文件系统的目录结构

  1. 文件和目录被组织成一个单根倒置树结构

  1. 文件系统从根目录下开始,用“/”表示

  1. 根文件系统(rootfs):root fifilesystem

  1. 标准Linux文件系统(如:ext4),文件名称大小写敏感,例如:MAIL, Mail, mail, mAiL

  1. 以 . 开头的文件为隐藏文件

  1. 路径分隔的 /

  1. 文件名最长255个字节

  1. 包括路径在内文件名称最长4095个字节

  1. 蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 灰色-->其他文件

  1. 除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引

  1. 号来引用每个文件都有两类相关数据:元数据:metadata,即属性, 数据:data,即文件内容

常见的文件系统目录功能

 /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录
/bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
/lib64:专用于x86_64系统上的辅助共享库文件存放位置
/etc:配置文件目录
/home/USERNAME:普通用户家目录
/root:管理员的家目录
/media:便携式移动设备挂载点
/mnt:临时文件系统挂载点
/dev:设备文件及特殊文件存储位置
 b: block device,随机访问
 c: character device,线性访问
/opt:第三方应用程序的安装位置
/srv:系统上运行的服务用到的数据
/tmp:临时文件存储位置
/usr: universal shared, read-only data
 bin: 保证系统拥有完整功能而提供的应用程序
 sbin:
 lib:32位使用
 lib64:只存在64位系统
 include: C程序的头文件(header files)
 share:结构化独立的数据,例如doc, man等
       local:第三方应用程序的安装位置
   bin, sbin, lib, lib64, etc, share
/var: variable data files
 cache: 应用程序缓存数据目录
 lib: 应用程序状态信息数据
 local:专用于为/usr/local下的应用程序存储可变数据
 lock: 锁文件
 log: 日志目录及文件
 opt: 专用于为/opt下的应用程序存储可变数据
 run: 运行中的进程相关数据,通常用于存储进程pid文件
 spool: 应用程序数据池
 tmp: 保存系统两次重启之间产生的临时数据
/proc: 用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置

10. 总结文件常用通配符。

常见的通配符如下:

* 匹配零个或多个字符,但不匹配 "." 开头的文件,即隐藏文件
? 匹配任何单个字符,一个汉字也算一个字符
~ 当前用户家目录
~mage 用户mage家目录
[0-9] 匹配数字范围
[a-z] 一个字母
[A-Z] 一个字母
[wang] 匹配列表中的任何的一个字符
[^wang] 匹配列表中的所有字符以外的字符
[^a-z] 匹配列表中的所有字符以外的字符
. 和 ~+ 当前工作目录
~-   前一个工作目录

另外还有在Linux系统中预定义的字符类表示法如下:man 7 glob

[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母,表示 a-z
[:upper:]: 任意大写字母,表示 A-Z 
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:图形字符
[:xdigit:]:十六进制字符

10. 说明文件系统如何根据用户输入的路径查找到磁盘上的文件的过程。

从根目录“/”开始一级一级的往下查询。

11. 总结硬链接和软件链接原理,并举例说明如何使用。

硬(hard)链接本质上就给一个文件起一个新的名称,实质是同一个文件。

硬链接特性

  • 创建硬链接会在对应的目录中增加额外的记录项以引用文件

  • 对应于同一文件系统上一个物理文件

  • 每个目录引用相同的inode号

  • 创建时链接数递增

  • 删除文件时:rm命令递减计数的链接,文件要存在,至少有一个链接数,当链接数为零时,该文件被删除

  • 不能跨越驱动器或分区

  • 不支持对目录创建硬链接

  • 格式:ln filename [linkname]

符号 symbolic (或软 soft)链接

一个符号链接指向另一个文件,就像 windows 中快捷方式,软链接文件和原文件本质上不是同一个文件。

软链接特点

  • 一个符号链接的内容是它引用文件的名称

  • 可以对目录创建软链接

  • 可以跨分区的文件实现

  • 指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数

  • 在创建软链接时, 如果源文件使用相对路径,是相对于软链接文件的路径,而非相对于当前工作目录,但是软链接的路径如果是相对路径,则是相对于当前工作目录

  • 格式:ln -s filename [linkname]

硬链接和软链接区别总结

1. 本质:

硬链接:本质是同一个文件

软链接:本质不是同一个文件

2. 跨设备

硬链接:不支持

软链接:支持

3. inode

硬链接:相同

软链接:不同

4. 链接数

硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少

软链接:创建或删除,链接数不会变化

5. 文件夹

硬链接:不支持

软链接:支持

6. 相对路径

硬链接:原始文件相对路径是相对于当前工作目录

软链接:原始文件的相对路径是相对于链接文件的相对路径

7. 删除源文件

硬链接:只是链接数减一,但链接文件的访问不受影响

软链接:链接文件将无法访问

8. 文件类型

rm -rf /data/dirlink #只删除软链接本身,不会删除源目录内容

rm -rf /data/dirlink/ #删除源目录的文件,但不会删除链接文件,此方法非常危险

#注意: 删除此软链接务必不要加-r选项硬链接:和源文件相同

软链接:链接文件,和源文件无关

9. 文件大小

硬链接: 和源文件相同

软链接: 源文件的路径的长度

12. 说明linux命令管理工作流程,结合管道功能,自行设计几个题目。

管道(使用符号“|”表示)用来连接多个命令。格式:命令1 | 命令2 | 命令3 | …

功能说明:

  • 将命令1的STDOUT发送给命令2的STDIN,命令2的STDOUT发送到命令3的STDIN

  • 所有命令会在当前shell进程的子shell进程中执行

  • 组合多种工具的功能

注意:STDERR默认不能通过管道转发,可利用2>&1 或 |& 实现,格式如下:

命令1 2>&1 | 命令2

命令1 |& 命令2

13. 说明标准输入,标准输出,标准错误输出的区别,及举例说明其功能。

  • 标准输入(STDIN) -0 默认接受来自终端窗口的输入

  • 标准输出(STDOUT)-1 默认输出到终端窗口

  • 标准错误(STDERR) -2 默认输出到终端窗口

14. 总结学过的用户,组,权限相关的命令及选项,示例

用户管理命令

  1. useradd 命令可以创建新的Linux用户,格式:useradd [options] LOGIN

常见选项:
-u UID 
-o 配合-u 选项,不检查UID的唯一性
-g GID 指明用户所属基本组,可为组名,也可以GID
-c "COMMENT“ 用户的注释信息
-d HOME_DIR 以指定的路径(不存在)为家目录
-s SHELL 指明用户的默认shell程序,可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,...] 为用户指明附加组,组须事先存在
-N 不创建私用组做主组,使用users组做主组
-r 创建系统用户 CentOS 6之前: ID<500,CentOS7 以后: ID<1000
-m 创建家目录,用于系统用户
-M 不创建家目录,用于非系统用户
-p 指定加密的密码
  1. usermod 命令可以修改用户属性,格式:usermod [OPTION] login

常见选项:
-u UID: 新UID
-g GID: 新主组
-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使
用-a选项
-s SHELL:新的默认SHELL
-c 'COMMENT':新的注释信息
-d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
-l login_name: 新的名字
-L: lock指定用户,在/etc/shadow 密码栏的增加 ! 
-U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉
-e YYYY-MM-DD: 指明用户账号过期日期
-f INACTIVE: 设定非活动期限,即宽限期
  1. userdel 可删除Linux 用户,格式:userdel [OPTION]... Login

常见选项:.
-f, --force   强制
-r, --remove 删除用户家目录和邮箱

组帐号维护命令

  1. groupadd 实现创建组,格式:groupadd [OPTION]... group_name

常见选项:
-g GID 指明GID号;[GID_MIN, GID_MAX]
-r 创建系统组,CentOS 6之前: ID<500,CentOS 7以后: ID<1000
  1. groupmod 组属性修改,格式:groupmod [OPTION]... group

常见选项:
-n group_name: 新名字
-g GID: 新的GID
  1. groupdel 可以删除组,格式:groupdel [options] GROUP

常见选项:
-f, --force 强制删除,即使是用户的主组也强制删除组,但会导致无主组的用户不可用无法登录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值