首页 > 系统相关 >linux基础知识

linux基础知识

时间:2023-09-11 15:44:14浏览次数:40  
标签:文件 用户 基础知识 etc usr linux 日志 链接

文件结构及其作用

/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相关的安全策略等信息的存储位置

应用程序组成

二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
库文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
配置文件:/etc, /etc/DIRECTORY, /usr/local/etc
帮助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man, 
/usr/local/share/doc

文件类型

- 普通文件
d 目录文件directory
l 符号链接文件link
b 块设备block 
c 字符设备character
p 管道文件pipe
s 套接字文件socket   ip+端口成为套接字

通配符

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

软硬链接区别

1. 本质:
硬链接:本质是同一个文件
软链接:本质不是同一个文件
2. 跨设备
硬链接:不支持
软链接:支持
3. inode
硬链接:相同
软链接:不同
4. 链接数
硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少
软链接:创建或删除,链接数不会变化
5. 文件夹
ln -s filename [linkname]
#绝对路径
ln -s /data/dir /data/dirlink
#相对路径
cd /data
ln -s ../data/dir /root/dirlink
rm -rf /data/dirlink    #删除软链接本身,不会删除源目录内容
rm -rf /data/dirlink/   #删除源目录的文件,不会删除链接文件
#查看链接文件指向的原文件
readlink /data/dirlink
[root@centos8 ~]#readlink /proc/$$/exe
/usr/bin/bash
硬链接:不支持
软链接:支持
6. 相对路径
硬链接:原始文件相对路径是相对于当前工作目录
软链接:原始文件的相对路径是相对于链接文件的相对路径
7. 删除源文件
硬链接:只是链接数减一,但链接文件的访问不受影响
软链接:链接文件将无法访问
8. 文件类型
硬链接:和源文件相同
软链接:链接文件,和源文件无关
9. 文件大小
硬链接: 和源文件相同
软链接: 源文件的路径的长度

重定向

linux输出默认为终端
输出重定向
stdout  标准输出
stderr  标准错误
1> 或 >     把STDOUT重定向到文件
2> 把STDERR重定向到文件
&> 把标准输出和错误都重定向
>> 追加标准输出重定向至文件
2>> 追加标准错误重定向至文件
输入重定向
命令 0< 文件
中止词
<< eof
...
eof

管道

命令1|命令2|命令3
将前面命令的标准输出当做后面命令的标准输入
注意:STDERR默认不能通过管道转发,可利用2>&1 或 |& 实现,格式如下
命令1 2>&1 | 命令2 
命令1 |& 命令2 

用户和组

linux中用户是通过uid来区别的

管理员为 0 通常名称为root

1-1000为daemon进程用户,对守护进程获取资源进行权限分配

1000以后给用户进行交互式登录使用

linux中组是通过gid来区别的

管理员组通常为0

一个用户至少有一个组,默认创建用户时会生成和其同名组

一个组可以有多个用户

用户和组配置文件

#/etc/passwd:用户及其属性信息(名称、UID、主组ID等)
login name:登录用名(wang)
passwd:密码 (x)
UID:用户身份编号 (1000)
GID:登录默认所在组编号 (1000)
GECOS:用户全名或注释
home directory:用户主目录 (/home/wang)
shell:用户默认使用shell (/bin/bash)
#/etc/shadow:用户密码及其相关属性
登录用名
用户密码:一般用sha512加密
从1970年1月1日起到密码最近一次被更改的时间
密码再过几天可以被变更(0表示随时可被变更)
密码再过几天必须被变更(99999表示永不过期)
密码过期前几天系统提醒用户(默认为一周)
密码过期几天后帐号会被锁定
从1970年1月1日算起,多少天后帐号失效
/etc/group:组及其属性信息
群组名称:就是群组名称
群组密码:通常不需要设定,密码是被记录在 /etc/gshadow 
GID:就是群组的 ID 
以当前组为附加组的用户列表(分隔符为逗号)
/etc/gshadow:组密码及其相关属性
群组名称:就是群的名称
群组密码:
组管理员列表:组管理员的列表,更改组密码和成员
以当前组为附加组的用户列表:多个用户间用逗号分隔

RAID

一种磁盘利用技术,可以,增加可靠性,提高数据的读写速度
级别
	0:条带模式  将数据分开存储 提高读速度 
	1:镜像模式  将数据分别存储 提高容错率 写速度下降
	5:增加校验位 当一块磁盘坏掉可以通过校验位来恢复坏盘数据
	以上可以组合使用

系统启动流程

UEFi或BIOS初始化,运行POST开机自检
2. 选择启动设备
3. 引导装载程序, centos7是grub2,加载装载程序的配置文件:
    /etc/grub.d/
    /etc/default/grub
    /boot/grub2/grub.cfg
4. 加载initramfs驱动模块
5. 加载内核选项
6. 内核初始化,centos7使用systemd代替init
7. 执行initrd.target所有单元,包括挂载/etc/fstab
8. 从initramfs根文件系统切换到磁盘根目录
9. systemd执行默认target配置,配置文件/etc/systemd/system/default.target 运行级别 
10. systemd执行sysinit.target初始化系统及basic.target准备操作系统
11. systemd启动multi-user.target下的本机与服务器服务
12. systemd执行multi-user.target下的/etc/rc.d/rc.local
13. Systemd执行multi-user.target下的getty.target及登录服务
14. systemd执行graphical需要的服务
# 列出启动的详细过程
systemd-analyze blame

日志

# 常见日志的用途
/var/log/secure:系统安全日志,文本格式,应周期性分析
/var/log/btmp:当前系统上,用户的失败尝试登录相关的日志信息,二进制格式,lastb命令进行查看
/var/log/wtmp:当前系统上,用户正常登录系统的相关日志信息,二进制格式,last命令可以查看
/var/log/lastlog:每一个用户最近一次的登录信息,二进制格式,lastlog命令可以查看
/var/log/dmesg:CentOS7 之前版本系统引导过程中的日志信息,文本格式,开机后的硬件变化将不再记录专用命令dmesg查看,可持续记录硬件变化的情况
/var/log/boot.log 系统服务启动的相关信息,文本格式
/var/log/messages :系统中大部分的信息
/var/log/anaconda : anaconda的日志
# 日志管理工具
journalctl 选项
-o 
	json-pretty  #以json格式输出
-b -n #n为倒数第n+1次启动
-k  #仅显示内核日志
-p  #仅输出指定日志等级
	3: err
	4: warning
	7: debug
-S #显示指定时间以后的日志
-U #显示指定时间之前的日志 2012-10-30 18:17:16
-n 2#显示最近2行日志
/bin/bash 查看某个脚本日志

标签:文件,用户,基础知识,etc,usr,linux,日志,链接
From: https://www.cnblogs.com/guquanheng/p/17693704.html

相关文章

  • linux服务器上的nginx服务、mysql服务和docker里面的php服务配合使用
    之前有个老项目是nginx1.22.0+mysql5.7+php5.6的环境在跑,也就是常说的lnmp环境。但是最近出了一个新的需求,这台服务器上要跑一个php7.3的项目,mysql5.7还可以用,nginx1.22.0也可以用,主要是php的环境要升级到7.3,那么方案应该怎么实施呢,大概有下面几个思路:1、再独立安装一个php7.3的......
  • Linux卸载与安装JDK
    安装一、yum安装JDK1、查看可安装的Java版本yum-ylistjava*2、选择一个自己要安装的版本我安装的是java-11-openjdk.x86_64 sudoyuminstall-yjava-11-openjdk.x86_64最后出现Complete!就是安装完成了3、查看Java版本java-version 4、查看安装的具体位置rpm......
  • Linux中如何比较两个文本文件?
    在Linux中,我们可以使用各种各样的方法及工具来比较两个文本文件,但其中比较实用且常用的方法就是通过命令来进行比较,那么Linux中如何比较两个文本文件?本文为大家详细介绍一下。1、使用diff命令diff命令是Linux中最常用的比较文本文件的命令之一。它会按行比较两个文件,......
  • linux arm64下安装ngnix以及docker
    yum-yinstallgcczlibzlib-develpcre-developensslopenssl-develcd/usr/localmkdirnginxcdnginxhttp://nginx.org/en/download.htmlwgethttp://nginx.org/download/nginx-1.24.0.tar.gztar-xvfnginx-1.24.0.tar.gzcdnginx-1.24.0./configure//执行make命令make//......
  • linux一些常用的下载工具-aria2
    从断点续传开始故事的过程是这样的,朋友是搞科研的,需要在一个国外的学术网站下载一个药物的模型压缩包,大概有23g。关键他也不会用别的就wget下载....恩中间还断了....问我有什么方法没有断点续传,而是能不能更快速的下载?我记录wget是有断点续传的?问一下chatgpt不完了...wget-c偶......
  • Linux常见指令
    下列指令语法如果用[]括起来就是可有可无的。1、pwd指令语法:pwd功能:显示用户当前所在的目录常用选项:无举例:2、ls指令语法:ls[选项][目录或文件]功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。常用选项:-a列出目录下的所有文件,包括以.开头......
  • 2、linux命令之`chmod`
    目录linux命令之chmod1、语法2、命令中的选项3、模型3.1、文件设定法3.2、数字给定法linux命令之chmodchmod是linux的权限控制命令,可以对linux文件进行权限管控。1、语法chmod[选项][模型][文件]chmod[选项][8进制模型][文件]chmod[选项][文件]2、命令中的选项......
  • 1、linux命令之`df -h`
    linux命令之df-h查看磁盘使用情况df-h输出:FilesystemSizeUsedAvailUse%Mountedondevtmpfs3.8G03.8G0%/devtmpfs3.8G1.2G2.6G32%/dev/shmtmpfs3.8G217M3.6G6%......
  • linux中如何安装jmeter
    1.在服务器上找个路径,将apache-jmeter的压缩包上传至该路径下。 2.解压该压缩包  3.编辑/etc/profile文件,添加环境变量vi/etc/profile在文件最后添加如下内容:(解压后的jmeter路径需跟随实际存放位置改变)exportJMETER_HOME=/opt/jmeter/apache-jmeter-5.2exportP......
  • Linux中防火墙的常用命令
    CentOS7和Ubuntu的防火墙不同,分别是firewall和ufw,下面总结下常用的命令:1、firewall查看状态systemctlstatusfirewalld2、查看防火墙开放的端口firewall-cmd--list-all3、新增一个开放的端口firewall-cmd--zone=public--add-port=port/tcp--permanent例如:firewall-cmd......