WeSeong 登录
← 返回文章列表
Linux

Linux 文件结构和各种命令

Linux 文件结构和各种命令

一、概述

Linux 文件结构在最上面 root 有一个目录,下面还有 bin, boot, dev, home, lib, media, mnt, opt, sbin, tmp, usr, var, proc, run 存在目录,我们需要了解每个目录中有哪些文件。我们还需要了解要在哪些文件或目录中查找和访问以完成特定任务。 Linux在 各种命令不过,今天我们将学习与用户组相关的命令、与文件和目录相关的命令、链接命令、管理员命令以及与网络和系统设置相关的命令。 Linux这使得编辑文档变得非常容易 vi 了解编辑器。



Ⅱ. Linux 文件结构

Linux文件结构在不同族群之间可能略有不同,但结构几乎相同。 无论是构建服务器还是保障其安全,您都需要了解文件结构。为了 无论是任务还是命令通过 这可以很容易地做到。, 如果你不了解结构,你就不知道如何工作。一开始, Linux 即使我刚刚学习命令时,我也还不太明白如何使用它们,但随着我对文件结构的理解,我逐渐开始掌握这些概念。


默认情况下,在顶部 root 目录有的。 Windows它与 'Local Disk c:\' 类似,并且由于它位于整个目录的最上层, Linux在所有路径中 root 从目录开始。当您使用管理员帐户登录时,您有一条路径,起始于此目录。


  1. bin

此目录包含 Linux 上的可执行文件。系统有一组二进制文件,其中包括与常用系统命令相关的文件。


  1. boot

kernel 包含与内核相关的文件以及内核启动时读取的信息。


  1. dev

此目录包含与驱动程序相关的文件。使用虚拟机时,包含用于控制虚拟硬件的设备 为了信息以及与驱动程序相关的文件。


  1. etc

此目录在构建、运行和管理服务器时经常被访问,所有与 Linux 相关的配置文件都存储在该目录中。如果您之后安装服务器 (ex. nginx),则相应的配置文件也可以在该目录中进行访问和修改。


  1. home

此目录可能与 Windows 中的用户帐户目录类似。在 Linux 上创建用户帐户时,会在该目录下创建一个带有用户帐户名称的目录。通常,您可以将多个文件上传到此目录中,将其发送到其他位置,或对其进行修改等操作。当您以普通用户帐户身份登录时,将从该路径开始。


  1. lib

就像 Windows 中的 dll 文件,允许多个进程共享相同的代码以高效管理内存(资源)一样,Linux 中的文件也被分组到一个单一目录中。就像在 Windows 中使用打印功能时,可以从任何位置查看相同的窗口一样,Linux 中的常用程序功能都是通过引用此目录来执行的。


  1. media, mnt

要了解此目录,请执行 mount 命令Mount) 你需要了解这个概念。 usb, 当您连接磁盘等设备时,您会将其连接到一个目录中。 Windows在外部硬盘驱动器上 usb如果您思考一下通过将文件连接到目录来备份或导入文件的过程,就可以看到这种方式如何通过将物理设备连接到目录来实现利用。


※ ubuntu在自动安装中为了 cdrom 有一个目录。 media 与目录的区别在于读取哪些设备。 cdrom在该情况下 CD/DVD我读过它,但 media在这种情况下,必须手动安装。 USB, 外部硬盘驱动器, SD 卡片等读取它。


  1. opt

与 Windows 相同,用户程序安装在"Program Files"目录中,而在 Linux 中,外部安装的用户程序也安装在该目录中。通常,外部程序使用"sudo apt-get install program"命令安装在该目录中。


  1. usr

与 opt 目录类似,这是一个目录,其中包含普通用户帐户使用的默认应用程序,而不是外部用户程序。其中包括与普通用户相关的系统相关文件。


  1. var

日志 (log) 和数据文件都存储在这里。Web 服务器 DB 和其他源都安装在这里,许多用户直接修改的文件也位于此目录中。在设置、管理和运行服务器时,此目录可能会非常大。


  1. proc

在 Windows 上按下 ctrl+alt+del 键可以打开的任务管理器中,您可以查看进程信息,包括每个进程使用的内存量、所消耗的 cpu 量等。类似地,在 Linux 中,您也可以在该目录中查看与进程相关的信息。


12. run

它管理 socket 用于服务器、进程 ID 之间的通信,并存储与运行中的服务相关的文件。


13. sbin

包含与系统命令相关的文件。如果 bin 目录中包含常用的系统命令,则它包含仅对具有 root 权限的用户可访问的重要系统二进制文件(system binary),例如 'sudo apt update'、 'sudo su' 和 'sudo apt-get install' 程序。


14. tmp

这是一个临时文件目录,在系统关闭并重新启动时可能会被删除。它在不再需要时删除缓冲区和临时下载的文件。它是临时存储位置,用于将临时下载的文件移动到实际使用的目录。


可以将 VMware虚拟机 从 复制。


在上图中,将鼠标悬停在要复制的虚拟机上,然后右键单击。 Manage - Clone按下


出现此屏幕。


如果下一屏幕上存在现有快照,则可以基于它们复制数据。如果没有现有快照,则可以按原样复制当前虚拟机状态。


在这里,您可以选择复制整个虚拟机的数据,或链接到原始虚拟机。如果与部署有关,链接到原始虚拟机可以节省磁盘空间。full clone在这种情况下,复制整个数据会占用更多空间。


最后,请指定虚拟机的名称和目录路径。



Ⅲ. Linux 命令

以下是自上次发帖以来我学到的一些其他命令。


  1. 与用户和组相关的命令

在用户和组相关的文件中, /etc/passwd 文件很重要。当您连接到 Linux 并登录时,可以通过为该文件授予权限来限制登录,所有帐户都存储在该文件中。


在上图中,/etc/passwd文件的结构如下,其中一行配置如下:':(冒号)'是用户帐户名,用 'x' 符号分隔,表示 加密的密码,其中第一个数字表示 用户 ID,第二个数字表示 组 ID,用户属于该组。下一部分是 其他信息,后面的路径是 主目录,这是用户登录时的主目录路径。最后显示的信息是默认的主目录路径。 shell 为 bash。例如,如果以 /bin/bash 结尾,则在以 root 帐户登录时将执行该 shell。


※ 以前, /etc/passwd 文件允许用户查看用户帐户的密码,但由于此文件可供所有用户访问,出于安全考虑,/etc/shadow 文件中包含了密码,这些密码是单向加密的。


如果在登录时默认执行 /bin/bash,则 /usr/sbin/nologin 即使密码正确也会限制登录。同样, /bin/false 也会阻止登录,但它会显示错误的密码消息,即使输入正确的密码也会限制登录。




在 Linux 命令行中,上述两个图像的最后一部分要么以 '$' 结束,要么以 '#' 结束。'$' 表示普通用户状态,'#' 表示超级用户(管理员权限)。通常情况下,以 ''sudo ~' 开头的管理员命令只能在启用超级用户权限时使用。


本节介绍了用户和组命令,可以以多种方式使用。

#유저추가
adduser 유저명

#유저 비밀번호 지정 및 변경
passwd 유저명

#유저 속성 변경
usermod [옵션: -c, -d, -g, -l, -s] 바꿀 내용 유저명
-- c옵션은 사용자에 대한 주석이다.
-- d옵션은 사용자의 홈디렉토리 경로를 변경한다.
-- g옵션은 사용자가 속할 그룹을 변경한다.
-- l옵션은 사용자 이름을 변경한다.
-- s옵션은 사용자의 로그인 셸을 변경한다.

#유저 삭제
userdel 유저명

#유저 암호 주기적 변경 설정
chage -m 숫자 유저명
-- m옵션 뒤의 숫자는 달(몇월)을 이야기 한다.(만약, 2라면 2달 간격이다.)

#그룹 목록
groups
-- 현재 사용자가 속한 그룹을 보여준다.

#그룹 생성
groupadd 그룹명

#그룹 삭제
groupdel 그룹명

#그룹 암호 설정 혹은 관리 수행
gpasswd 그룹명

尽管在上述命令示例中省略了,但默认情况下,使用与用户和组相关的命令需要管理员权限。


※ Linux 在安装过程中创建的第一个帐户是超级帐户,但当您登录时,它会变为普通帐户。 'sudo su'通过 可以将其更改为超级用户帐户。然后 sudo 您可以运行需要管理员权限的命令,而无需以管理员身份登录。


2. 文件权限命令


在上图中,在前面 '-', 'd 分别表示文件和目录表示,后面跟着 6 位数字 r, w, x, - 这四个字符和符号的组合很重要,因为它们代表了对文件或目录的访问权限。除了文件和目录分隔符之外,共有九个字符,它们分为三组。 帐户权限、组权限和其他用户权限。 ''r' 是读取权限,'w' 是写入权限,'x' 是执行权限以下是内容的图片。


※ 'man' 命令 存在。如果在 man 命令后输入您想了解的命令,则会出现一个帮助命令,显示相关选项及其说明。



如果权限以数字形式显示,则它们以八进制形式表示,如下所示: 如果您要授予读写权限,请使用数字 6。如果您只想授予读权限,请使用 4。如果您想授予所有权限,请使用 7。如果您只想授予执行权限,请使用 1。如果您不想授予任何权限,请使用数字 0。通过 权限您还可以使用字母代替数字,例如,'r+w' 给予所有者写入权限。

#파일 허가권 변경
chmod 숫자(ex. 777) 파일명, 디렉토리명

#파일 소유권 변경
chown 변경하려는 소유자, 그룹 변경하려는 파일, 디렉토리
chgrp 변경하려는 그룹 변경하려는 파일, 디렉토리

两个命令都可以使用"-R"选项来更改所有子目录的权限。


3. 链接相关命令

文件链接Link)有两件事。 硬链接 (Hard Link)和 符号链接 (Symbolic Link or Soft Link)不过,硬链接会与原始文件共享数据,即使删除原始文件,数据也会保留,并且可以单独查看。 inode分享它。


※ inode 是什么? 文件元数据 (inode 它指示了文件的数量、文件模式、链接数量、所有者 ID、文件大小和地址。对于硬链接,情况相同。 inode 尽管它指向了数字,但符号链接与原始文件不同。 inode 它有一个数字。


因此,符号链接会创建一个新的 inode 编号,并连接到原始文件,实际上这并不是原始文件的副本。即使删除原始文件,链接仍然存在,但如果原始文件丢失,尝试加载时就会出现错误。如果将其视为 Windows 上与程序一起安装的快捷方式,可能会更容易理解。

ln 원본 경로/파일 대상 경로/파일명
ln -s 원본 경로/파일 대상 경로/파일명

上面展示了如何创建硬链接文件,下面展示了如何创建符号链接文件。


4. 与包装相关的命令

dpkg 命令 Linux在安装外部程序时通常会使用它,但它存在依赖性问题且不方便。 apt 命令很多人都在使用它。例如, python安装时要执行的相关包 apt 如果使用命令安装,则会自动安装。 dpkg这是因为每个程序都必须使用命令单独安装。 /etc/apt/sources.list 如果你看一下文件,你会看到基本的仓库 url 它包含一个路径, apt 使用该命令,您可以参考此仓库安装相关包。此外,还有一个私有仓库,您可以在上面的路径中安装第三方程序。 sources.list 在文件中 url 您可以通过添加路径来安装它。

sudo apt-get install 프로그램명

#패키지 목록 업데이트
sudo apt-get update

sudo apt remove 패키지명

#사용하지 않는 패키지 제거
sudo autoremove 패키지명

#내려 받은 파일 제거
sudo apt clean/apt autoclean

#패키지 정보 보기
sudo apt-cache show 패키지명

#패키지 의존성 확인
sudo apt-cache depends 패키지명

5. 文件压缩命令

Windows在压缩时 zip你会记住很多事情。 Linux您还可以压缩文件。 Linux在 tar你会看到更多这样的例子。基本上,仅将文件打包就是 tar 格式。 xz, bz2, gz, zip, Z 等等需要以这种形式添加压缩。

#파일 묶는 명령어(파일을 묶거나 풀어준다)
#묶기
tar cvf my.tar 경로

#풀기
tar xvf my.tar

#cvf와 xvf는 옵션
#옵션의 종류로
#동작 관련 옵션은 c - 묶기, x - 풀기, t - 경로 확인
#나머지 옵션으로 f - 파일, v - 묶거나 푸는 과정 보이기, J - tar + xz, z - tar + gzip, j - tar + bzip2

#이렇게 묶은 파일을 압축하고 풀 수 있다.
xz 파일명
xz -d 파일명.xz
bzip2 파일명
bzip2 -d 파일명.bz2
gzip 파일명
gzip -d 파일명.gz
zip 새로운 파일명.zip 압축할 파일 이름
unzip 압축 파일 이름.zip

#파일을 묶으면서 동시에 바로 압축까지 할 수 있다.
#gzip 형태
tar cvzf 파일명.gz 경로
tar xvzf 파일명.gz

#xz 형태
tar cvfJ 파일명.xz 경로
tar xvfJ 파일명.xz

※ 要压缩的文件名 .gz, .xz, .zip 诸如添加此项的原因是为了避免对压缩文件类型产生混淆。 Linux因为没有扩展的概念 file 需要使用命令来区分哪个文件是哪个,这很麻烦。


6. 文件搜索命令

文件查找命令具有 find (文件名)、-name (所有者)、-user (权限) 和 -perm (权限) 选项。在使用 查找文件后,还可以使用 -print、-exec 执行其他命令。如果未指定 -exec 来执行外部命令,默认值为 -print (输出)。

find 경로 옵션 파일명/소유자/허가권 -print(디폴트), -exec 추가 명령어

※ 指令: 查找指令的可执行文件路径。 whereis指令: 查找指令的可执行文件、源代码和手册页位置。 locate文件名/关键字: 提供在文件列表数据库中快速搜索文件名/关键字的功能。


grep 키워드 -r 경로
grep 키워드 경로

有一个命令可以用来搜索 文件中的内容。使用了 'grep 关键字'。如果添加了 '-r' 选项,则还会搜索子目录中的内容。


7. 网络相关命令

网络设置为了可以通过/etc/netplan/01-network-manager-all.yaml文件进行修改。它是一个配置文件,由于需要缩进和手动输入每个设置,因此通过GUI提供了网络设置编辑命令。它是'nmtui'的BIOS设置,只需选择该设置即可轻松进行修改。



下一篇 ssh 命令和 scp 命令有一个 ssh 命令。 PuTTY 它允许您从已经连接到同一客户端的虚拟机远程连接到另一个虚拟机。 scp可以从远程服务器复制或发送文件。ssh 命令的选项之一是 '--p'您可以输入要远程连接的服务器的端口号。出于安全考虑,除非是针对服务应用程序,否则端口号不能更改,因此您必须匹配端口号才能进行连接。

ssh 계정명@IP주소(원격으로 접속하고자 하는 서버)
#그 후 해당 서버의 계정 비밀번호로 로그인해야 한다.
#원격 서버에서 내 로컬 서버로 복사(다운로드)
scp 원격서버계정@IP주소:경로 ./내서버경로

#내 로컬 서버에서 원격 서버로 업로드
scp ./내서버경로 원격서버계정@IP주소:경로

※ 有一个程序可以让您直接从 Windows 将文件发送到运行 Linux 的虚拟机。地址如下附有。

WinSCP 简介 :: WinSCP

※ 'wget url address' command通过 url address通过 Linux 也可以直接下载。


※ ubuntu 同时支持服务器安装和运行,而 Red Hat 系列需要单独安装和运行服务器。* sudo apt-get install nginx


8. 与系统相关的命令

是另一个需要更多研究的命令,但我会简要介绍一下。cron 和 at 。cron 允许您自动执行定期重复的任务,在与 shell 脚本一起使用时很有用。at 可以安排一次性任务的执行。cron 类似于 Windows 中的任务调度程序,通常由系统管理员使用。它对于备份数据很有用。


例如,cron 命令的格式为 'minute hour day month weekday user command'。at 命令的格式为 'at hour > script > Ctrl+D',该命令在指定的时间执行脚本,并在完成后执行 Ctrl+D。


ps和 top有一个名为 ps 的命令,它输出进程信息。 '-ef' 它与选项一起使用。'-ef'这些选项与当前正在运行的进程有关 UID(User ID), PID(Process ID), C(CPU Utilization), STIME(Start Time), TTY(Terminal Type) 它除了其他内容外,还显示 UID执行此过程的用户 ID而且 PID是进程的唯一标识符, C就是这个过程 CPU 表示以分数单位表示的平均使用量。 STIME是进程开始的时间或日期, TTY是进程运行的终端类型,其中 '?' 表示后台。 pts/0是远程访问, tty1是本地控制台 top 命令的作用类似于 Windows 任务管理器,它打印有关系统资源的信息。您可以使用选项 '-n'' 来指定屏幕刷新的频率。


dmesg 命令允许您查看系统启动时出现的消息。它可以帮助您识别由于启动时错误或系统问题而无法正常运行的进程。


※ 命令 要按顺序执行的关键字您可以在命令末尾添加 ';' (分号) 以继续执行命令。 '命令;命令;命令; ' 您可以以这种方式顺序执行命令。 ';'命令的末尾echo 命令将一串字符输出到终端。 sleepis 命令会暂停执行一段时间。

echo "abc"; sleep 1; echo "1234"; sleep 1; echo "finish";


四、Linux 编辑器

Linux在编辑文件时,最常用的标准是 vi 编辑器。 一切都必须使用键盘输入。 Linux 从本质上来看 编辑器是必不可少的, Windows编辑记事本 Linux由于从网络上上传或下载可能比较繁琐,因此熟练地使用编辑器是很有必要的。不过,一开始你可能会对编辑器感到困惑(因为你习惯了像 Windows 这样的图形用户界面环境),但我们建议你多练习一下。基本上, '命令模式', '输入模式', '线命令模式'有的。

vi /etc/passwd(경로와 파일명)

如上图所示,如果输入 vi 并输入路径和文件名,编辑器就会启动。输入时,默认可以切换到命令模式,也可以切换到行命令模式。要切换到行命令模式, ':(结肠)你必须输入它,但一旦输入, w(save), q(终止) 您可以选择其中一个选项来执行操作。w 字面上会退出编辑内容,而 q 会退出编辑器。如果您在 w 或 q 后加上 '!',则会忽略警告并立即执行命令。要从命令模式切换到输入模式,请从当前光标位置开始。 'i'按下或 'a'只需按一下即可。若要退出输入模式并返回命令模式, 您可以按 'ESC'。有关基本功能,请参阅下表。




评论

要学习的新内容很多,而且越来越难记住所有内容,但能够理解过去开发和部署 Web 项目过程中不太了解的网络和服务器相关主题真是太好了。我很好奇以后会如何与云端连接,而且我还没有使用过很多 Linux 命令,所以我对未来充满期待。😁