ToB企服应用市场:ToB评测及商务社交产业平台

标题: ❤️肝下25万字的《决战Linux到精通》笔记,你的Linux水平将从入门到入魔❤ [打印本页]

作者: 宁睿    时间: 2022-6-24 09:13
标题: ❤️肝下25万字的《决战Linux到精通》笔记,你的Linux水平将从入门到入魔❤

涉及的内容情况参看下面的目录:

文章目录



操作系统的发展史

Unix


Minix

因为AT&T(通用电气)的政策改变,在Version 7 Unix推出之后,发布新的使用条款,将UNIX源代码私有化,在大学中不再能使用UNIX源代码。Andrew S. Tanenbaum(塔能鲍姆)教授为了能在课堂上教授学生操作系统运作的实务细节,决定在不使用任何AT&T的源代码前提下,自行开发与UNIX兼容的操作系统,以避免版权上的争议。他以小型UNIX(mini-UNIX)之意,将它称为MINIX。
Linux

因为Minix只是教学使用,因此功能并不强,因此Torvalds利用GNU的bash当做开发环境,gcc当做编译工具,编写了Linux内核-v0.02,但是一开始Linux并不能兼容Unix,即Unix上跑的应用程序不能在Linux上跑,即应用程序与内核之间的接口不一致,因为Unix是遵循POSIX规范的,因此Torvalds修改了Linux,并遵循POSIX(Portable Operating System Interface,他规范了应用程序与内核的接口规范); 一开始Linux只适用于386,后来经过全世界的网友的帮助,最终能够兼容多种硬件
操作系统的发展




Minix没有火起来的原因

   Minix的创始人说,MINIX 3没有统治世界是源于他在1992年犯下的一个错误,当时他认为BSD必然会一统天下,因为它是一个更稳定和更成熟的系统,其它操作系统难以与之竞争。因此他的MINIX的重心集中在教育上。四名BSD开发者已经成立了一家公司销售BSD系统,他们甚至还有一个有趣的电话号码1-800-ITS-UNIX。然而他们正因为这个电话号码而惹火上身。美国电话电报公司因电话号码而提起诉讼。官司打了三年才解决。在此期间,BSD陷于停滞,而Linux则借此一飞冲天。他的错误在于没有意识官司竟然持续了如此长的时间,以及BSD会因此受到削弱。如果美国电话电报公司没有起诉,Linux永远不会流行起来,BSD将统治世界。
  Linux介绍

Linux内核&发行版

Linux内核版本

内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。
Linux内核版本又分为稳定版和开发版,两种版本是相互关联,相互循环:

内核源码网址:http://www.kernel.org 所有来自全世界的对Linux源码的修改最终都会汇总到这个网站,由Linus领导的开源社区对其进行甄别和修改最终决定是否进入到Linux主线内核源码中。
Linux发行版本

Linux发行版 (也被叫做 GNU/Linux 发行版) 通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。

类Unix系统目录结构

Unix没有盘符这个概念,只有一个根目录/,所有文件都在它下面

Linux目录



用户目录

位于/home/user,称之为用户工作目录或家目录,表示方式:
  1. /home/user
  2. ~
复制代码
从/目录开始描述的路径为绝对路径,如:
  1. cd /home
  2. ls /usr
复制代码
从当前位置开始描述的路径为相对路径,如:
  1. cd ../../
  2. ls abc/def
复制代码
每个目录下都有**.和…**
. 表示当前目录
… 表示上一级目录,即父目录
根目录下的.和…都表示当前目录
文件的颜色含义蓝色目录绿色可执行文件红色压缩文件浅蓝色链接文件灰色其他文件命令行基本操作

命令使用方法

Linux命令格式:
  1. command  [-options]  [parameter1]  …
复制代码
command: 命令名; [-options]:选项,可用来对命令进行控制,也可以省略,[]代表可选 parameter1 …:传给命令的参数:可以是零个一个或多个
查看帮助文档

help

一般是linux命令自带的帮助信息
如:ls --help
man(manual)

man是linux提供的一个手册,包含了绝大部分的命令、函数使用说明
该手册分成很多章节(section),使用man时可以指定不同的章节来浏览。
例:man ls ; man 2 printf
man中各个section意义如下:
man是按照手册的章节号的顺序进行搜索的。
man设置了如下的功能键:
功能键功能空格键显示手册页的下一屏Enter键一次滚动手册页的一行b回滚一屏f前滚一屏q退出man命令h列出所有功能键/word搜索word字符串
注意:实际上,我们不用指定第几个章节也用查看,如,man ls
tab键自动补全

在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令
history游览历史

当系统执行过一些命令后,可按上下键翻看以前的命令,history将执行过的命令列举出来
history保留了最近执行的命令记录,默认可以保留1000。
历史清单从0开始编号到最大值。
常见用法:
  1. history N                显示最近N条命令
  2. history -c                清除所有的历史记录
  3. history -w  xxx.txt        保存历史记录到文本xxx.txt
复制代码
命令行中的ctrl组合键


Linux命令

权限管理

列出目录的内容:ls

Linux文件或者目录名称最长可以有265个字符,“.”代表当前目录,“…”代表上一级目录,以“.”开头的文件为隐藏文件,需要用 -a 参数才能显示。
ls常用参数:
参数含义-a显示指定目录下所有子目录与文件,包括隐藏文件-l以列表方式显示文件的详细信息-h配合 -l 以人性化的方式显示文件大小
  1. [root@VM_0_9_centos ~]# ll -h
  2. total 24K
  3. -rw-r--r-- 1 root root 1.6K Dec  1  2016 CentOS7-Base-163.repo.1
  4. -rw-r--r-- 1 root root 6.0K Nov 12  2015 mysql-community-release-el7-5.noarch.rpm
  5. -rw-r--r-- 1 root root   90 Nov 23 10:26 passwd
  6. drwxr-xr-t 2 root root 4.0K Nov 22 21:15 test
  7. -rw-r--r-- 1 root root  276 Nov 24 10:01 user
  8. lrwxrwxrwx 1 root root   14 Nov  6 19:18 web -> /var/www/html/
复制代码
列出的信息的含义:

ls支持通配符:
通配符含义*文件代表文件名中所有字符ls te*查找以te开头的文件ls *html查找结尾为html的文件?代表文件名中任意一个字符ls ?.c只找第一个字符任意,后缀为.c的文件ls a.?只找只有3个字符,前2字符为a.,最后一个字符任意的文件[][”和“]”将字符组括起来,表示可以匹配字符组中的任意一个。“-”用于表示字符范围。[abc]匹配a、b、c中的任意一个[a-f]匹配从a到f范围内的的任意一个字符ls [a-f]*找到从a到f范围内的的任意一个字符开头的文件ls a-f查找文件名为a-f的文件,当“-”处于方括号之外失去通配符的作用\如果要使通配符作为普通字符使用,可以在其前面加上转义字符。“?”和“*”处于方括号内时不用使用转义字符就失去通配符的作用。ls \*a查找文件名为*a的文件显示inode的内容:stat

  1. stat [文件或目录]
复制代码
查看 testfile 文件的inode内容内容,可以用以下命令:
  1. [root@VM_0_9_centos ~]# stat mysql-community-release-el7-5.noarch.rpm
  2.   File: ‘mysql-community-release-el7-5.noarch.rpm’
  3.   Size: 6140            Blocks: 16         IO Block: 4096   regular file
  4. Device: fd01h/64769d    Inode: 394398      Links: 1
  5. Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
  6. Access: 2019-11-23 13:30:42.000000000 +0800
  7. Modify: 2015-11-12 15:58:42.000000000 +0800
  8. Change: 2019-11-23 13:30:42.400300171 +0800
  9. Birth: -
  10. python@ubuntu:~/txt$ stat find我的Mr.Right.txt
  11.   文件:'find我的Mr.Right.txt'
  12.   大小:64768           块:128        IO 块:4096   普通文件
  13. 设备:801h/2049d        Inode:655501      硬链接:1
  14. 权限:(0664/-rw-rw-r--)  Uid:( 1000/  python)   Gid:( 1000/  python)
  15. 最近访问:2019-11-22 22:43:17.565105155 +0800
  16. 最近更改:2019-11-22 22:42:42.000000000 +0800
  17. 最近改动:2019-11-22 22:43:08.797116491 +0800
  18. 创建时间:-
复制代码
文件访问权限

用户能够控制一个给定的文件或目录的访问程度,一个文件或目录可能有读、写及执行权限:

通常,Unix/Linux系统只允许文件的属主(所有者)或超级用户改变文件的读写权限。
示例:

第1个字母代表文件的类型:

后9个字母分别代表三组权限:文件所有者、用户组、其他用户拥有的权限。
修改文件权限:chmod

chmod 修改文件权限有两种使用格式:字母法与数字法。
字母法:chmod u/g/o/a +/-/= rwx 文件
[ u/g/o/a ]含义uuser 表示该文件的所有者ggroup 表示与该文件的所有者属于同一组( group )者,即用户组oother 表示其他以外的人aall 表示这三者皆是 [ ±= ]含义+增加权限-撤销权限=设定权限 rwx含义rread 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。wwrite 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。xexcute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。数字法:“rwx” 这些权限也可以用数字来代替
字母说明r读取权限,数字代号为 “4”w写入权限,数字代号为 “2”x执行权限,数字代号为 “1”-不具任何权限,数字代号为 “0”如执行:chmod u=rwx,g=rx,o=r filename 就等同于:chmod u=7,g=5,o=4 filename
chmod 751 file:

chmod 777 file:所有用户拥有读、写、执行权限
注意:如果想递归所有目录加上相同权限,需要加上参数“ -R ”。 如:chmod 777 test/ -R 递归 test 目录下所有文件加 777 权限
修改文件所有者:chown

  1. python@ubuntu:~/test$ ll h.txt
  2. -rw------- 1 python python 4 11月 22 22:35 h.txt
  3. python@ubuntu:~/test$ chown mike h.txt
  4. chown: 正在更改'h.txt' 的所有者: 不允许的操作
  5. python@ubuntu:~/test$ sudo chown mike h.txt
  6. python@ubuntu:~/test$ ll h.txt              
  7. -rw------- 1 mike python 4 11月 22 22:35 h.txt
复制代码
修改文件所属组:chgrp

  1. python@ubuntu:~/test$ ll h.txt              
  2. -rw------- 1 mike python 4 11月 22 22:35 h.txt
  3. python@ubuntu:~/test$ sudo chgrp mike h.txt
  4. python@ubuntu:~/test$ ll h.txt              
  5. -rw------- 1 mike mike 4 11月 22 22:35 h.txt
复制代码
文件内容查看

Linux系统中使用以下命令来查看文件的内容:

基本显示:cat、tac

语法:
  1. cat [-AbEnTv]
复制代码
选项与参数:

  1. [root@VM_0_9_centos ~]# cat -b /etc/issue
  2.      1  \S
  3.      2  Kernel \r on an \m
  4. [root@VM_0_9_centos ~]# cat -n /etc/issue
  5.      1  \S
  6.      2  Kernel \r on an \m
  7.      3
  8. [root@VM_0_9_centos ~]#
复制代码
tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写!如:
  1. [root@VM_0_9_centos ~]# tac /etc/issue
  2. Kernel \r on an \m
  3. \S
复制代码
显示行号:nl

语法:
  1. nl [-bnw] 文件
复制代码
选项与参数:

  1. [root@www ~]# nl /etc/issue
  2.      1  CentOS release 6.4 (Final)
  3.      2  Kernel \r on an \m
复制代码
分屏显示:more、less

  1. [root@www ~]# more /etc/man_db.config
  2. #
  3. # Generated automatically from man.conf.in by the
  4. # configure script.
  5. #
  6. # man.conf from man-1.6d
  7. ....(中间省略)....
  8. --More--(28%)  <== 光标在这里等待命令
复制代码
清屏:clear

clear作用为清除终端上的显示(类似于DOS的cls清屏功能),快捷键:Ctrl + l ( “l” 为字母 )。
切换工作目录: cd

Linux所有的目录和文件名大小写敏感
cd后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录。
命令含义cd相当于cd ~cd ~切换到当前用户的主目录(/home/用户目录)cd .切换到当前目录cd …切换到上级目录cd -进入上次所在的目录显示当前路径:pwd

  1. [root@www ~]# less /etc/man.config
  2. #
  3. # Generated automatically from man.conf.in by the
  4. # configure script.
  5. #
  6. # man.conf from man-1.6d
  7. ....(中间省略)....
  8. :   <== 这里可以等待你输入命令!
复制代码
选项与参数:

  1. head [-n number] 文件
复制代码
创建目录:mkdir

mkdir可以创建一个新的目录。
注意:新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。
语法:
  1. [root@www ~]# head /etc/man.config
复制代码
选项与参数:

实例:-p递归创建目录:
[code][root@www ~]# cd /tmp[root@www tmp]# mkdir test




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4