用户和组的相关概念

  • /etc/passwd
    用户名
    密码(影子密码)
    用户id
    主要组id
    备注信息
    主目录
    登录shell

  • /etc/shadow
    用户名
    加密密码
    最近更改密码的日期
    密码不可更改的天数
    密码需要重新更改的天使
    密码更改期限前的警告期限
    密码过期的宽限时间
    帐号失效日期
    保留字段

  • /etc/group

  • 三种用户:userid>1000(一般用户) userid=0(超级用户) userid<1000(系统用户)

  • 登录Linux的过程:

?先找/etc/passwd文件里是否有这个账户?如果没有则退出,如果有则将该账户对应的UID与GID读出来,并将该帐号的家目录和shell设置也一起读出来;
?然后核对密码表,这时Linux进入/etc/shadow查找对应的帐号和UID,然后核对刚才输入的密码和里面的密码是否相符;
?如果一切都相符,就进入shell控制阶段。

  • su
    从普通用户到其他用户或者跟用户需要密码,
    从跟用户切换到其他用户不需要密码

文件和目录

  • 命名大小写敏感

  • 文件名由两部分构成:文件名和扩展名

  • 以圆点(.)开头的文件名是隐含文件

  • 文件类型

普通文件(文本文件、数据文件、二进制程序)

目录文件(是由成对的“I节点号/文件名”构成的列表)
●I节点号是检索I节点表的下标,I节点中存放有文件的状态信息。
●文件名是给一个文件分配的文本形式的字符串,用来标识该文件。

设备文件

符号链接文件

  • 工作目录和主目录
    ?工作目录——使用一个目录作为参照点,以后不作具体指定情况下,所访问的文件都是该目录中的文件。
    ?用户主目录——为新用户建立帐户时系统指定的工作目录(用户也可以自行修改)。主目录往往位于/home目录之下,并且与用户的注册名相同。
    ?通常,用户主目录包含子目录、数据文件,以及用于注册环境的配置文件。

  • 相对路径和绝对路径

在什么情况下使用绝对路径名,什么情况下使用相对路径名,取决于哪种方式涉及到的目录更少。

  • 用户和权限
    (1)文件主:文件所有者,并赋予唯一的注册名。
    ●只有文件主或root才有权利用chown命令改变文件的所有关系(UID)。
    (2)用户组:通常,组中包含了有相同需求的用户。
    ●文件主或超级用户(root)可以利用chgrp命令改变文件的GID。
    (3)用户存取权限:Linux系统中规定了4种不同类型的用户:
    ①文件主②同组用户③其他用户④超级用户
    (4)chmod命令
    ?只有文件主或超级用户root才有权用chmod命令改变文件或目录的存取权限。

  • 文件权限
    可读(r):浏览文件
    可写(w):修改文件
    可执行(x):将文件作为命令使用

  • 目录权限:
    可读(r):列出目录内容
    可写(w):添加或删除文件
    可执行(x):在目录中“搜索”已知文件

  • 文件和目录的默认权限

Linux:使用默认模式rw-rw-rw-建立文件

Linux:使用默认模式rwxrwxrwx建立目录

  • 目录权限的理解

可读:只能查看到目录下的子目录名和文件名(ls)

可执行:可以访问目录中的文件,包括子目录(cat)

可写:要在目录下添加删除目录和文件,必须有可执行的权利

链接文件

  • 硬链接:建立硬链接时,在另外的目录或本目录中增加目标文件的一个目录项,这样,一个文件(如m2.c)就登记在多个目录中。
    限制:(1)不能对目录文件做硬链接。(2)不能在不同的文件系统之间做硬链接。

  • 软链接(也称符号链接,将一个路径名链接到一个文件。事实上,只是一个文本文件,其中包含它提供链接的另一个文件的路径名。)
    和硬链接相比:可以对目录文件做符号链接,也可以在不同文件系统之间做符号链接。

进程管理

  • crontab 组成:
    minute hour day of month monthday of week command to run

辅助符号:* 任何时间
,分隔时段eg3,6
-一段时间eg8-12
/n 每隔n单位时间eg/5

vi相关命令

  • 1.命令方式
    输入命令vi进入编辑器时,就处于vi的命令方式。
    从键盘上输入的任何字符都被当作编辑命令来解释
    在命令方式下输入的表示命令的字符并不在屏幕上显示出来

  • 2.插入方式
    输入vi的插入命令( i)、附加命令( a )、打开命令(o )、替换命令( s )、修改命令( c )或取代命令( r )可以从命令方式进入到插入方式。
    在插入方式下所有命令不再起作用,仅作为普通字母出现。
    由插入方式回到命令方式的办法是单击键(通常在键盘的左上角)

  • 3.Ex转义方式
    在命令方式下输入一个冒号(:)就进入ex转义方式。
    多数文件管理命令都是在ex转义方式下执行的(如读取文件、把编辑缓冲区的内容写到文件中)。
    例如::1,$s/I/i/g (按Enter键)

Bash变量

  • Shell变量类型
    ?局部变量:只存在于创建它的shell中
    ?环境变量:由子shell继承

  • Shell变量使用
    ?用$字符来解析变量,例如:echo $A
    ?变量赋值:A=apple
    ?变量命名:由字母数字字符和下划线组成的任意字符串, 但是不能以数字开头,区分大小写。一般为 大写
    ?取消变量:unset A

  • 环境变量
    ?无论何时一个进程启动另一个进程时,子进程都会继承环境变量;
    ?环境变量的创建:创建一个shell变量,然后用export将其转化为环境变量。

  • 列出变量
    ?set命令:没有参数,列出shell变量和与shell有关的环境变量;
    ?env命令:没有参数,列出已经被导出成为环境变量的变量。

  • 预先定义的特殊变量
    ⑴KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲——除脚本名外,命令行上参数的…?——上一条前台命令执行后的返回值(也称“退出码”等)。
    ⑶$——当前进程的进程号。⑷——当前进程的进程号。 ⑷——当前进程的进程号。⑷!——上一个后台命令对应的进程号。
    ⑸$*——表示在命令行上实际给出的所有实参。

  • 常用环境变量
    (1)HOME:用户主目录的全路径名。如/home/myname
    (2)LOGNAME:即用户注册名
    (3)PWD:当前工作目录的路径。
    (4)PATH:shell查找命令的路径(目录)列表,各个目录用冒号(:)隔开。
    ?用户可以设置它: $ PATH=PATH:PATH:PATH:PWD
    (5)PS1:shell的主提示符。 $ PS1="$LOGNAME> "
    (6)SHELL:当前使用的shell。通常,它的值是/bin/bash。
    (7)TERM:终端类型。
    (8)MAIL:系统信箱的路径。

Shell脚本

  • #!/bin/sh 表示本脚本由/bin/路径的sh程序来解释
  • if语句格式:
    if 测试条件
    then 命令1
    elif 测试条件
    then 命令2
    else 命令3
    fi

  • 比较大小
    1.数值:
    -eq 是否相等
    -gt 大于
    -lt 小于
    2.字符串
    = 等于则为真
    != 不相等则为真
    -z 字符串 字符串的长度为零则为真
    -n 字符串 字符串的长度不为零则为真
    3.文件
    -e 文件名 如果文件存在则为真
    -r 文件名 如果文件存在且可读则为真
    -w 文件名 如果文件存在且可写则为真
    -x 文件名 如果文件存在且可执行则为真
    -s 文件名 如果文件存在且至少有一个字符则为真
    -d 文件名 如果文件存在且为目录则为真
    -f 文件名 如果文件存在且为普通文件则为真
    -c 文件名 如果文件存在且为字符型特殊文件则为真
    -b 文件名 如果文件存在且为块特殊文件则为真

  • 逻辑运算符
    !(NOT)
    -a(AND)
    -o(OR)

  • 算术运算:(())

  • echo
    echo -e(“开启转义,如’\n’表示换行”)
    echo -n (光标不换行输出,同\c)

  • read
    read -p (在输入前打印提示信息)

  • let (执行整数算术运算)
    let "j=i6+2" == ((j=i6+2))

  • case格式:
    ?case 字符串in
    ?模式字符串1)命令
    ?…
    ?命令;;
    ?模式字符串2)命令
    ?…
    ?命令;;
    ?…
    ?模式字符串n)命令
    ?…
    ?命令;;
    ?esac

  • while格式:
    while 测试条件
    do
    命令表
    done

  • until格式:
    until 测试条件
    do
    命令表
    done

  • for语句格式;
    1.普通:
    for 变量 [ in 值表 ]
    do
    命令表
    done

2.算术运算:
for ((e1;e2;e3))

gcc编译

  • C/C++源程序
    .c c源文件
    .h 头文件
    .i 预处理后的c源文件
    .s 编译以后的汇编文件
    .o 目标文件
    glibc C的主要函数库

  • gcc编译程序
    gcc -o hello hello.c(gcc编译c,-o选项要编译器为我们输出的可执行文件名为hello。如果没有该选项,生成默认的可执行文件a.out)

  • gdb
    gdb hello
    ?Help查看
    ?TAB键补齐命令的全称
    ?List显示源程序
    ?list 100 显示源文件中100行周围的10行
    ?List sum 显示sum函数的源程序
    ?Search搜索源程序
    ?Print查看运行时的数据
    ?print i 显示当前变量i的值
    ?print &i 显示变量i的存放地址
    ?Print sum::y 显示函数sum中的变量y的当前值
    ?Info line查看源代码在内存中的地址
    ?info line 行号
    ?info line 文件名:函数名
    ?Shell 命令名执行shell命令
    ?Print 查看运行时的数据
    ?print i 显示当前变量i的值
    ?print &I 显示变量i的存放地址
    ?Print sum::y 显示函数sum中的变量y的当前值
    ?Print x=10 修改变量值

安装软件

  • 在Linux系统中,软件安装程序比较纷繁复杂,不过最常见的有两种:
    (1)一种是软件的源代码,您需要自己动手编译它。这种软件安装包通常是用gzip压缩过的tar包(后缀为.tar.gz)。
  • #tar -xzvf apache_1_3_6_tar.gz
  • #./configure(它是用于检查系统是否有编译时所需的库,以及库的版本是否满足编译的需要等安装所需要的系统信息。为随后的编译工作做准备)
  • #make(检查通过后,将生成用于编译的MakeFile文件)
  • #make install(成功编译后,键入如下的命令开始安装)
  • #make clean;#make distclean(安装完毕,应清除编译过程中产生的临时文件和配置过程中产生的文件)
    (2)另一种是软件的可执行程序,你只要安装它就可以了。这种软件安装包通常被是一个RPM包,后缀是.rpm。
  • :#rpm –ivh (–replacepkgs) file.rpm (–replacepkgs代表强制安装)
  • :#rpm ivh python-1.5.2-35.i386.rpm(查看RPM软件包中的相关信)
  • :#执行rpm -Uvh rpm 包名 升级软件

卸载软件的相关命令

  • #rpm -q -a,即可查询到当前系统中安装的所有的软件包。
  • #rpm -e [package name]
  • #rpm -e [package name] -nodeps (忽略依赖关系的卸载)

文件系统及其维护

  • MBR:主引导记录,512字节
    存储在每块磁盘的第0个磁道的第0个扇区,内容包括:
  • 引导程序:446字节;
  • 分区表:64字节,最多纪录4个分区的信息,即主分区;

Linux系统概念复习相关推荐

  1. Linux系统编程 复习笔记

    4 文件IO 操作 #include<fcntl.h> #include<unistd.h>#include<sys/types.h> creat int fd=c ...

  2. Linux学习之CentOS(八)--Linux系统的分区概念

    不知不觉已经记录了8篇Linux学习随笔了,虽然还是漂浮在Linux系统的表面,还有很多很多没有学,但是坚持学下去.坚持写下去就是成功的!!!! 在讲Linux系统分区之前,首先得介绍一下硬盘分区的知 ...

  3. linux系统下的“静态库和动态库”专题之一:库的概念和规则

    什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的本质不同,因此二者的库也是不兼 ...

  4. Linux系统编程----12(线程概念,Linux线程实现原理,栈中ebp指针和ebp指针,线程的优缺点和共享资源)

    线程概念 什么是线程 在一个程序里的一个执行路线就叫做线程(thread). 更准确的定义是:线程是"一个进程内部的控制序列" 一切进程至少都有一个执行线程 线程在进程内部运行,本 ...

  5. php 系统平均负载,Linux_解析Linux系统的平均负载概念,一、什么是系统平均负载(Load a - phpStudy...

    解析Linux系统的平均负载概念 一.什么是系统平均负载(Load average)?在Linux系统中,uptime.w.top等命令都会有系统平均负载load average的输出,那么什么是系统 ...

  6. Linux系统基本概念

    本文记录一些linux系统中涉及的一些基本概念: - 一.应用程序管理器:apt-get,yum,pip,conda,homebrew(mac OS X系统) - 二.版本控制工具:git,cvs,S ...

  7. linux 可定义信号数,Linux系统编程(20)——信号基本概念

    信号及信号来源 信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的.信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知 ...

  8. Linux 系统编程 -进程概念篇

    Linux系统编程-进程篇 冯诺依曼体系结构 冯诺依曼的两个重要思想 当代计算机的三级缓存 操作系统 操作系统的概念 操作系统的组成 操作系统作用 Linux下的操作系统体系 进程 进程概念 进程特性 ...

  9. Linux系统下进程的概念《一》

     个人主页:欢迎大家光临-->沙漠下的胡杨   各位大帅哥,大漂亮  如果觉得文章对自己有帮助  可以一键三连支持博主  你的每一分关心都是我坚持的动力   ☄: 本期重点:Linux下的进程的 ...

最新文章

  1. C#操作xml文件:使用XmlDocument 实现读取和写入
  2. 《那些年啊,那些事——一个程序员的奋斗史》——39
  3. dict python用法_Python_Dict用法梳理
  4. iOS事件的响应和传递机制
  5. 精通unix下c语言与项目实践,《精通Unix下C语言编程与项目实践》读书笔记(2)...
  6. caffe学习系列(1):图像数据转换成db(leveldb/lmdb)文件
  7. DS博客作业03--栈和队列
  8. HTTP缓存原理及相关知识(2)-CDN
  9. html游戏音乐,背景音乐的html标签
  10. 驱动精灵w8ndows xp sp2,爱普生Epson TM-T90打印机驱动官方正式版下载,适用于winxp,winvista,win7,win8,win10-驱动精灵...
  11. ios12xen html插件,iOS 12.4 越狱后实用插件推荐(二)
  12. # 关于Dran,Cran,CloundRan ,的区别
  13. 计算机管理服务无法显示,打印机属性无法打开,始终显示: 无法显示计算机属性. 后台打印程序服务未运行....
  14. web前端入坑系列回归,再推荐一波学习资源
  15. PC-红警联机问题与下载
  16. 【MyBatis】| MyBatis的缓存
  17. elm and halogen
  18. Linux 系列(三)——Redis 分布式集群搭建
  19. STM32系列 USART中断接收 注意事项 (USART_IT_ORE)
  20. 追随我心——《世界因你不同》读后感

热门文章

  1. mininet 主机双网关拓扑设计
  2. Dfinity(ICP)基础开发教程-5
  3. [Android]混淆Android代码
  4. PASCAL VOC 2012数据集介绍
  5. H3Cmsr830 l2tp二层隧道协议配置详解(host-R版)
  6. Linux下常用压缩 解压命令和压缩比率对比
  7. java中的JAR包
  8. 基于身高与体重数据集与Auto数据集分别进行线性回归和Lasso回归(代码逐行讲解,超细节)
  9. Gmap.net搜集
  10. 论EBS的并发请求(报表中心)的必要性