Linux发行版
slackware:SUSE Linux Enterprise Server(SLES),OpenSuse桌面
debian:ubuntu,deepin(深度),mint
redhat:RHEL:RedHat Enterprise Linux,每18个月发行一个新版本
? CentOS:Community Enterprise Operating System兼容RHEL的格式
? 中标麒麟:中标软件
? Fedora:每6个月发行一个新版本
Alpine:一个面向安全的轻型Linux发行版,它不同于通常Linux发行版,Alpine采用了musllibc和busybox以减小系统的体积和运行时资源消耗,但功能上比busybox又完善的多,只有5M左右大小
ArchLinux:轻量简洁,遵循K.I.S.S原则( keep it simple and stupid ),Manjaro
Gentoo:极致性能,不提供传统意义的安装程序,下载源代码在本机上编译安装软件
LFS:Linux From scratch 自制Linux,只是一个说明书























history命令显示命令行历史,当执行命令后,系统默认会在内存记录执行过的命令
当用户正常退出时,会将内存的命令历史存放对应历史文件中,默认是~/.bash_history
登录shell时,会读取命令历史文件中记录下的命令加载到内存中
命令历史相关环境变量
HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT=" %F %T `whoami ` " 显示时间和用户
HISTIGNORE="STR1:STR2*:..." 忽略str1命令,str2开头的历史
持久保存变量
以上变量可以export变量名=“值”形式存放在/etc/profile或~/.bash_profile
[root@localhost ~]# cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export HISTTIMEFORMAT="%F %T "
[root@localhost ~]# source .bash_profile
[root@localhost ~]# history
1 2021-04-20 23:16:32 useradd nanhaibao
2 2021-04-20 23:16:32 id nanhaibao
3 2021-04-20 23:16:32 passwd nanhaibao
4 2021-04-20 23:16:32 su nanhaibao
Linux常用命令使用格式:COMMAND [OPTION]...[FIEL]...
[root@localhost ~]# echo hello world
hello world
[root@localhost ~]# date +%F+%T
2021-04-21+00:14:28
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:63:f4:1f brd ff:ff:ff:ff:ff:ff
inet 10.0.0.202/24 brd 10.0.0.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::f0ef:c830:4404:d085/64 scope link noprefixroute
valid_lft forever preferred_lft forever

文件系统的目录结构
/bin: /usr/bin: 可执行二进制文件的目录。
/boot:放置linux系统启动时用到的一些文件。
/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt。
/etc:系统配置文件存放的目录。
/home:系统默认的用户家目录。
/lib: /usr/lib: /usr/local/lib:系统使用的函数库的目录。
/mnt: /media:光盘默认挂载点。
/opt:给主机额外安装软件所摆放的目录。
/proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间。
/root:系统管理员root的家目录。
/sbin: /usr/sbin: /usr/local/sbin:放置系统管理员使用的可执行命令。
/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
/srv:服务启动之后需要访问的数据目录。
/usr:应用程序存放目录。
/var:放置系统执行过程中经常变化的件
/var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。
文件元数据和节点表结构
inode表结构
每个文件的属性信息,如果:文件的大小,时间,类型等,称为文件的元数据(meta data)。这些元数据是存放在inode(index node)表中。mode表中有很多条记录组成,第一条记录对应的存放了一个文件的元数据信息
第一个mode表记录对应的保存了一下信息:
stat命令查看文件的元数据
[root@localhost ~]# stat anaconda-ks.cfg
File: ‘anaconda-ks.cfg’
Size: 1474 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 201326659 Links: 1
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:admin_home_t:s0
Access: 2021-04-20 22:38:49.088059942 +0800
Modify: 2021-04-20 22:38:49.090059942 +0800
Change: 2021-04-20 22:38:49.090059942 +0800
Birth: -
[root@localhost ~]# stat /etc
File: ‘/etc’
Size: 8192 Blocks: 24 IO Block: 4096 directory
Device: 802h/2050d Inode: 134320193 Links: 74
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:etc_t:s0
Access: 2021-04-20 22:58:28.178009473 +0800
Modify: 2021-04-20 22:57:00.940005313 +0800
Change: 2021-04-20 22:57:00.940005313 +0800
Birth: -
[root@localhost ~]# df -i /boot
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 524288 327 523961 1% /boot
touch命令可以用来创建空文件或刷新文件的时间
[root@localhost ~]# ls -l /etc/issue
-rw-r--r--. 1 root root 23 Nov 23 2018 /etc/issue
[root@localhost ~]# touch /etc/issue
[root@localhost ~]# ll /etc/issue
-rw-r--r--. 1 root root 23 Apr 21 03:05 /etc/issue
硬链接
硬链接本质上就给一个文件起一个新的名称,实质是同一个文件
特性:
格式:
ln filename [linkname]
符号(或软)连接
一个符号连接指向另一个文件,就像windows中快捷方式,软连接文件和原文件本质上不是同一个文件
软连接特点
格式:
ln -s filename [linkname]
[root@localhost data]# touch dir
[root@localhost data]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 21 03:36 dir
[root@localhost data]# echo hello world > dir
[root@localhost data]# cat dir
hello world
[root@localhost data]# ln -s /data/dir /data/dirlink-sofr
[root@localhost data]# ln /data/dir /data/dirlink-hard
[root@localhost data]# ll
total 4
-rw-r--r--. 1 root root 12 Apr 21 03:41 dirlink-hard
lrwxrwxrwx. 1 root root 3 Apr 21 03:41 dirlink-soft -> dir
[root@localhost data]# cat dirlink-soft
cat: dirlink-soft: No such file or directory
[root@localhost data]# cat dirlink-hard
hello world
硬链接和软连接区别总结
1、本质
? 硬链接:本质是同一个文件
? 软连接:本质不是同一个文件
2、跨设备
? 硬链接:不支持
? 软连接:支持
3、inode
? 硬链接:相同
? 软连接:不同
4、连接数
? 硬链接:创建新的硬链接,链接数会增加,删除硬链接,连接数会减少
? 软连接:创建或删除,连接数不会变化
5、文件夹
? 硬链接:不支持
? 软连接:支持
6、相对路径
? 硬链接:原始文件相对路径是相对于当前工作目录
? 软连接:原始文件的相对路径是相对于链接文件的相对路径
7、删除源文件
? 硬链接:只是链接数减一,但链接文件的访问不受影响
? 软连接:链接文件将无法访问
8、文件类型
? 硬链接:和源文件相同
? 软连接:链接文件和源文件无关
9、文件大小
? 硬链接:和源文件相同
? 软连接:源文件的路径的长度
原文:https://blog.51cto.com/nanhb/2720262