首页 > 系统服务 > 详细

Linux 基础知识

时间:2019-12-04 22:53:43      阅读:79      评论:0      收藏:0      [点我收藏+]

1、Linux版本号
linux版本号(内核版本号):三部分组成:
A.B.C
A:主版本号
B:次版本号(奇数:开发版本 偶数:发行版本)
C:修订版本号(修订次数)
比如:内核版本:3.6.28 3时主版本号 6:次版本号 28:修订了28次

2、用户及主机名表示
[root@www ~]# 管理员登录
[zhangsan@www ~]$ 普通用户登录
root:当前登录的用户名
www:主机名
~:当前用户所处的目录(~代表用户宿主目录)
#:代表当前用户是管理员
$:代表当前登录用户是普通用户

3、shell的作用
shell:使用者,计算机交互接口(人机交互接口)
shell中输入命令,shell把命令传递给内核,内核把命令结果反馈给shell,人从shell中读取命令执行结果
hell广义上分为两类:
GUI:包括GNOME KDE XFACE等
CLI:sh csh ksh bash等(Linux发行版本中,bash是默认使用的shell程序)

shell启动:当用户登录完成后,系统会自动启动shell程序
进程:应用程序的副本;使用PID区分(在系统中,一个进程只认为自己存在)
root student用户
shell:父shell程序和子shell程序(父子shell之间设置环境互相独立)
cat /etc/shells //查看当前系统所支持的shell程序
yum -y install ksh csh //安装ksh,csh的shell程序
exit //退出当前shell程序
shell是一个程序

4、内核的作用:
进程管理:进程:要执行的任务
内存管理:
文件系统:存储设备上存储数据的方式方法:windows:NTFS/FAT32 LINUX:ext3 ext4 xfs等
网络功能:管理IP地址信息等
硬件驱动:
安全功能:

5、linux设计思想
1:有很多的小程序组成,每个小程序完成单一的功能,实现复杂的任务(http服务需要安装很多小组件)
2:一切皆文件:所有的外围设备(硬件)或者其他程序
3:尽量避免捕获用户接口
4:配置文件保存为纯文本格式(可以用文本编辑器编辑 vim)

6、Linux终端:多用户多任务系统
6个终端:ctrl+alt+F1-F6

7、Linux界面:
GUI:graphical user interface:图形用户接口(图形界面) 切换图形界面:ctrl+alt+F7
CLI: command line interface:命令行接口(字符界面)

8、切换用户:su(switch user)
su命令:当root用户切换到普通用户时,不需要普通用户的密码;而当普通用户切换到root用户时,需要提供root用户密码
root student
# su user_name
$ exit 退出当前用户

9、Linux命令格式:
命令字 [选项] [参数]:中括号表示可以省略
命令字:唯一的,实现某一项功能
选项:修改命令的执行方式(实现特定功能)
长选项:--引导,是一个单词(多个长选项不能组合)
短选项:-引导,是一个字符(多个短选项可以组合)
参数:命令作用的对象
10、3A认证:
认证机制:authentication
密码认证:
1:符合复杂性要求(数字,小写字母,大写字母,特殊符号至少三种)
2:密码长度(至少7位)
3:不要使用易记得密码(使用随机字符)
4:定期更改密码
5:重复密码的时间要长
授权机制:authorization
审计机制:audition(日志)

11、Linux命令分类:
内部命令:shell自带的命令
外部命令:在Linux文件系统中存在一个应用程序
type:查看Linux命令类型
[command] is a shell builtin:buildin关键字说明该命令是内部命令
mkdir is /bin/mkdir:有路径显示(外部命令)

12、路径:
绝对路径:从根(/)开始的路径是绝对路径,linux系统中只有一个根
相对路径:以所处的工作目录为参照点 (.代表当前路径 ..代表上一级路径 ~代表 登录用户的宿主目录)

13、ls(list):列出目录
-l(--long):以长格式显示
-rw-------. 1 root root 1207 Nov 6 18:51 anaconda-ks.cfg
第一位:文件类型
-:代表普通文件(file)
d:代表目录(directory)
b:块设备(block):如硬盘,U盘等
c:字符设备(char):如键盘等
s:套接字文件(socket)
p:命名管道(pipe)
l:符号链接文件(symbolic link file )
第二到十位:权限位(rwx:读写执行)
234位:文件属主权限(owner)
567位:文件属组权限(group)
8910位:其他用户权限(other)

    1:代表文件硬链接的次数
    
    第一个root:代表文件属主(owner)
    第二个root:代表文件属组(group)

    1207:文件的大小

    Nov  6 18:51:文件最后被访问的时间戳(stat命令查看文件时间戳)
    文件的时间戳:
      access:访问的时间戳
      Modify:文件被修改时间戳(修改文件数据:添加删除数据等)
      change:文件被更改时间戳(更改文件属性)
    anaconda-ks.cfg:文件名
 -h:为文件大小添加单位
 -a:显示目录下所有文件(包括.  ..   以.开始的隐藏文件)
 -A:和-a相同,但是不显示.和..
 -R:递归显示目录中的内容(一并显示子目录中所有内容)
 -r:逆序显示目录内容
 -i:显示文件所在的inode节点(index node)
 -d:显示目录本身的属性

14、环境变量:内存中的命名空间
PATH变量:存放系统命令路径,以冒号隔开
查看PATH变量:echo $PATH(Linux命令严格区分大小写)

  [root@www ~]# echo $PATH
      /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
  如果在以上路径中没有找到相关命令(该命令为外部命令),提示用户command not found
  如果一个命令在以上多个路径中存在,系统会按照从前往后的顺序查找,查找到该命令后,后面的路径的不在查找

15、Linux命令的帮助信息:
内部命令:help [command]
外部命令:[command] --help
16、man:帮助(命令的使用说明书)(查看内部命令时,显示的是bash帮助信息)
语法: man [command]
上下方向键:翻行
enter:向下翻行
pagedown:向下翻页
pageup:向上翻页
/word:从上往下查找关键字
?word:从下往上查找关键字
q:退出当前帮助信息
man目录说明
1:User Commands:普通用户命令(/bin /usr/bin /usr/local/bin):binary二进制
2:System Calls:系统调用库
3:C Library Functions:库调用
4:Devices and Special Files:设备或特殊文件(硬件设备)(硬件设备存放在/dev)
5:File Formats and Conventions:查看配置文件格式
6:Games et. Al.:游戏
7:Miscellanea:杂项
8:System Administration tools and Deamons:管理命令(/sbin /usr/sbin /usr/local/sbin)sbin:secret binary
man使用说明:
NAME:命令名称及简要用法
SYNOPSIS:语法格式,可能包括一些选项的使用
DESCRIPTION:命令和命令选项的详细说明
Exit status:退出状态码
AUTHOR:作者信息
REPORTING BUGS(BUG):发现BUG时如何反馈信息
COPYRIGHT:该命令的版权信息
SEE ALSO:另外参照的帮助信息
OPTIONS:说明该命令每一个选项的详细用法
EXAMPLES:命令使用实例
man手册页目录:/usr/share/doc(工作中主要是查看内核信息)
<>:必须使用的选项或参数,不可以省略
[]:可是省略的选项或参数
...:可以使用多个选项或参数
|:代表多选一
{}:分组,没有特殊意义
17、cd:change directory(切换目录)
cd:不加选项,返回到当前用户的宿主目录
-:返回到上一次的工作路径
~username:切换到username的宿主目录
pwd:print working directory:显示当前所处的工作目录
which:查看命令所在的路径
whatis:查看命令所在的帮助信息目录,该命令在系统启动大约70分钟后会生成whatis的数据库,如果时间太短,该命令不会执行,我们可以使用makewhatis(CentOS 6)初始化该命令,在CentOS 7中使用mandb命令,
# yum -y install man-pages

18、Linux根文件系统:
根目录下目录及子目录的作用
Linux文件类型:
-:普通文件
纯文本文件(ASCII):配置文件
二进制文件(binary file): 命令
数据格式文件(data):/var/log/wtmp
d:目录文件
l:链接文件:软链接文件
设备文件:(/dev)
b:block块设备
c:character字符集设备:一次性读取,按顺序读取
s:socket套接字文件:通常用在网络上数据连接: IP:PORT
p:管道:特殊的文件类型,解决多个程序同时访问一个文件所造成的错误问题
file:查看linux中文件类型
语法: file [options] file_name
linux文件名限制:
1:单个文件或目录的名称不能超过255字符
2:文件命中不能包含特殊字符(/ . - +等)
FHS标准(filesystem hierarchy standard):希望用户可以了解已经安装的程序在哪个目录下

根文件文件系统(/):rootfs:root filesystem
 /bin:二进制,存放命令
 /boot:存放启动和内核相关文件
 /dev:存放设备文件
 /etc:存放应用程序的配置文件
 /home:普通用户的家目录,默认为/home/USERNAME
 /lib和/lib64:存放系统开机时需要用的函数库及/bin和/sbin命令调用函数库
    /lib/modules:存放内核相关的模块(驱动程序等)
 /media和/mnt:挂载点,/media挂载移动设备    /mnt挂载临时设备
 /opt:第三方软件存放目录(用户自行安装的软件存放处),现在一般安装到/usr/local下
 /proc:伪文件系统,数据存放在内存中,存放关于进程的相关信息
 /root:管理员的家目录
 /sbin:存放管理员使用的命令
 /srv:service缩写,存放服务数据目录,如可以把www服务的网页存放到该目录
 /tmp:存放临时文件,所有用户都可以访问创建文件,但是每个用户只能删除自己的文件
 /sys:伪文件系统,存放在内存中,记录内核相关的信息,包括目前加载内核模块和内核检测到的硬件设备等
 /usr:UNIX software resource:存放安装的应用程序
    /usr/bin:普通用户使用的命令(和/bin区别是否与开机有关)
    /usr/sbin:网络服务器命令
    /usr/lib和/usr/lib64:包含各种应用程序函数库
    /usr/share:存放共享文件目录(在线帮助文件,杂项,时区文件等)
    /usr/include:存放头文件
    /usr/src:释放源代码目录
 /var:vary缩写,存放经常变动的文件,比如日志,mail等
   /var/cache:存放应用程序运行时产生的缓存文件
   /var/lib:程序运行时,需要使用的数据文件的存放目录
   /var/lock:设备或资源一次只能被一个应用程序使用,如果多应用程序会产生错误,因为要为设备或资源上锁(存放锁文件)
   /var/log:存放日志目录(系统,用户登录,服务日志等)
   /var/mail:存放个人电子邮件(系统报警产生邮件信息等)
   /var/run:存放应用程序运行时PID文件(进程号.pid结尾)
   /var/spool:存放队列数据,排队等待其他用户程序使用的数据,数据通常使用完成后会被删除
   
FHS规定:/etc /bin /dev /lib /sbin五个目录必须要和根目录位于同一文件系统

19、bash的特性:
1:命令历史:Linux会自动记录系统过去执行的命令,并保存在内存的缓冲区中
在每个用户的家目录下,有个隐藏文件.bash_history保存命令历史
# history //查看linux的历史
-c:清空命令历史
-d:删除某一条命令历史
-w:将命令历史保存到某个文件中
变量:PATH命令路径变量
HISTSIZE:命令历史大小变量
$ echo $HISTSIZE //查看HISTSIZE变量的值,默认的命令历史是1000条
命令历史使用技巧:
!n:执行命令历史中的第n条命令(n是命令历史编号)
!-n:执行命令历史中的倒数第n条命令(n是命令历史编号)
!word:执行命令历史中最近一次以word开始的命令(word必须能够唯一的标识用户想执行的命令)
!!:执行上一条命令
!$:引用一个命令的最后一次参数
ESC键(按完松开) 再按.键:引用一个命令的最后一次参数

2:管道,IO重定向
计算机体系结构:
控制器:CPU,读取系统指令
运算器:CPU,运算
存储器:RAM(内部存储器:易失性存储器)
输入设备(Input):输入数据,如键盘,硬盘等
输出设备(Output):显示指令执行结果,如显示器,音响,硬盘等

 计算机总线:
   地址总线:负责内存寻址
   数据总线:负责传输数据
   控制总线:负责控制指令
 寄存器:CPU中内部临时存储空间
 
 I/O设备:负责计算机内部存储设备和外部存储设备(如硬盘,光盘,U盘等)进行交互的设备
 
 程序:指令+数据
   指令:有程序提供,负责加工数据
   数据:系统中数据可以有多种来源,比如来自变量,来自文件,来自输入设备等

当用户没有为指令指定数据来源时,系统要有默认的数据来源

 标准输入输出设备:
    标准输入设备:键盘(stdin),文件描述符为0
    标准输出设备:显示器(stdout),文件描述符为1
    标准错误输出设备:显示器(stderr),文件描述符为2
 三种数据流:
    标准输入数据流/标准输出数据流/标准错误输出数据流
    
当在Liunx中打开一个文件时,内核会反复调用,对于文件标识就很重要了,用文件描述符来标识文件,文件加载完成用数字标识
fd:file descriptor(文件描述符)

IO重定向:把默认输入输出数据来源,重新定向到其他的文件或设备
   输出重定向:
     >:覆盖输出重定向
     >>:追加输出重定向
     2>:错误覆盖输出重定向
     2>>:错误追加输出重定向
     &>:混合覆盖输出重定向
     &>>:混合追加输出重定向
   输入重定向:
     <:输入重定向
   
管道:连接多条命令,把前一条命令的输出结果作为后一条命令的输入条件(组合小程序,实现大功能)
   command1 | command2 | commad3 ....

tr:实现字符转换,不修改源文件,语法:tr [OPTION]... SET1 [SET2]
tee:

3:命令别名(alias定义的别名只在当前shell生效)
# alias COMM_ALIAS=COMMAND //只执行alias命令,列出系统中所有的命令别名
注意:执行alias命令时,COMMAND最好用‘‘(引号)引起来
# unalias COMM_ALIAS //取消命令别名
4:命令行编辑
ctrl+a:光标快速跳转到命令行的行首
ctrl+e:光标快速跳转到命令行的行尾
ctrl+u:快速删除光标位置到命令行行首的字符
ctrl+k:快速删除光标位置到命令行行尾的字符
ctrl+l:清屏(命令clear:清屏)
5:命令行展开
5.1:命令补齐:在PATH变量搜索命令并补齐(PATH变量必须正常,输入要补齐命令的字符数一定能够唯一标识这条命令;tab键补齐)
按tab键两次,列出以某个字符开始的所有的命令
# echo $PATH //查看PATH变量的值
路径和文件补齐:在系统路径中查找
命令行补齐功能不能补齐选项
5.2:命令替换(经常用到shell脚本编程中) $(command)或者 command(两边是反撇号)
命令替换就是把命令中的子命令替换成子命令执行结果的过程
# echo "字符串"
""(双引号):弱引用(可是实现变量的替换,把变量名替换为变量值)
``(反撇号):命令引用
‘‘(单引号):强引用(不能完成变量替换)
6:命令行通配:globbing
*:匹配任意长度的任意字符
?:匹配任意单个字符
[]:匹配指定范围内的任意单个字符
[ab] [a-m] [a-z] [A-Z] [a-zA-Z] [0-9] [a-zA-Z0-9]
[^]:匹配指定范围外的任意单个字符
[^a-z] [^0-9]

 [:space:]:表示空格
 [:punct:]:表示所有标点符号
 [:lower:]:表示所有小写字母
 [:upper:]:表示所有大写字母
 [:alpha:]:表示所有字母(包括大小写)
 [:digit:]:表示所有数字
 [:alnum:]:表示所有数字和大小写字母

7:变量
8:编程

20、硬盘:OS--应用程序
process(进程):用户执行应用程序的过程
权限:用户对于应用程序的执行能力
文件属主:
属组:
其他用户:

用户:多任务,多用户
  Linux实现权限隔离机制(多用户)
 操作系统识别用户:
   用户:UID
   组:GID(逻辑容器:包含用户;实现多个用户对于某个文件或应用程序分配相同的权限)
用户分类:
   管理员用户:root UID:0
   普通用户:1000-65535
   程序(系统)用户:1-999
组分类:
   管理员组/普通组
   基本组:Linux中,新建用户时,没有指定隶属于的组,系统会为该用户建立一个同名组,作为该用户基本组
   附加组:方便以后为用户分配权限

解析:
/etc/passwd:存储用户基本信息
/etc/shadow:存储用户的影子口令
/etc/group:存放组的基本信息

/etc/passwd解释:用冒号隔开
第一列:用户的登录名
第二列:加密密码(x表示密码占位符,密码保存在/etc/shadow中)
第三列:用户的ID号
第四列:组的ID号
第五列:用户的描述信息
第六列:用户宿主目录
第七列:用户默认使用的shell(/etc/shells)
/etc/shadow解释:用冒号隔开
第一列:用户的登录名
第二列:用户加密后的密码
第三列:最后一次更改密码时间(从1970年1月1号)
第四列:密码最小使用时间
第五列:密码最长使用时间

/etc/shadow密码区域解释(格式:$id$salt$encrypted):
三部分组成:用$隔开
第一部分加密算法:
1:MD5加密
5:SHA-256加密
6:SHA-512加密
第二部分:随机序列号
第三部分:随机序列号和密码共同加密后的字符串

Linux 基础知识

原文:https://www.cnblogs.com/beret81/p/11986117.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!