一、linux操作系统
Linux是一种开源的操作系统内核,最初由林纳斯·托瓦兹(Linus Torvalds)于1991年发布。它被广泛用于各种设备,从服务器和台式计算机到嵌入式系统和手机。
Linux操作系统的关键点:
-
开源和自由:Linux的源代码是公开的,任何人都可以查看、修改和分发。许多Linux发行版是免费提供的,这使得它成为一个受欢迎的选择,特别是对于那些希望控制自己软件的用户和组织。
-
发行版:Linux有许多不同的发行版(或称为“distros”),每种发行版都有不同的功能和用途。常见的发行版包括Ubuntu、Fedora、Debian、CentOS和Arch Linux。每个发行版都有自己的软件包管理系统和配置方式。
-
内核:Linux内核是操作系统的核心,负责管理硬件和提供系统服务。内核处理进程管理、内存管理、硬盘操作、设备驱动等基本功能。
-
文件系统:Linux支持多种文件系统,如ext4、XFS和Btrfs。它也支持挂载其他操作系统的文件系统,例如NTFS(用于Windows)和HFS+(用于macOS)。
-
命令行界面:Linux用户通常使用命令行界面(CLI)进行操作,尽管也有图形用户界面(GUI)可供选择。CLI提供强大的功能和灵活性,许多系统管理任务可以通过终端完成。
-
安全性:Linux以其安全性著称。它采用了多种安全机制,包括用户权限管理和文件系统权限控制。此外,Linux的开源特性使得安全漏洞可以被迅速发现和修复。
-
社区支持:Linux有一个活跃的社区支持网络。用户可以通过邮件列表、论坛和在线资源获得帮助和建议。
-
应用程序:Linux支持大量的应用程序,包括网络服务器(如Apache和Nginx)、数据库(如MySQL和PostgreSQL)、开发工具、办公软件等。
二、 linux主要学什么
-
基础命令:掌握基本的命令行操作,如文件管理(
ls
,cp
,mv
,rm
)、目录操作(cd
,mkdir
,rmdir
)、文本处理(cat
,grep
,awk
,sed
)等。 -
系统管理:学习用户和权限管理(
adduser
,chmod
,chown
)、包管理(如apt
,yum
)、进程管理(ps
,top
,kill
)、日志文件(如/var/log
)等。 -
网络配置:了解网络设置和诊断工具,如
ifconfig
,ip
,netstat
,ping
,ssh
等。 -
文件系统:理解文件系统结构、挂载和卸载文件系统、磁盘管理(
fdisk
,df
,du
)等。 -
脚本编写:学习Shell脚本编程(如Bash),用于自动化任务和系统管理。
-
服务管理:了解服务的启动、停止和管理(
systemctl
,service
),以及常见的服务如Web服务器和数据库。 -
安全:掌握基本的安全配置,如防火墙(
iptables
,ufw
)、安全更新、用户权限和审计。
三、 格式
指令名+选项+参数,ls -alh /
四、帮助(指令 --help)
--help选项是一个通用选项,用于显示命令的帮助信息。几乎所有的命令和工具都支持这个选项,提供了该命令的使用说明、可用选项和参数的详细信息。
运行--help时输出通常包括以下内容:
- 命令名称和简要描述:命令的基本功能说明。
- 用法:如何正确使用该命令的语法。
- 选项:所有可用的选项和它们的含义。
- 参数:命令可以接受的参数及其说明。
五、 ls指令
ls是 Linux 和类 Unix 系统中用来列出目录内容的命令。它显示指定目录中的文件和子目录,并支持多种选项来改变显示的格式和信息。ls命令是一个非常灵活的工具,能以不同的方式显示文件和目录的信息。
ls : -a,显示所有的文件信息(包含隐藏文件); -l,以列表形式展示详细信息;-h,文件大小 可读性更强;可以将多个选项组合在一起使用。例如,要以长格式显示当前目录中的所有文件和目录,并且以人类可读的格式显示文件大小,你可以使用:ls -alh。
六、 pwd指令(显示当前工作目录的完整路径)
pwd是一个在 Unix 和类 Unix 系统(如 Linux 和 macOS)中使用的命令,它用于显示当前工作目录的绝对路径。pwd代表“Print Working Directory”的缩写,pwd
是一个简单但非常有用的命令,帮助用户了解他们在文件系统中的确切位置。
1.确认当前工作目录: 在进行文件操作(如复制、移动或删除文件)之前,你可以使用 pwd
来确保你在正确的目录中。
2.脚本编写: 在脚本中,pwd
可以用来获取当前工作目录的路径,以便后续的操作可以基于这个路径进行。
3.调试问题: 如果你遇到路径相关的问题或错误,pwd
能帮助你确认当前目录,进而帮助你解决路径问题。
七、cd指令(更改当前工作目录的命令)
cd: cd ~,回到家目录;cd -,回到上次所在路径;cd ..回到父级路径,cd ../../../..。
1.导航到特定目录: 使用 cd
来切换到你需要进行文件操作的目录。
2.脚本编写: 在脚本中,cd
可以用来定位到特定的工作目录,以确保脚本在正确的位置执行。
3.调试: 如果你的脚本或命令依赖于特定目录,使用 cd
可以帮助你检查和调整目录路径。
八、mkdir指令(创建文件夹)
常见选项:
1.-p
:创建多级目录结构。如果中间的目录不存在,mkdir -p
会自动创建它们。
2.-m
:设置新目录的权限。
3.-v
:显示详细的创建信息。例如,mkdir -v new_folder
会在创建目录时显示信息。
使用场景:
1.组织文件:在进行文件管理时,使用 mkdir
创建必要的目录结构来保持文件的组织性。
2.自动化脚本:在自动化脚本中,使用 mkdir
可以确保所需的目录结构已经存在。
3.数据存储:创建数据存储目录,以便对数据进行分类和管理。
九、 rmdir指令(删除文件夹)
注意事项:
1.目录必须为空: rmdir
只会删除空目录。如果目录中有文件或其他目录,你需要先删除目录中的内容,或使用 rm -r
命令来递归删除非空目录。
2.权限问题: 确保你有删除目录的权限。如果没有足够的权限,rmdir
将无法删除目录,并会显示错误信息。
使用场景:
1.清理: 当不再需要某个空目录时,使用 rmdir
可以清理系统中的无用目录。
2.脚本自动化: 在脚本中,可以使用 rmdir
清理生成的临时目录,以保持系统的整洁。
十、 touch指令(创建文件)
1.创建新文件:当需要创建一个新的空文件时,可以使用 touch
。
2.更新时间戳:用于更新文件的时间戳,以便跟踪文件的最新状态。
3.脚本和自动化:在脚本中,touch
可用于创建必要的文件或确保文件的时间戳符合要求。
十一、rm指令 (删除文件和目录【rm -rf /】)
选项: -r, 递归; -f,忽略错误。
使用场景:
1.删除单个文件:用于删除不再需要的文件。
2.删除多个文件:当需要清理多个文件时使用。
3.递归删除目录:在删除整个目录及其内容时使用 -r
选项。
4.保护删除:使用 -i
选项进行确认,防止意外删除重要文件。
注意事项:
1.数据无法恢复: rm
命令删除的文件不会移到回收站,而是直接从文件系统中删除。删除后,文件通常无法恢复,所以在使用 rm
时需要特别小心。
2.使用 -r
选项时要小心:递归删除目录时,确保你真的想删除目录及其所有内容,避免误删重要文件。
十二、 重定向(>,写入;>>,追加)
在计算机操作中,重定向(Redirection)是指将命令的输入或输出从默认的位置(通常是标准输入或标准输出)转移到另一个位置。重定向通常用于处理命令行中的数据流,使得命令可以从文件读取数据或将结果输出到文件或其他地方。
1.标准输入(stdin):命令接收输入的地方,通常是键盘。
2.标准输出(stdout):命令输出结果的地方,通常是终端屏幕。
3.标准错误(stderr):命令输出错误信息的地方,也通常是终端屏幕。
使用场景:
1.日志记录:将程序输出和错误信息记录到日志文件中。
2.数据处理:将数据流从一个命令传递给另一个命令进行处理。
3.批处理:将输入文件传递给批处理命令,并将结果写入输出文件。
十三、cat指令(连接多个文件 将内容输出到屏幕)
cat命令用于显示文件内容、将多个文件连接起来以及创建新文件等操作。
显示文件内容,文件的内容输出到终端屏幕上;
连接多个文件并输出,将文件的内容按顺序输出到终端;
cat file1.txt file2.txt > combined.txt将多个文件合并到一个新文件,将两个文件的内容合并并写入文件。如果新文件已经存在,它的内容会被覆盖;
cat > newfile.txt 创建新文件,这个命令会让你在终端中输入内容,按下 Ctrl+D
结束输入后,输入的内容会被保存到 newfile.txt
文件中。
cat >> existing.txt 追加内容到现有文件,这个命令会让你在终端中输入内容,按下 Ctrl+D
结束输入后,输入的内容会被追加到 existingfile.txt
文件的末尾。
十四、 head指令(head -n 文件,查看文件前n行)
主要用于快速查看文件的前几行,而无需打开整个文件。这个命令对处理大型文件尤其有用,因为你可以快速查看文件的开头,而不必等待整个文件加载完成。
十五、tail指令(tail -n 文件,查看文件后n行)
与 head
命令类似,tail
主要用于快速查看文件的结尾部分,特别是在处理大型日志文件或其他不断增长的文件时非常有用。-n
:指定显示的行数。可以用 -n N
或 -n +M
形式,其中 N
是要显示的行数,+M
是从第 M
行开始显示。-c
:指定显示的字节数。-f
:实时跟踪文件的新增内容。用于动态查看文件变化,适合用于监控日志文件等。-q
:静默模式,抑制文件名的输出。通常与 -f
结合使用。-v
:显示文件名,即使只有一个文件时也显示文件名。
查看文件的最后10行(默认行为):显示 filename.txt
文件的最后10行。
实时跟踪多个文件:使用 -f
选项可以同时跟踪多个文件的新增内容。
从文件的第N行开始显示到文件结尾:使用 -n +M
形式可以从文件的第M行开始显示所有后续行。上面的命令会从第20行开始显示 filename.txt
文件的内容,直到文件结尾。
查看指定数量的行:使用 -n
选项可以指定显示的行数。
查看文件的最后N字节: 使用 -c
选项可使用 -f
选项可以实时跟踪文件的新增内容。这在查看日
实时跟踪文件的新增内容:文件或其他不断增长的文件时特别有用。命令会持续输出文件的新内容,直到用户中断(通常按 Ctrl+C
)。以指定显示的字节数。
十六、 more指令(显示文件内容,每次显示一屏幕;空格,继续显示;q,退出)
使用箭头键或空格键进行翻页:按空格键(Space
)翻到下一页;按 Enter
键逐行查看;按 b
键返回上一页;按 q
键退出 more
。
-d
:显示帮助提示而不是警告信息,适用于新手用户。
-c
:清屏显示文件内容,避免文件内容与终端显示混合。
-p
:清屏后显示内容,类似于 -c
,但不完全清屏。
十七、wc指令(文件统计【统计文件中的字数、行数和字符数等信息】)
wc:-l,统计行数;-w,统计单词数;-m,统计字符数(在某些系统中,-c
和 -m
的含义可能相同);-c,统计字节数。
十八、cp指令(复制+粘贴 cp 源文件 目标路径;cp 源文件 目标路径/新文件名字 )
-r
或 --recursive
:递归地复制目录及其内容。
-i
或 --interactive
:在覆盖文件时提示确认。
-u
或 --update
:只在源文件比目标文件新时复制。
-v
或 --verbose
:显示详细的复制过程。
十九、mv指令(剪切+粘贴 mv 源文件 目标路径;mv 源文件 目标路径/新文件名字 )
-i
或 --interactive
:在覆盖文件时提示确认。
-f
或 --force
:强制移动文件,不提示确认。如果目标文件已存在,则直接覆盖。
-u
或 --update
:只在源文件比目标文件新时移动。
-v
或 --verbose
:显示详细的移动过程。
二十、tar指令(归档 tar包)
创建归档文件:-c
:创建一个新的归档文件;-v
:显示归档过程中的详细信息(可选);-f
:指定归档文件的名称。
解包归档文件:-x
:解包归档文件;-v
:显示解包过程中的详细信息(可选);-f
:指定要解包的归档文件名称。
列出归档文件内容:-t
:列出归档文件中的内容。
创建压缩归档文件:-z
:通过 gzip 压缩归档文件,生成 .tar.gz
或 .tgz
文件。
解包压缩归档文件:tar -xzvf archive.tar.gz
创建 bzip2 压缩归档文件:-j
:通过 bzip2 压缩归档文件,生成 .tar.bz2
文件。
解包 bzip2 压缩归档文件:tar -xjvf archive.tar.bz2
创建 xz 压缩归档文件: -J
:通过 xz 压缩归档文件,生成 .tar.xz
文件。
解包 xz 压缩归档文件:tar -xJvf archive.tar.xz
- 在使用
tar
命令时,确保指定正确的选项以满足需要。 - 可以组合多个选项,比如
tar -czvf
来同时创建和压缩归档文件。
二十一、 压缩解压(*.tar.gz;gzip:-r,压缩;-d,解压)
gzip
用于压缩单个文件。
压缩文件:gzip file file
将被压缩为 file.gz
。
解压文件:gunzip file.gz file.gz
将被解压回 file
。
zip
和 unzip
是用于创建和解压 .zip
文件的工具,.zip
是一种流行的压缩格式。
压缩文件: zip archive.zip file1 file2 archive.zip
是新创建的压缩文件。
解压文件:unzip archive.zip archive.zip
将被解压到当前目录。
二十二、 管道(| 左边输入 右边输出)
- 管道 (
|
):管道符号 (|
) 用于将一个命令的标准输出(stdout)直接传递给下一个命令的标准输入(stdin)。
注意事项:
- 管道符的作用:管道符只将前一个命令的标准输出传递给下一个命令。如果前一个命令产生了错误(例如,命令失败),后续的命令可能不会执行。
- 处理大量数据:对于处理大量数据或复杂的命令组合,使用管道可以使操作更加高效和灵活。
- 性能考虑:有时候,管道链可能会影响性能,因为每个命令都需要处理数据并传递给下一个命令。
二十三、grep指令(以行为单位过滤)
主要功能
- 模式匹配:
grep
用于查找包含特定模式的行。模式可以是简单的字符串,也可以是正则表达式。 - 文件搜索:可以在一个或多个文件中进行搜索,如果不指定文件,
grep
会从标准输入读取数据。
常用选项
-i
:忽略大小写。例如,grep -i "pattern" file.txt
会匹配 "PATTERN" 和 "pattern"。-v
:反转匹配,显示不包含模式的行。例如,grep -v "pattern" file.txt
会显示不包含 "pattern" 的行。-r
或-R
:递归搜索目录中的文件。例如,grep -r "pattern" /path/to/dir
会在指定目录及其子目录中搜索。-n
:显示匹配行的行号。例如,grep -n "pattern" file.txt
会在结果中显示匹配行的行号。-l
:仅列出包含模式的文件名。例如,grep -l "pattern" *.txt
会列出所有包含 "pattern" 的.txt
文件。-c
:只显示匹配的行数。例如,grep -c "pattern" file.txt
会显示文件中匹配 "pattern" 的行数。
二十四、ps指令(ps:-e,所有进程; -f,进程详细信息;ps -ef | grep fig)
常用选项
-e
或-A
:显示所有进程。例如,ps -e
列出系统中的所有进程。-f
:以完整格式显示信息,包括进程的父进程 ID 和命令行。例如,ps -f
提供详细的进程信息。-u [user]
:显示指定用户的进程。例如,ps -u username
显示某个用户的所有进程。-p [pid]
:显示指定进程 ID 的信息。例如,ps -p 1234
显示进程 ID 为 1234 的进程信息。-aux
:显示所有用户的所有进程,并提供详细的信息。通常用作组合选项,如ps aux
。
二十五、kill指令(kill:杀死进程;-9 清理信息;ps -ef | grep bash,kill -9 进程号)
常用选项和信号
-l
:列出所有可用的信号及其名称。例如,kill -l
显示所有信号。-s [signal]
:指定要发送的信号。例如,kill -s SIGTERM 1234
发送SIGTERM
信号给进程 ID 为 1234 的进程。-9
:强制终止进程,相当于发送SIGKILL
信号。例如,kill -9 1234
强制终止进程 ID 为 1234 的进程。-15
:发送SIGTERM
信号,要求进程终止,进程可以进行清理操作。例如,kill -15 1234
发送SIGTERM
信号给进程 ID 为 1234 的进程。这个信号是默认信号,kill 1234
和kill -15 1234
功能相同。-HUP
:发送SIGHUP
信号,通常用于通知进程重新加载配置文件。例如,kill -HUP 1234
发送SIGHUP
信号给进程 ID 为 1234 的进程。
二十六、top指令(查看占用cpu内存最多的进程)
主要功能和选项
-
实时显示系统状态:
- 运行
top
命令后,会显示系统的当前状态,包括各个进程的 CPU 和内存使用情况。 - 界面中显示的内容包括:系统时间、系统运行时间、CPU 使用率、内存使用情况、交换空间使用情况、进程总数等。
- 运行
-
界面说明:
- 系统信息行:包括当前时间、系统运行时间、系统负载、当前用户数量等。
- CPU 行:显示 CPU 的使用情况,包括用户空间、系统空间、空闲等。
- 内存行:显示物理内存和交换空间的使用情况。
- 进程列表:列出当前所有进程及其使用的资源,包括进程 ID、用户、CPU 和内存使用率、进程状态等。
-
常用交互命令(在
top
界面中输入):h
:显示帮助信息。q
:退出top
界面。k
:杀死进程。需要输入进程 ID 和要发送的信号。r
:重新排序进程列表。可以通过指定字段进行排序。P
:按 CPU 使用率排序(默认设置)。M
:按内存使用率排序。N
:按进程 ID 排序。s
:设置更新间隔时间(单位为秒)。
-
常用选项:
-d [delay]
:设置屏幕更新的延迟时间。例如,top -d 5
每 5 秒更新一次。-n [number]
:设置显示的更新次数。例如,top -n 10
显示 10 次更新后退出。-b
:以批处理模式运行top
,适合将输出重定向到文件中。这个模式不会显示交互界面,只输出数据。
二十七、 which指令(which:where,查看执行文件路径)
which是一个用于查找命令的可执行文件路径的命令。它会显示在系统的 PATH
环境变量中匹配到的命令的完整路径。
查找命令路径: 输出可能是 /usr/bin/python
,显示 python
命令的完整路径。
查找多个命令路径:输出会显示 ls
和 gcc
的路径。
二十八、 链接
软链接: ln -s 源文件 链接文件;可以链接文件和文件夹;相当于创建了快捷方式;源文件删除,链接文件废弃。
硬链接:ln源文件 链接文件;不允许链接目录;改一个,其他链接同步更改;源文件删除,硬链接文件正常运行;相当于创建了一个新的文件,该文件和源文件保持同步。