Linux常用命令总结

Linux常用命令总结

July 3, 2024 · 1 min · Gweek

Linux 文件系统结构

Linux文件系统的结构是一个层次化的目录树,所有文件和目录都从根目录(/)开始。以下是一些主要的目录及其作用: 根目录 / 这是文件系统的起点,所有其他目录和文件都从这里派生出来。 /bin 存放基本的用户命令,如ls, cp, mv, rm等。这些命令在单用户模式和所有用户环境中都可用。 /sbin 存放系统管理员使用的基本命令,如ifconfig, reboot, shutdown等。普通用户一般没有权限执行这些命令。 /etc 存放系统配置文件和子目录。例如,/etc/passwd文件包含用户账号信息,/etc/fstab文件包含文件系统挂载信息。 /home 存放用户的主目录,每个用户都有一个单独的子目录。例如,用户alice的主目录是/home/alice。 /root 系统管理员(root用户)的主目录。与普通用户的主目录不同,root用户的主目录位于根目录下。 /var 存放可变数据文件,如日志文件、邮件、临时文件等。常见的子目录有/var/log(日志文件)和/var/tmp(临时文件)。 /tmp 存放临时文件,系统重启后这些文件通常会被删除。任何用户和应用程序都可以在此创建临时文件。 /usr 存放用户级别的应用程序和文件。常见的子目录有: /usr/bin: 用户命令。 /usr/sbin: 系统管理员命令。 /usr/lib: 库文件。 /usr/share: 共享数据,如文档和配置文件。 /usr/local: 本地安装的软件和文件,与系统默认软件分开。 /lib 存放系统引导和运行时所需的共享库文件和内核模块。 /opt 存放附加的应用程序软件包。通常用于安装大型第三方软件包。 /mnt 用于临时挂载文件系统。系统管理员可以在此挂载临时文件系统,如光盘或其他存储设备。 /media 用于自动挂载的可移动媒体设备,如U盘、光盘等。现代Linux发行版通常会自动在此目录下创建子目录来挂载这些设备。 /dev 存放设备文件,表示系统中的硬件设备。常见的设备文件有硬盘设备(如/dev/sda)、终端设备(如/dev/tty)等。 /proc 一个虚拟文件系统,包含系统内核和进程的信息。它动态生成内容,提供系统和进程信息的接口。 /sys 另一个虚拟文件系统,提供设备和内核信息的接口。它主要用于内核和硬件设备的配置和管理。 /boot 存放引导加载程序和内核文件,如vmlinuz(内核映像)和initrd(初始RAM磁盘)。 /srv 存放系统提供的服务相关的数据,如Web服务器的数据文件。

July 2, 2024 · 1 min · Gweek

Linux Samba服务器

Samba是什么 Samba 是一个开源的软件套件,用于在 Linux 和类 Unix 系统上实现 SMB/CIFS 协议。它允许 Linux/Unix 系统上的文件和打印资源能够被 Windows 客户端访问,实现了在不同操作系统之间共享文件和打印机的功能。 Samba 使用的主要协议是 SMB(Server Message Block),它是一种在网络上共享文件、打印机和其他资源的通信协议。SMB 协议提供了一种客户端/服务器模型,客户端可以请求服务器上的共享资源,服务器则向客户端提供这些资源。 Samba 默认使用以下端口: TCP 端口 139:早期版本的 SMB 服务使用此端口,主要用于文件共享和打印机服务。 TCP 端口 445:新版本的 SMB 服务通常使用此端口,它提供了更快速和安全的数据传输。 总的来说,Samba 是一个用于在 Linux 和类 Unix 系统上实现 Windows 文件和打印机共享的软件,它使用 SMB/CIFS 协议,并通常使用 TCP 端口 139 和 445。 添加Samba服务器作为文件服务器,工作组名为WORKGROUP,发布共享目录/share,共享名为public,这个共享目录允许公司所有员工访问。 安装 Samba sudo yum install samba -y 创建共享目录 mkdir /share 编辑配置文件 /etc/samba/smb.conf vim /etc/samba/smb.conf 设置 SELinux 上下文 chcon -t samba_share_t /share restorecon -R /share 配置防火墙 firewall-cmd --permanent --add-service=samba firewall-cmd --reload 重启并启用 Samba 服务 systemctl restart smb...

July 1, 2024 · 2 min · Gweek

Linux Nginx服务器

一、Nginx服务器 Nginx是一个流行的开源Web服务器和反向代理服务器软件。它以其高性能、低资源消耗和良好的可扩展性而闻名。默认情况下,Nginx监听HTTP流量的端口是80,HTTPS流量的端口是443。 简单来说,当用户通过浏览器访问一个使用Nginx作为Web服务器的网站时,他们通常会连接到服务器的80端口(HTTP)或443端口(HTTPS),Nginx将根据其配置将请求路由到相应的站点或应用程序。 二、配置过程 1. 安装Nginx 使用yum包管理器安装Nginx软件包: sudo yum install nginx 2. 启动Nginx服务 安装完成后,启动Nginx服务并设置为开机自启动: sudo systemctl start nginx sudo systemctl enable nginx 3. 配置防火墙 如果有防火墙,确保打开HTTP(80端口): sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload 4. 配置Nginx Nginx的主要配置文件是/etc/nginx/nginx.conf。你可以使用任何文本编辑器来编辑这个文件: sudo vim /etc/nginx/nginx.conf 配置工作进程数 在nginx.conf文件中,默认情况下会有一行类似这样的配置: worker_processes auto; 默认情况下,Nginx会根据系统的CPU核心数自动设置工作进程的数量。你可以根据服务器的性能需求手动设置工作进程的数量,例如: worker_processes 4; 这将设置Nginx使用4个工作进程来处理请求。根据服务器的负载情况和性能,你可以调整这个数字。 配置虚拟主机 在http块内,你可以配置多个虚拟主机,以支持多个网站。每个虚拟主机配置都使用server块。一个简单的虚拟主机配置示例如下: server { listen 80; server_name example.com www.example.com; location / { root /usr/share/nginx/html; index index.html; } } 这个配置指定了一个虚拟主机,它会监听80端口,处理来自example.com和www.example.com域名的请求。所有请求都将被发送到/usr/share/nginx/html目录下,并且使用index.html作为默认索引文件。 可以根据需要添加更多的虚拟主机配置,以支持多个网站。 配置网站根目录 在每个虚拟主机配置中,你可以设置网站的根目录。例如,上面的配置指定网站根目录为/usr/share/nginx/html: location / { root /usr/share/nginx/html; index index....

June 30, 2024 · 1 min · Gweek

Linux NFS服务器

一、NFS服务 NFS(Network File System)是一种用于在网络上共享文件系统的协议,它允许不同计算机之间通过网络共享文件和目录。NFS 最初由 Sun Microsystems 开发,并成为了 UNIX 和类 UNIX 系统中最常见的文件共享协议之一。 二、NFS配置 NFS服务配置文件在**/etc/exports**,配置参数其结构如下: 每行代表一个共享配置:每行表示一个要共享的目录以及该目录的共享参数。 目录路径:在每行的开头指定要共享的目录路径。 共享参数:在目录路径之后,您可以指定一系列的共享参数,用于控制客户端对共享的访问权限和行为。 以上配置表示共享了 /data 目录给所有客户端,允许读写操作,并禁用了根用户映射;同时,将 /home 目录只读共享给 192.168.1.0/24 子网下的客户端,并要求数据同步写入磁盘。 常用的共享参数: rw:可读可写,允许客户端对共享目录执行读取和写入操作。 ro:只读,允许客户端读取共享目录中的文件,但不允许写入。 sync:数据同步,NFS 服务器应立即将数据写入磁盘,以确保数据的一致性。 async:异步写入,允许 NFS 服务器将数据缓存,并在稍后的时间异步写入磁盘。 no_root_squash:禁用根用户映射,允许客户端的 root 用户拥有与服务器上相同的权限。 root_squash:启用根用户映射,默认情况下将客户端的 root 用户映射为匿名用户。 all_squash:将所有客户端用户映射为匿名用户(nfsnobody)。 三、举个栗子 要求:NFS共享一个目录/data,客户机挂载NFS共享 首先关闭selinux vim /etc/selinux/config 编辑selinux配置文件 sestatus 查看selinnx状态,如果还是enable,reboot一下 或者临时关闭防火墙 systemctl stop firewalld setenforce 0 步骤 1:安装 NFS 服务器软件包 yum install nfs-utils rpcbind -y 步骤 2:配置共享目录 mkdir /data 编辑 NFS 服务器的共享配置文件 /etc/exports,添加要共享的目录和权限设置。...

June 29, 2024 · 1 min · Gweek

Linux FTP服务器

一、FTP服务器介绍 FTP(File Transfer Protocol,文件传输协议)是一种用于在计算机之间传输文件的标准网络协议。 1.应用场景: 文件上传和下载:FTP允许用户从服务器上下载文件到本地计算机或将本地文件上传到服务器。这在网站维护、文件共享、备份等场景中非常常见。 文件管理:用户可以通过FTP在远程服务器上管理文件,包括创建、删除、重命名文件和目录,修改文件权限等操作。 批量传输:FTP支持批量文件传输,可以一次性传输多个文件或整个目录,这在处理大量数据时非常有效。 2.工作机制 FTP使用客户端-服务器模型,分为两个通道:控制通道和数据通道。 控制通道:用于发送命令和接收服务器响应。 数据通道:用于实际传输文件数据。 3.FTP的端口号 FTP的传输涉及两个主要端口号: 控制端口(21端口):这是FTP服务器监听的端口,用于接收来自FTP客户端的命令。所有的命令和响应都通过此端口进行传输。 数据端口:用于传输文件数据,有两种模式: 主动模式(Active Mode):服务器从20端口(数据端口)主动连接客户端指定的端口传输数据。FTP的默认模式。 被动模式(Passive Mode):服务器打开一个随机的高位端口(大于1023),告诉客户端这个端口号,然后客户端主动连接这个端口进行数据传输。这种模式通常用于解决防火墙和NAT(网络地址转换)的问题。 vim /etc/vsftpd/vsftpd.conf #添加以下内容 pasv_enable=YES port_enable=NO #以上命令是将主动模式变更为被动模式 二、用户类型 在Linux下使用FTP时,用户类型主要可以分为匿名用户、本地用户、虚拟用户 匿名用户(Anonymous User) 匿名用户访问是一种无需特定账户和密码的FTP访问方式,通常用于公开文件的下载。在匿名访问中,用户使用“anonymous”作为用户名,密码一般是任意字符串或邮箱地址。 本地用户(Local User) 本地用户是指系统中的实际用户账户,他们可以使用其系统用户名和密码通过FTP访问其主目录或指定的目录。每个本地用户在FTP服务器上有独立的权限设置。 虚拟用户(Virtual User) 虚拟用户是一种在FTP服务器中定义的用户,这些用户不需要在操作系统中存在实际的用户账号。虚拟用户可以与系统用户或匿名用户分开管理,通常用于需要独立用户管理的FTP服务。 三、配置文件 配置文件目录通常位于/etc/vsftpd/vsftpd.conf 参数 说明 listen: 是否以独立运行的方式监听服务 listen_address: 设置监听FTP服务的IP地址 listen_port: 设置监听FTP服务的端口! write_enable: 是否启用写入权限 download_enable: 是否允许下载 amonymous_enable: 是否启用匿名访问 anon_root: 匿名FTP的根目录 local_root: 是否启用本地用户的FTP根目录 local_umask: 本地用户上传的权限掩码 chroot_local user: 是否禁锢在主目录/家目录 max_clients: 限制并发的客户端个数 四、登录FTP的黑名单和黑白名单 黑名单: 目录/etc/vsftpd/ftpusers 阻止特定用户访问FTP服务器:该文件中的用户无论如何配置,都无法登录到FTP服务器。这通常包括一些系统用户和其他特定用户。 黑白名单: 目录/etc/vsftpd/user_list 文件在 vsftpd 中用于控制特定用户对 FTP 服务器的访问权限。该文件的行为取决于 vsftpd 配置文件 (/etc/vsftpd/vsftpd....

June 28, 2024 · 1 min · Gweek

Linux DNS服务器

一、什么是DNS DNS服务器(Domain Name System Server)是一种网络服务器,它负责将域名转换为相应的IP地址。在互联网上,每个设备都需要一个唯一的IP地址以便进行通信,但人们更倾向于记忆易懂的域名,而不是复杂的IP地址。DNS服务器充当了这个转换的中介。当您输入一个域名时,您的计算机会向DNS服务器发送请求,以获取与该域名对应的IP地址。DNS服务器然后返回相应的IP地址,使您的设备能够连接到目标服务器或资源。 二、域名空间结构 在DNS中,域名空间结构采用分层结构,包括:根域名,顶级域,二级域和主机名称。域名空间的层次结构类似一个倒置的树状,在域名层次结构中,每一层称作一个域,每个域用一个点号".“分开。 根域: 根域是域名系统(DNS)中的最高级别域名,它位于所有其他域名的顶部。在域名系统中,根域用一个点(.)表示,它没有任何名称,只是一个单独的点。根域是DNS层次结构的起点,所有的顶级域名(Top-Level Domains,TLDs)都直接或间接地从根域下派生出来。 顶级域 DNS根域的下一级就是顶级域,顶级域大致分三种类型,表示国家和地区(cn,hk,us,uk)、表示域名的用途或类别(com,net,org,gov,edu)、新通用等级域名(top,xyz,app) 子域 子域是在较高级别域名下创建的一个子域名。通常,子域是用于组织和管理特定部门、项目或区域的域名,以便更好地组织和标识网络资源。 主机 主机名通常用于标识网络中的计算机、服务器、路由器、打印机等设备,以及提供各种网络服务的服务器,如Web服务器、邮件服务器等。主机名在网络中是唯一的,用于确保设备和服务可以被准确地标识和访问。 三、域名解析方式 递归查询 在递归解析中,客户端向本地DNS服务器发送域名查询请求。如果本地DNS服务器没有缓存该域名的解析结果,它会开始递归地向更高级别的DNS服务器发送查询,直到找到能够提供域名解析结果的顶级域名服务器。一旦找到,本地DNS服务器将把解析结果返回给客户端,并且将结果缓存在本地,以备将来的查询。 迭代查询 在迭代解析中,客户端向DNS服务器发送查询请求,DNS服务器要么返回所查询域名的解析结果,要么指示客户端向另一个DNS服务器发送查询。这个过程一直持续下去,直到找到能够提供域名解析结果的顶级域名服务器。客户端可以通过迭代查询逐级向下查询,直到获得所需的解析结果。 特性 递归查询 迭代查询 谁负责执行查询 服务器 客户端 查询次数 1 多个 服务器负载 高 低 客户端工作量 低 高 四、DNS资源记录 A记录(A Record):将域名解析为IPv4地址。 AAAA记录(AAAA Record):将域名解析为IPv6地址。 CNAME记录(CNAME Record):将一个域名别名为另一个域名。 MX记录(MX Record):指定用于处理域名的邮件服务器。 NS记录(NS Record):指定授权的DNS服务器,用于解析该域名的域名。 PTR记录(PTR Record):将IP地址反解析为域名。 SOA记录(SOA Record):指定域名的权威服务器,并包含有关该域名的其他信息。 SRV记录(SRV Record):用于指定用于特定服务的服务器,例如用于IMAP或SIP的服务器。 TXT记录(TXT Record):存储与域名相关的其他信息,例如SPF记录或DKIM记录。 五、配置过程 1. 安装BIND软件包 首先,使用yum包管理器安装BIND软件包: sudo yum install bind bind-utils 2. 配置BIND BIND的配置文件位于/etc/named.conf。你可以使用任何文本编辑器来编辑这个文件: sudo nano /etc/named.conf 在named....

June 27, 2024 · 1 min · Gweek

Linux DHCP服务器

一、什么是DHCP服务器 DHCP(Dynamic Host Configuration Protocol)服务器是一种网络服务,用于自动分配IP地址给网络上的设备。DHCP服务器负责管理IP地址池,并在设备加入网络时分配IP地址、子网掩码、网关地址等网络配置信息。这种自动配置的方式简化了网络管理。 二、工作原理 客户端发现(DHCP Discover): 当一个设备连接到网络时(例如,一台电脑启动或移动到新的网络),它会发送一个DHCP发现消息到网络上的广播地址(255.255.255.255),以寻找可用的DHCP服务器。 服务器提供(DHCP Offer): DHCP服务器接收到发现消息后,会回应一个DHCP提供消息,其中包含IP地址等网络配置信息。如果有多个DHCP服务器存在,客户端会接收到多个提供消息,但通常会选择第一个到达的提供消息。 客户端请求(DHCP Request): 客户端收到一个或多个DHCP提供消息后,选择其中一个提供消息,并向该DHCP服务器发送一个请求消息,请求分配网络配置信息。 服务器确认(DHCP Acknowledge): DHCP服务器收到客户端的请求消息后,确认该请求,并发送一个DHCP确认消息,其中包含了所分配的IP地址等网络配置信息。 网络配置生效: 客户端收到DHCP确认消息后,配置所分配的IP地址等网络配置信息,并将其应用于网络连接。此时,设备就可以正常地与网络通信了。 三、租约更新过程 DHCP租约更新是指客户端续租其已经分配的IP地址及其他网络配置信息的过程。租约的更新是为了确保网络上的设备能够继续使用其分配的IP地址,同时也是为了网络资源的有效利用和管理。以下是DHCP租约更新的一般过程: 租约到期检查: 客户端在分配的IP地址使用期限即将到期时,会开始尝试更新租约。在租约到期之前,客户端通常会尝试向DHCP服务器发送请求以更新租约。 请求更新(DHCP Request): 客户端发送一个DHCP请求消息到DHCP服务器,请求续租其当前使用的IP地址及其他网络配置信息。 服务器确认更新(DHCP Acknowledge): DHCP服务器收到客户端的更新请求后,会确认该请求,并发送一个DHCP确认消息,其中包含了更新后的网络配置信息。如果DHCP服务器接受了客户端的续租请求,那么它会分配相同的IP地址给客户端,并更新租约的过期时间。 网络配置更新: 客户端收到DHCP确认消息后,会更新其网络配置,包括IP地址、子网掩码、网关地址等。这样,客户端就可以继续在网络上正常通信,并且不会中断其网络连接。 通过定期的租约更新,DHCP可以确保网络上的设备持续地使用其分配的IP地址,并且有效地管理IP地址的分配和释放,从而提高网络的可用性和资源利用效率。 四、配置过程 1.安装DHCP服务器软件: sudo yum install dhcp 2.编辑DHCP服务器配置文件: sudo nano /etc/dhcp/dhcpd.conf 在文件中,你需要配置DHCP服务器的参数,例如: subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.1; option domain-name-servers 8.8.8.8, 8.8.4.4; default-lease-time 600; max-lease-time 7200; } 这个配置文件会指定DHCP服务器分配IP地址的范围、网关、DNS服务器以及租约时间等。 3.指定DHCP服务器监听的网卡: 编辑/etc/sysconfig/dhcpd文件: sudo nano /etc/sysconfig/dhcpd 确保指定了DHCP服务器要监听的网络接口,例如:...

June 26, 2024 · 1 min · Gweek