管理服务器(想要管理Linux服务器)

Linux目录结构说明谈到Linux文件管理,首先我们需要了解的是要对文件做些什么事情,其实无非就是对一个文件进行创建、复制、移动、查看、编辑、压缩、查找、删除等等。例如我们想要修改系统的主机名称,首先需要知道该文件存储在哪个目录,才能做相应的修改,因此需要先了解Linux系统的目录结构,搞清楚每个目录存放的是什么文件,有什么的作用。几乎所有的计算机操作系统都是使用目录结构组织文件。具体来说就是在一个目录中存放子目录和文件,而在子目录中又会存放子子目录和文件,以此类推形成一个树状的文件结构。由于其结构很像一棵树的分支,因此该结构又被称为目录树。Windows系统是以多根的方式组织文件,例如C:\表示C盘,D:\表示D盘,也就是以每个盘符作为一个根。Linux系统是以单根的方式组织文件,使用/表示如下图所示是CentOS7的目录结构,在管理文件之前需要先搞清楚根目录下的一级子目录的作用可以使用tree -L 1 /命令查看根目录下的一级子目录[root@centos7-1 ~]# tree -L 1 /
/
├── bin -> usr/bin
├── boot
├── data
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var如果执行命令时发现系统提示command nout found,可以使用yum install -y tree 来安装tree命令
[root@centos7-1 ~]# yum install -y treeCentOS7系统中,/bin、/sbin、/lib、/lib64都是以软连接的方式链接到/usr目录下,软连接就是Windows下的快捷方式。/bin –>/usr/bin/sbin–>/usr/sbin/lib -> usr/lib/lib64 -> usr/lib64Linux根目录下的几个你需要里了解的根目录下的一级子目录/media 便携式移动设备挂载点,例如U盘/mnt 临时文件系统挂载点/opt 目录用于存放第三方应用程序的安装位置/run目录用于存放系统运行时所需要的文件,以前是放在/var/run目录下srv 服务启动后需要访问的数据目录,例如saltstack就会将数据放到该目录下sys和proc一样,记录的是系统的核心硬件信息Linux目录结构-/bin和/sbin目录/bin目录和/sbin目录都是用于存放命令的目录,命令的本质就是一个应用程序。/bin 存放普通用户使用的命令 ,例如/bin/ls和/bin/date等等当我们在终端执行ls或者是date命令时,系统会从/bin目录下查找命令对应的可执行程序我们可以使用which命令查看命令的路径[root@centos7-1 ~]# which ls
alias ls='ls –color=auto'
/usr/bin/ls
不过/bin目录实际上是一个快捷方式,指向/usr/bin目录
[root@centos7-1 ~]# ll /bin
lrwxrwxrwx. 1 root root 7 Oct 2 20:55 /bin -> usr/bin
也就是说/bin目录和/usr/bin目录内容是一样的/sbin目录存放管理员执行的命令,例如/sbin/reboot ,/sbin/shutdown,/sbin/useradd等等[root@centos8 ~]# which shutdown
/usr/sbin/shutdown
[root@centos8 ~]# which reboot
/usr/sbin/reboot
/sbin目录也是一个软连接,指向的是/usr/sbin目录
[root@centos7-1 ~]# ll /sbin
lrwxrwxrwx. 1 root root 8 Oct 2 20:55 /sbin -> usr/sbinLinux目录结构-/home和/root目录/home和/root用于存放用户相关数据的家目录/home表示普通用户的家目录,例如/home/guanglei,guanglei是我在安装系统时创建的普通用户/root 表示管理员的家目录,普通用户是无权操作的,但是管理员可以进入任何普通用户的家目录以root账号的登录后,使用pwd命令查看当前的目录是/root[root@centos8 ~]# pwd
/root以普通账号登录后,使用pwd命令查看当前的目录是/home/guanglei[guanglei@centos8 ~]$ pwd
/home/guanglei普通用户使用cd /root切换到root用户的家目录,系统会提示没有权限。就像老百姓没有权利访问皇帝的家[guanglei@centos8 ~]$ cd /root
-bash: cd: /root: Permission deniedLinux目录结构-/usr目录/usr目录作用相当于Windows系统中的C:\Windows目录,该目录非常重要,如果操作不当导致系统无法使用。[root@centos8 ~]# tree -L 1 /usr
/usr
├── bin
├── games
├── include
├── lib
├── lib64
├── libexec
├── local
├── sbin
├── share
├── src
└── tmp -> ../var/tmp/usr目录下的子目录说明/usr/local 软件安装目录,相当于Windows系统中的C:\Program Files目录 老运维会将软件安装到该目录/usr/bin 普通用户使用的应用程序/usr/sin 管理员用户使用的应用程序/usr/lib 启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)/usr/lib64 专用于x86_64系统上的辅助共享库文件存放位置使用ldd命令可以查看程序依赖哪些库文件,如果库文件被删除那么会导致依赖该库文件的所有程序无法使用[root@centos8 ~]# ldd /bin/ls #查看ls命令依赖哪些库文件
linux-vdso.so.1 (0x00007ffd01ffb000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fec0db4a000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007fec0d944000)
libc.so.6 => /lib64/libc.so.6 (0x00007fec0d57f000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fec0d2fb000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fec0d0f7000)
/lib64/ld-linux-x86-64.so.2 (0x00007fec0df97000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fec0ced7000)从ldd /bin/ls目录的输出结果可以看出ls命令依赖的都是64位的库文件Linux目录结构-/boot目录/boot目录存放的是系统启动相关的文件,例如引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录,如果删除/boot目录,系统无法正常启动。[root@centos8 ~]# ls /boot 查看/boot目录下的文件信息
config-4.18.0-305.3.1.el8.x86_64
efi
grub2
initramfs-0-rescue-ba0ec2df3d1a4aa1aa035218668c6140.img
initramfs-4.18.0-305.3.1.el8.x86_64.img
loader
lost+found
System.map-4.18.0-305.3.1.el8.x86_64
vmlinuz-0-rescue-ba0ec2df3d1a4aa1aa035218668c6140
vmlinuz-4.18.0-305.3.1.el8.x86_64Linux目录结构- /etc目录/etc目录用于存放配置文件,后续所有服务(mysql,redis等等)的配置文件都存放在该目录中。/etc/sysconfig/network-scripts/ifcfg-ens33 目录存放的是网络配置文件[root@centos8 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 # 查看网络配置
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens33
UUID=0d0f57d1-1074-49dd-ad40-1f08395d9cae
DEVICE=ens33
ONBOOT=yes
/etc/hostname 目录存放系统主机名配置[root@centos8 ~]# cat /etc/hostname # 查看主机名配置
centos8.ittimeline.net/etc/resolv.conf存放的是DNS客户端配置文件[root@centos8 ~]# cat /etc/resolv.conf # 查看DNS客户端配置
# Generated by NetworkManager
search localdomain ittimeline.net
nameserver 10.0.0.2Linux目录结构- /var和/tmp目录/var 目录用于存放一些变化的文件/var/log目录用于存放日志文件/var/cache目录用于存放应用程序缓存数据目录[root@centos8 ~]# ls /var/log #查看系统日志文件列表
anaconda dnf.log messages sssd
audit dnf.rpm.log messages-20211010 swtpm
boot.log firewalld private tuned
boot.log-20211009 gdm qemu-ga vmware-network.1.log
boot.log-20211010 glusterfs rhsm vmware-network.2.log
btmp hawkey.log samba vmware-network.log
chrony hawkey.log-20211010 secure vmware-vgauthsvc.log.0
cron lastlog secure-20211010 vmware-vmsvc-root.log
cron-20211010 libvirt speech-dispatcher vmware-vmtoolsd-root.log
cups maillog spooler wtmp
dnf.librepo.log maillog-20211010 spooler-20211010 Xorg.9.log/var/tmp目录存放进程产生的临时文件[root@centos8 ~]# ls /var/tmp
systemd-private-b32fa66c27ce40509b87d850fbe6ea71-bluetooth.service-qHyFVg
systemd-private-b32fa66c27ce40509b87d850fbe6ea71-colord.service-4Di4Dg
systemd-private-b32fa66c27ce40509b87d850fbe6ea71-ModemManager.service-VwHWoj
systemd-private-b32fa66c27ce40509b87d850fbe6ea71-rtkit-daemon.service-NsfeKh/tmp 系统临时目录 用于存放一些临时文件Linux目录结构-/dev目录/dev目录用于存放设备文件,例如硬盘,光驱等等。在/dev目录下有几个常用的特殊设备/deve/null 黑洞设备,只进不出,类似于垃圾回收站/dev/random 生成随机数的设备[root@centos8 ~]# echo $RANDOM #产生一个随机数 该随机数由/dev/random设备产生
10852
[root@centos8 ~]# echo $RANDOM|md5sum #产生一个随机数,使用md5加密 该随机数由/dev/random设备产生
fe8330279a460dacafed81c058b6b376 – /dev/zero 能源源不断产生收据,类似于取款机,能随时随地取钱
[root@centos8 ~]# dd if=/dev/zero of=/tmp/data.txt bs=1M count=2048 #取2G的数据存储到/tmp/data.txt文件中
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 0.969928 s, 2.2 GB/s
[root@centos8 ~]# ll -h /tmp/data.txt #以人性化的方式查看/tmp/data.txt文件信息
-rw-r–r–. 1 root root 2.0G Oct 10 10:40 /tmp/data.txtLinux目录结构-/proc目录每个程序运行起来之后被称为进程,系统会给每个进程随机分配一个编号,即PID,在Windows的任务管理器的详细信息中可以看到每个进程的PID/proc目录是虚拟的文件系统,如果对应的进程停止 ,则/proc目录下的目录会被删除。/proc目录反映当前系统正在运行进程的实时状态,类似于汽车正在运行过程中的仪表板,能够看到汽车的时速,油耗,公里数等等。[root@centos8 ~]# systemctl status crond #查看crond服务的状态
● crond.service – Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-10-10 10:08:49 CST; 48min ago
Main PID: 1226 (crond)
Tasks: 1 (limit: 24608)
Memory: 1.1M
CGroup: /system.slice/crond.service
└─1226 /usr/sbin/crond -n

Oct 10 10:08:49 centos8.ittimeline.net systemd[1]: Started Command Scheduler.
Oct 10 10:08:49 centos8.ittimeline.net crond[1226]: (CRON) STARTUP (1.5.2)
Oct 10 10:08:49 centos8.ittimeline.net crond[1226]: (CRON) INFO (Syslog will be used instead of sendmail.)
Oct 10 10:08:49 centos8.ittimeline.net crond[1226]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 47% if used.)
Oct 10 10:08:49 centos8.ittimeline.net crond[1226]: (CRON) INFO (running with inotify support)crond进程的实时信息在/proc/1226目录下,1226是crond服务的进程编号。后续可以通过命令读取该目录获取对应的进程信息[root@centos8 ~]# ll /proc/1226
total 0
dr-xr-xr-x. 2 root root 0 Oct 10 10:46 attr
-rw-r–r–. 1 root root 0 Oct 10 10:46 autogroup
-r——–. 1 root root 0 Oct 10 10:46 auxv
-r–r–r–. 1 root root 0 Oct 10 10:08 cgroup
–w——-. 1 root root 0 Oct 10 10:46 clear_refs
-r–r–r–. 1 root root 0 Oct 10 10:08 cmdline
-rw-r–r–. 1 root root 0 Oct 10 10:08 comm
-rw-r–r–. 1 root root 0 Oct 10 10:46 coredump_filter
-r–r–r–. 1 root root 0 Oct 10 10:46 cpu_resctrl_groups
-r–r–r–. 1 root root 0 Oct 10 10:46 cpuset
lrwxrwxrwx. 1 root root 0 Oct 10 10:46 cwd -> /
-r——–. 1 root root 0 Oct 10 10:46 environ
lrwxrwxrwx. 1 root root 0 Oct 10 10:08 exe -> /usr/sbin/crond
dr-x——. 2 root root 0 Oct 10 10:08 fd
dr-x——. 2 root root 0 Oct 10 10:46 fdinfo
-rw-r–r–. 1 root root 0 Oct 10 10:46 gid_map
-r——–. 1 root root 0 Oct 10 10:46 io
-r–r–r–. 1 root root 0 Oct 10 10:46 limits
-rw-r–r–. 1 root root 0 Oct 10 10:08 loginuid
dr-x——. 2 root root 0 Oct 10 10:46 map_files
-r–r–r–. 1 root root 0 Oct 10 10:46 maps
-rw——-. 1 root root 0 Oct 10 10:46 mem
-r–r–r–. 1 root root 0 Oct 10 10:46 mountinfo
-r–r–r–. 1 root root 0 Oct 10 10:46 mounts
-r——–. 1 root root 0 Oct 10 10:46 mountstats
dr-xr-xr-x. 6 root root 0 Oct 10 10:46 net
dr-x–x–x. 2 root root 0 Oct 10 10:46 ns
-r–r–r–. 1 root root 0 Oct 10 10:46 numa_maps
-rw-r–r–. 1 root root 0 Oct 10 10:46 oom_adj
-r–r–r–. 1 root root 0 Oct 10 10:46 oom_score
-rw-r–r–. 1 root root 0 Oct 10 10:46 oom_score_adj
-r——–. 1 root root 0 Oct 10 10:46 pagemap
-r——–. 1 root root 0 Oct 10 10:46 patch_state
-r——–. 1 root root 0 Oct 10 10:46 personality
-rw-r–r–. 1 root root 0 Oct 10 10:46 projid_map
lrwxrwxrwx. 1 root root 0 Oct 10 10:46 root -> /
-rw-r–r–. 1 root root 0 Oct 10 10:46 sched
-r–r–r–. 1 root root 0 Oct 10 10:46 schedstat
-r–r–r–. 1 root root 0 Oct 10 10:08 sessionid
-rw-r–r–. 1 root root 0 Oct 10 10:46 setgroups
-r–r–r–. 1 root root 0 Oct 10 10:46 smaps
-r–r–r–. 1 root root 0 Oct 10 10:46 smaps_rollup
-r——–. 1 root root 0 Oct 10 10:46 stack
-r–r–r–. 1 root root 0 Oct 10 10:08 stat
-r–r–r–. 1 root root 0 Oct 10 10:46 statm
-r–r–r–. 1 root root 0 Oct 10 10:08 status
-r——–. 1 root root 0 Oct 10 10:46 syscall
dr-xr-xr-x. 3 root root 0 Oct 10 10:08 task
-rw-r–r–. 1 root root 0 Oct 10 10:46 timens_offsets
-r–r–r–. 1 root root 0 Oct 10 10:46 timers
-rw-rw-rw-. 1 root root 0 Oct 10 10:46 timerslack_ns
-rw-r–r–. 1 root root 0 Oct 10 10:46 uid_map
-r–r–r–. 1 root root 0 Oct 10 10:46 wchan如果停止crond进程,则该虚拟目录则不存在[root@centos8 ~]# systemctl stop crond #停止crond服务
[root@centos8 ~]# ll /proc/1226 #之前的/proc/1226目录不存在了
ls: cannot access '/proc/1226': No such file or directory再次启动crond服务后发现进程编号是2482[root@centos8 ~]# systemctl start crond
[root@centos8 ~]# systemctl status crond
● crond.service – Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-10-10 11:01:35 CST; 11s ago
Main PID: 2482 (crond)
Tasks: 1 (limit: 24608)
Memory: 1.0M
CGroup: /system.slice/crond.service
└─2482 /usr/sbin/crond -n

Oct 10 11:01:35 centos8.ittimeline.net systemd[1]: Started Command Scheduler.
Oct 10 11:01:35 centos8.ittimeline.net crond[2482]: (CRON) STARTUP (1.5.2)
Oct 10 11:01:35 centos8.ittimeline.net crond[2482]: (CRON) INFO (Syslog will be used instead of sendmail.)
Oct 10 11:01:35 centos8.ittimeline.net crond[2482]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 58% if used.)
Oct 10 11:01:35 centos8.ittimeline.net crond[2482]: (CRON) INFO (running with inotify support)
Oct 10 11:01:35 centos8.ittimeline.net crond[2482]: (CRON) INFO (@reboot jobs will be run at computer's startup.)然后又可以使用 ls /proc/2482命令 在/proc/2482 目录下查看该进程信息

本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://kuaisubeian.cc/34032.html

kuaisubeian