Linux系统概念复习
用户和组的相关概念
/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)命令
?…
?命令;;
?esacwhile格式:
while 测试条件
do
命令表
doneuntil格式:
until 测试条件
do
命令表
donefor语句格式;
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系统概念复习相关推荐
- Linux系统编程 复习笔记
4 文件IO 操作 #include<fcntl.h> #include<unistd.h>#include<sys/types.h> creat int fd=c ...
- Linux学习之CentOS(八)--Linux系统的分区概念
不知不觉已经记录了8篇Linux学习随笔了,虽然还是漂浮在Linux系统的表面,还有很多很多没有学,但是坚持学下去.坚持写下去就是成功的!!!! 在讲Linux系统分区之前,首先得介绍一下硬盘分区的知 ...
- linux系统下的“静态库和动态库”专题之一:库的概念和规则
什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的本质不同,因此二者的库也是不兼 ...
- Linux系统编程----12(线程概念,Linux线程实现原理,栈中ebp指针和ebp指针,线程的优缺点和共享资源)
线程概念 什么是线程 在一个程序里的一个执行路线就叫做线程(thread). 更准确的定义是:线程是"一个进程内部的控制序列" 一切进程至少都有一个执行线程 线程在进程内部运行,本 ...
- php 系统平均负载,Linux_解析Linux系统的平均负载概念,一、什么是系统平均负载(Load a - phpStudy...
解析Linux系统的平均负载概念 一.什么是系统平均负载(Load average)?在Linux系统中,uptime.w.top等命令都会有系统平均负载load average的输出,那么什么是系统 ...
- Linux系统基本概念
本文记录一些linux系统中涉及的一些基本概念: - 一.应用程序管理器:apt-get,yum,pip,conda,homebrew(mac OS X系统) - 二.版本控制工具:git,cvs,S ...
- linux 可定义信号数,Linux系统编程(20)——信号基本概念
信号及信号来源 信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的.信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知 ...
- Linux 系统编程 -进程概念篇
Linux系统编程-进程篇 冯诺依曼体系结构 冯诺依曼的两个重要思想 当代计算机的三级缓存 操作系统 操作系统的概念 操作系统的组成 操作系统作用 Linux下的操作系统体系 进程 进程概念 进程特性 ...
- Linux系统下进程的概念《一》
个人主页:欢迎大家光临-->沙漠下的胡杨 各位大帅哥,大漂亮 如果觉得文章对自己有帮助 可以一键三连支持博主 你的每一分关心都是我坚持的动力 ☄: 本期重点:Linux下的进程的 ...
最新文章
- C#操作xml文件:使用XmlDocument 实现读取和写入
- 《那些年啊,那些事——一个程序员的奋斗史》——39
- dict python用法_Python_Dict用法梳理
- iOS事件的响应和传递机制
- 精通unix下c语言与项目实践,《精通Unix下C语言编程与项目实践》读书笔记(2)...
- caffe学习系列(1):图像数据转换成db(leveldb/lmdb)文件
- DS博客作业03--栈和队列
- HTTP缓存原理及相关知识(2)-CDN
- html游戏音乐,背景音乐的html标签
- 驱动精灵w8ndows xp sp2,爱普生Epson TM-T90打印机驱动官方正式版下载,适用于winxp,winvista,win7,win8,win10-驱动精灵...
- ios12xen html插件,iOS 12.4 越狱后实用插件推荐(二)
- # 关于Dran,Cran,CloundRan ,的区别
- 计算机管理服务无法显示,打印机属性无法打开,始终显示: 无法显示计算机属性. 后台打印程序服务未运行....
- web前端入坑系列回归,再推荐一波学习资源
- PC-红警联机问题与下载
- 【MyBatis】| MyBatis的缓存
- elm and halogen
- Linux 系列(三)——Redis 分布式集群搭建
- STM32系列 USART中断接收 注意事项 (USART_IT_ORE)
- 追随我心——《世界因你不同》读后感