linux一些知识点(1)

FHS:filesystem hierarchy standard 文件系统层级标准
定义了在类Unix系统中的目录结构和目录内容,即让用户了解到已安装软件通常放置于哪个目录下。
可执行文件:指的是可以由操作系统进行加载执行的文件
FHS采用树形结构组织文件。FHS文件系统层级图
文件系统:操作系统用于明确存储设备或分区上的文件的方法和数据结构
(磁盘上组织文件的方法 在操作系统中负责管理和存储文件信息的软件机构
linux层次化文件结构,倒树状结构文件结构
FHS filesystem hierarchy standard定义了两层规范,第一层是/下面的各个目录应该要放什么文件数据,
第二层则是针对/usr及/var这两个目录的子目录来定义。例如/var/log放置系统登录文件、/usr/share放置共享数据等等。
FHS 文件系统层级结构标准,规定了目录的类型和文件存放类型
linux里面有哪些目录:
/ 根目录,通常不在这里存储文件 所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者
/bin 可执行文件,ls,cd binary,用户命令
/sbin 可执行文件 管理员命令
/boot 开机启动的文件,包括linux内核以及开机菜单与开机所需配置文件等
/dev 设备文件,任何设备与接口设备都是以文件形式存在于这个目录的
在这个目录中包含了所有linux系统中使用的外部设备。它实际上是一个访问这些外部设备的端口。可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。
设备文件
块设备 可实现随机访问的设备,如磁盘,按数据块访问
字符设备 线性访问的设备,如键盘,以字符为单位
/root root用户的主目录 在生产环境中不允许用root用户登录
/home 普通用户的主目录 root用户的家目录不在/home目录
/mnt 挂载点目录
光盘必须和/下的某个目录节点建立联系才能使用,把光盘和指定的挂载点目录建立联系的过程叫做挂载。mount /dev/sr0 /mnt
/media 媒体目录,也是挂载点目录 通常挂载光盘,移动硬盘
/opt 可选目录。存放第三方软件包和数据文件
/var 可变目录,用以存放经常变化的文件,如日志文件
/etc 配置文件
/lib 系统的函数库 library,库文件和内核模块文件,这个目录是用来存放系统动态连接共享库的。
/proc 该目录是一个虚拟文件系统,它放置的数据都在内存当中(是linux内核在内存中所建立的系统内核映象),proc文件系统被用于从内存读取进程的信息。
/run 系统运行时所需文件
/usr unix software resource放置的数据为可分享的与不可变动的,unix操作系统软件资源所放置的目录,而不是用户数据 系统核心所在目录 系统资源
/srv service的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录
/tmp temp,临时文件目录,让一般用户或者是正在执行的程序暂时放置文件的地方
/sys 这个目录其实跟/proc非常类似,也是一个虚拟的文件系统,主要是记录与内核相关的信息 硬件设备的驱动程序信息
Grep文本过滤显示
grep可以根据特定的字符串,对指定文件的每一行进行搜索,如果找到了这个字符串,就将含有这些内容的行输出。
查找文件里有字符h的字符串:grep h 文件名
匹配整个单词:grep -w 单词 文件名
匹配以q开始的行:grep 1 文件名
匹配以q结束的行:grep q$ 文件名
匹配以数字开头的行:grep 2 文件名
匹配以q或者f开头的行:grep 3 文件名
不匹配以q或者f开头的行:grep [qf] 文件名
匹配oo前面不是f或者g的字符串:grep [^gf]oo 文件名
匹配以#号开头的行:grep ^#
过滤空白行:grep ^$
如果要明确搜索子目录:grep -r h ./*
忽略子目录:grep -d skip h ./*
-l:查询多文件时只输出包含匹配字符的文件名
搜索时忽略大小写:grep -i
搜索时显示没有匹配到的行:grep -v
搜索时显示匹配到的那一行以及下2行:grep -A 2
搜索时显示匹配到的那一行以及上2行:grep -B 2
搜索时显示匹配到的那一行以及上下2行:grep -C 2
文件查找: find
find
-name 指定名字查找
-inum
-iname 指定名字进行查找忽略大小写
-user 查找属主为指定用户的文件# find /tmp -user redhat
-group 查找属组为指定组的文件
-uid
-gid
-nouser 查找没有属主的文件
-type TYPE(f d b c p s )# find / -type l ls
组合测试查找: 与( -a)或(-o)非(!)
# find /tmp -nouser -o type f -ls
# find /tmp -nouser -a type f ls
文件的压缩与解压缩
常见的压缩文件扩展名:
*.gz gzip程序压缩的文件
*.bz2 bzip2程序压缩的文件
*.tar tar程序打包的数据,并没有经过压缩
*.tar.gz tar程序打包的文件,其中经过gzip的压缩
*.tar.bz2 tar程序打包的文件,其中经过bzip2的压缩

linux上常见的压缩命令就是gzip与bzip2
压缩文件gzip: gzip 文件名(原文件不存在)
gzip -c 文件名1 >文件名1.gz (保留原文件)
-c表示将压缩过程中产生的数据输出到屏幕上
解压文件: gzip -d 文件名.gz(不保留)
gunzip 文件名.gz
gzip -cd 文件名2.gz >文件名2(保留原文件)

查看压缩过的文本文件内容:zcat 文件名.gz
压缩文件bzip2(用法同gzip):bzip2 文件名
bzip2 -c 文件名1 >文件名1.bz2(保留原文件)
解压文件: bzip2 -d 文件名.bz2(不保留原文件)
bunzip2 文件名.bz2
bzip2 -cd 文件名2.bz2 > 文件名2(保留原文件)
查看压缩过的文件内容:bzcat 文件名.bz2
文件的归档即打包文件:tar [主选项+辅选项] 文件或目录
主选项:只能出现一个主选项
c— create 创建一个新归档文件
x— 从归档文件中提取文件出来
t— 列出归档文件的内容,查看已经打包了哪些文件,重点在查看文件名
辅选项
z—通过gzip的支持进行压缩/解压缩,一般格式为*.tar.gz
j— 通过bzip2的支持进行压缩/解压缩,一般格式为*.tar.bz2
J—通过xz的支持进行压缩/解压缩,一般格式为*.tar.xz
v— 归档或解包过程中显示被打包的文件
C—这个参数用在解压缩时,若要在特定目录解压缩,可以使用这个参数
f— 输出结果到文件,必须写该选项
–exclude=FILE在打包的过程中,不要将 FILE 打包! --排除某个文件打包
常见的两种压缩方式:jcvf zcvf
打包、压缩文件1和2并重命名:tar zcvf 新文件名 文件名1 文件名2 文件名3 文件名4
解压:tar xvf 文件名 该命令会自动判断归档文件的压缩格式,自动调用相关程序进行解压缩
解压到指定路径:tar xvf 文件名 -C 目标路径
tar -xjv -f filename.tar.bz2 -C 欲解压缩的目录
查看已压缩文件:tar tf 文件名
磁盘管理
linux里面硬盘根据硬盘接口的不同来命名:
IDE hd(a-d)
SATA/SCSI/SATA sd(a-z)
一块磁盘默认可被分为四个分区,这四个分区分别为主分区或者扩展分区,在扩展分区上可创建逻辑分区。
fdisk -l 查看分区列表
fdisk /dev/sda对某一块磁盘进行分区
partprobe 将分区信息加载到内核
mkfs.ext4 /dev/sda5 添加文件系统,即格式化磁盘
fdisk -l 查看分区列表
临时挂载:mount 分区文件名 挂载点目录
mount 查看所有挂载的信息
永久挂载:通过blkid命令查看分区的uuid
vim /etc/fstab
uuid 挂载点目录 文件系统格式 defaults 备份(0表示不备份) 检查(0表示不检查)
mount -a 更新挂载信息或者reboot
卸载:umount 分区文件名 或 umount 挂载点目录
查看挂载磁盘挂载信息:df -h
新建分区扩展交换空间:
将分区类型修改为82
格式化:mkswap /dev/sda5
swapon /dev/sda5
swapon -s 查看当前激活的swap分区=cat /proc/swaps
写入/etc/fstab/,实现开机挂载
/dev/sda5 swap swap defaults 0 0
swapoff /dev/sdb1 关闭swap

文件系统与目录所占磁盘的容量:df,du
df:列出文件系统的磁盘空间占用情况;
du:显示磁盘空间使用量(统计目录或文件所占磁盘空间大小)。
两者区别:
du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。
df,disk free,通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件, df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。
当文件系统也确定删除了该文件后,这时候du与df就一致了。
df [-ahikHTm] [目录或文件名]
-a:列出所有的文件系统,包括系统特有的/proc等文件系统
-k:以KB的容量显示各文件系统
-m:以MB的容量显示各文件系统
-h:以人们较易阅读的GB、MB、KB等格式自行显示
-H:以M=1000k替代M=1024K的进位方式
-T:连同该分区的文件系统名称也列出(例如ext3)
-i:不用硬盘容量,而以inode的数量来显示
由于df主要读取的数据几乎都是针对整个文件系统,因此读取的范围主要是在Super block内的信息,所以这个命令显示结果的速度非常快速。
du [-ahskm] 文件或目录名称
-a:列出所有的文件与目录容量,因为默认仅统计目录下面的文件量而已
-h:以人们较易读的容量格式显示
-s:列出总量而已,而不出每个个别的目录占用容量,即查看该目录占了多少容量
-S:不包括子目录下的总计,与-s有点差别(等于du -s减去该目录下面的目录所占容量大小)
-k:以KB列出容量显示
-m:以MB列出容量显示
du这个命令会直接到文件系统内去查找所有的文件数据,在默认情况下,大小的输出是以KB来设计的。
su [-lm] [-c 命令] [username]
-:单纯使用-如“su -”,代表使用login-shell的变量文件读取方式来登陆系统;若用户名没有写,则代表切换为root用户
-l:与-类似,但后面需要加欲切换的用户账号,也是login-shell的方式
-m:-m与-p是一样的,表示使用目前的环境变量设置,而不读取新用户的配置文件
-c:仅进行一次命令,所以-c后面可以加上命令
使用su切换成为root的身份为non-login shell,这种方式下很多原本的变量不会改变。
login-shell:取得bash时需要完整的登录流程。login-shell读取配置文件的顺序是:/etc/profile、/.bash_profile、/.bashrc、/etc/bashrc。
non-login shell:取得bash接口的方法不需要重复登录。non-login shell会读取的配置文件为:~/.bashrc、/etc/bashrc。
sudo:是一种以限制配置文件中的命令为基础,在有限时间内给用户使用,并且记录到日志中的命令。sudo命令的配置在/etc/sudoers中,sudo是系统管理员用来允许某些用户以root身份运行部分/全部系统命令的程序
查看当前是哪个用户登录的shell:whoami
sudo [-u 新用户账号]
-u:后面可以接欲切换的用户,若无此项则代表切换身份为root
[root@localhost ~]# sudo -u sshd touch /tmp/mysshd
[root@localhost ~]# ll /tmp/mysshd
-rw-r–r--. 1 sshd sshd 0 Jul 5 02:08 /tmp/mysshd
这个文件的所属者是sshd。
sudo的执行流程如下(默认只有root用户能使用):
1、当用户执行sudo时,便会让用户输入自己的密码来确认(root执行sudo时不需要输入密码);
2、若欲切换的身份与执行者身份相同,那也不需要输入密码。
3、若密码输入成功,系统会去/etc/sudoers文件中查找该用户是否有执行sudo的权限;
4、若用户具有执行sudo的权限,便开始sudo后续接的命令;
[root@localhost ~]# vim /etc/sudoers或者[root@localhost ~]# visudo
root ALL=(ALL) ALL
参数代表含义:
1、用户账号:系统哪个账号可以使用sudo这个命令。默认为root用户。
2、登录者的来源主机名:这个账号由哪台主机连接到本地Linux主机。默认值root可来自任何一台网络主机。
3、可切换的身份:这个账号可以切换成什么身份来执行后续的命令。默认root可以切换成任何人。
4、可执行的命令:这个命令最好使用绝对路径编写。默认root可以切换任何身份且进行任何命令。
ALL是关键字,代表任何身份、主机或命令。

[root@localhost ~]# vim /etc/sudoers
92 root ALL=(ALL) ALL
93 redhat ALL=(ALL) ALL 添加该内容
如果想要以组的方式给组用户成员赋予权限,则应该添加如下内容:
[root@localhost ~]# vim /etc/sudoers
%test ALL=(ALL) ALL
在最左边加上%,代表后面接的是一个用户组
如果不要密码,参照示例修改即可
[root@localhost ~]# vim /etc/sudoers
103 ## Same thing without a password
104 # %wheel ALL=(ALL) NOPASSWD: ALL


  1. q ↩︎

  2. 0-9 ↩︎

  3. qf ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值