Linux
常见目录说明
- /bin:存放二进制可执行文件(ls、cat、mkdir 等),常用命令一般都在这里;
- /sbin: 存放二进制可执行文件,只有 root 才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如
ifconfig
等; - /etc:存放系统管理和配置文件;
- /root:超级用户(系统管理员)的主目录;
- /home:存放所有用户文件的根目录,是用户主目录的基点,比如用户 user 的主目录就是 /home/user,可以用 ~user 表示;
- /dev:用于存放设备文件;
- /usr:用于存放系统应用程序;
- /lib 和/lib64:存放着和系统运行相关的库文件;
- /tmp:用于存放各种临时文件,是公用的临时文件存储点;
- /var:用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等)等;
- /opt:额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把 tomcat 等都安装到这里;
- /proc:虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息;
- /mnt:系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统;
- /boot:存放用于系统引导时使用的各种文件;
- /lost+found:这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows 下叫什么.chk)就在这里。
Linux 常用指令
文件和目录操作
ls 指令
作用:列出当前工作目录下的所有文件/文件夹的名称
用法:ls [选项] [目录]
ls -l 路径(ll
):以详细列表的形式展示指定路径下的所有文件/文件夹名称
cd 指令
作用:改变目录,进入用户输入的目录
用法:cd [目录]
示例:切换到 /usr/local
目录
cd /usr/local
mkdir 指令
作用: 创建目录
用法:mkdir [选项] 目录
mkdir -p
+ 路径
:当一次性创建多层不存在的目录的时候,添加 -p
参数
touch 指令
作用:创建文件
示例:在当前目录中创建一个名为 test.txt
的空文件
touch ./test.txt
cp 指令
作用:复制文件或目录
用法:cp [选项] 被复制的文档路径 文档被复制到的路径
示例:
1、复制文件
将当前目录的 test.txt 文件复制到上个工作目录中
cp ./test.txt ../test.txt
2、复制文件夹
利用 -r
参数,将当前工作目录的 test 文件夹复制到上一个工作目录下
cp -r ./test ../test
mv 指令
作用:移动文件或目录,也可以重命名文件或目录
用法:mv [选项] 源文件路径 需要保存的位置路径
注意:使用 mv 移动文件语法格式和移动文件夹相同,移动文件夹不需要加 -r
示例:
将当前目录中的 test.txt
文件移动到 /usr/local
目录中,并重命名为 new_test.txt
mv test.txt /usr/local/new_test.txt
rm 指令
作用:删除文件或目录
用法:rm [选项] 文件或目录
选项:
-f
:force,强制删除,否则会每个文件都询问是否删除
-r
:表示递归,移除文件夹的时候需要使用
示例:
删除当前目录中的 test.txt
文件
rm test.txt
删除指定目录及其内的全部子文件,一并都强制删除
rm -rf Dir
cat 指令
作用:
-
查看文件内容
-
对两个文件进行合并
用法:
cat 文件的路径
cat 待合并的文件路径1 待合并的文件路径2 …. 文件路径n > 合并之后的文件路径
示例:
查看当前目录中的 test.txt
文件的内容
cat test.txt
合并路径
cat ./test1.txt ./test2.txt > ./test3.txt
pwd 指令
作用:查看当前工作目录路径
用法:pwd
chmod 指令
作用: 修改文件权限
用法:chmod [选项] 权限 文件或目录
示例:
将当前目录中的 test.txt
文件的权限设置为只读
chmod 444 test.txt
系统信息和进程管理
uname 指令
作用:查看系统信息
用法:uname [选项]
示例:
查看系统的操作系统名称和版本
uname -a
top 指令
作用: 查看系统进程和资源占用情况
用法:top
ps 指令
作用: 查看当前用户进程
用法:ps [选项]
示例:查看当前用户的所有进程
ps -ef
kill 指令
作用:结束一个进程
用法:kill [选项] 进程号
示例:
结束进程号为 1234
的进程
kill 1234
shutdown 指令
作用:关机或重启系统
用法:shutdown [选项]
示例:
将系统立即关机
shutdown -h now
将系统立即重启
shutdown -r now
网络操作
ping 指令
作用:测试网络连接是否通畅
用法:ping [选项] 目标地址
示例:
测试目标地址 www.google.com
是否可达
ping www.google.com
ifconfig 指令
作用: 查看网络接口信息
用法:ifconfig [选项]
示例:
查看当前系统中所有网络接口的信息
ifconfig -a
netstat 指令
作用: 查看网络连接状态
用法:netstat [选项]
示例:
查看当前系统中所有网络连接的状态
netstat -a
wget 指令
作用: 下载文件
用法:wget [选项] URL
示例:
下载指定 URL 的文件并保存到当前目录中
wget https://example.com/file.zip
scp 指令
作用: 在不同的主机之间拷贝文件
用法:scp [选项] 源文件 目标主机:目标路径
示例:
将当前目录中的 test.txt
文件拷贝到远程主机 example.com
的 /home/user
目录中
scp test.txt user@example.com:/home/user
压缩和解压缩
tar 指令
作用: 压缩和解压缩文件和目录
用法:tar [选项] 文件或目录
示例:
将当前目录中的所有文件和目录压缩成一个名为 archive.tar
的文件
tar -cvf archive.tar *
gzip 指令
作用:压缩和解压缩文件
用法:gzip [选项] 文件
示例:
将当前目录中的 test.txt
文件压缩成一个名为 test.txt.gz
的压缩文件
gzip test.txt
unzip 指令
作用:解压缩 zip 文件
用法:unzip [选项] 文件.zip
示例:
解压缩名为 archive.zip
的文件
unzip archive.zip
其他
man 指令
作用: 查看指令的帮助手册
用法:man [指令]
示例:
查看 ls
命令的帮助手册
man ls
history 指令
作用: 查看历史命令
用法:history [选项]
示例:
查看当前用户执行过的所有命令历史记录
history
grep 指令
作用: 在文件中搜索指定字符串
用法:grep [选项] 字符串 文件
示例:
在当前目录中的所有文件中搜索包含字符串 example
的行
grep example *
输出重定向
作用:将一些命令的执行结果保存到文件中
用法:正常执行的指令 (> 或 >>) 文件的路径
>
:覆盖输出,会覆盖掉原先的文件内容>>
:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
示例:
使用覆盖重定向,将 ls -la
的执行结果,保存到当前目录下的 ls.txt
ls -la > ls.txt
使用追加重定向,将 ls -la
的执行结果追加到 ls.txt 中
ls -la >> ls.txt
df 指令
作用:查看磁盘的空间
用法:df -h
-h
:表示以可读性较高的形式展示大小
部署时可能会用到
free -h 指令
作用:用于显示系统的内存使用情况。
total used free shared buff/cache available
Mem: 7.8G 3.9G 1.1G 254M 2.8G 3.3G
Swap: 2.0G 1.2G 830M
total
: 系统内存总量。used
: 已使用的内存量。free
: 可用的空闲内存量。shared
: 被共享的内存量。buff/cache
: 用于缓冲区和缓存的内存量。available
: 系统可用的内存量,它包括空闲内存、缓冲区和缓存的内存。
nohup 指令
作用:用于在后台运行程序,并且不受终端关闭影响。它的作用是将程序的标准输出和标准错误输出重定向到一个名为 nohup.out
的文件中,这样即使终端关闭,程序仍然可以继续在后台运行。
例如:nohup java -jar /root/services/user-center-backend/target/user-center-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod &
java -jar /root/services/user-center-backend/target/user-center-0.0.1-SNAPSHOT.jar
: 这部分是运行 Java 应用程序的命令。java
是 Java 的运行命令,-jar
表示要运行的是一个可执行的 JAR 文件,后面紧跟着 JAR 文件的路径/root/services/user-center-backend/target/user-center-0.0.1-SNAPSHOT.jar
,这是一个 Java 可执行文件。--spring.profiles.active=prod
: 这部分是 Spring Boot 应用程序的参数,用于指定使用哪个配置文件。在这里,prod
是一个配置文件的名称,表示使用生产环境的配置。&
: 是 Linux 中的后台运行符号,它使得命令在后台运行,而不阻塞当前终端。这样可以让 Java 应用程序在后台持续运行,即使终端关闭也不会影响它。
综合起来,这行代码的作用是在 Linux 系统下以生产环境的配置运行一个 Java 应用程序,并将其放在后台持续运行,不受终端关闭的影响。
jobs 指令
作用:用于显示当前终端(shell会话)中正在运行或挂起的作业(进程)列表。
当你在终端中运行一个命令并在后台使用 &
运行时,该命令就成为一个作业。jobs
命令可以列出这些作业,以及它们的状态。
输出通常会显示每个作业的编号(Job ID)、状态、命令和作业编号(Process ID)等信息。作业状态可能有以下几种:
Running
: 作业正在前台或后台运行。Stopped
: 作业被挂起(暂停)。Done
: 作业已完成。
你可以使用fg
(foreground
)和bg
(background
)命令来控制作业的前台和后台运行。例如,使用fg
命令可以将一个后台作业切换到前台运行,而使用bg
命令可以将一个前台作业切换到后台运行。
如果要结束一个作业,可以使用kill
命令,加上作业的编号或进程编号。
请注意,jobs
命令只显示当前终端会话中的作业,如果你在另一个终端窗口中运行作业,则在当前终端中使用jobs
是看不到这些作业的。
netstat -ntlp 指令
作用:用于查看当前系统上的网络连接和监听端口信息。以下是该命令的解释:
netstat
: 是网络统计(network statistics)的缩写,用于显示网络连接信息和统计数据。-n
: 指定显示网络地址和端口号时不进行反向域名解析,以 IP 地址和端口号的形式显示,而不是域名和服务名。-t
: 仅显示 TCP 协议相关的网络连接信息。-l
: 仅显示监听状态(LISTEN)的网络连接信息,即显示系统正在监听的端口。-p
: 显示与网络连接相关的进程信息,包括进程的 PID(Process ID)和进程的名称。
执行netstat -ntlp
命令后,将会列出所有当前系统上正在监听的 TCP 端口,并显示与这些端口相关联的进程信息。这对于查看哪些服务正在监听哪些端口以及是否存在非常有用。例如,你可以通过这个命令来查看 Web 服务器(如 Apache、Nginx)是否正在监听 80 端口,或者数据库服务器(如 MySQL)是否正在监听 3306 端口。
jps 命令
jps
是 Java Virtual Machine Process Status Tool 的缩写,是 JDK(Java Development Kit)中的一个命令行工具。它用于列出当前系统上所有正在运行的 Java 进程的进程 ID(PID)和主类名称。
执行jps
命令后,将会显示当前系统上所有正在运行的 Java 进程的信息,包括它们的 PID 和对应的主类名称。通常用于在命令行中快速查看正在运行的 Java 进程,方便开发者进行进程管理和调试。
例如,执行jps
命令可能会输出类似以下的结果:
1234 MyApp
5678 AnotherApp
其中,1234
和5678
是 Java 进程的 PID,MyApp
和AnotherApp
是对应的 Java 主类名称。
df 指令
df -h
是一个常用的 Linux/Unix 命令,用于显示磁盘空间使用情况,并以易读的方式(以 KB、MB、GB 等单位)显示输出结果。
具体来说,df
表示 “disk free”,用于显示文件系统的磁盘空间信息。而 -h
选项表示 “human-readable”,使得输出结果以易读的方式呈现,比如使用 KB、MB、GB 等单位,而不是以字节为单位。
当你在终端中运行 df -h
命令时,它将显示所有挂载点的磁盘空间使用情况,包括总容量、已用空间、可用空间、使用百分比和挂载点等信息。这对于查看磁盘的使用情况很有帮助,可以帮助你了解哪些磁盘分区或挂载点占用了最多的空间。
vim 常用指令
作用:打开并进入一个文件(文件可以不存在,会自动创建)
用法:vim 文件的路径
示例:
打开进入当前目录下的 test.txt 文件
vim ./test.txt
移动光标
- h: 左移一个字符
- j: 下移一行
- k: 上移一行
- l: 右移一个字符
- ^: 移动到行首
- $: 移动到行尾
- gg: 移动到文档开头
- G: 移动到文档结尾
编辑文本
- i: 插入文本,光标会进入插入模式,可以输入文本
- a: 在光标后插入文本
- o: 在当前行的下一行插入新行,并进入插入模式
- dd: 删除当前行
- yy: 复制当前行
- p: 粘贴复制的文本
搜索和替换
搜索和替换
/pattern
: 向下搜索 pattern?pattern
: 向上搜索 patternn
: 下一个匹配项N
: 上一个匹配项:s/old/new/g
: 替换当前行中所有 old 为 new:%s/old/new/g
: 替换整个文档中所有 old 为 new
保存和退出
:w
: 保存当前文件:wq
: 保存并退出:q
: 退出(如果没有更改过文件内容):q
!: 强制退出,不保存更改
环境变量
进入环境变量文件
vim /etc/profile
修改完成后,用 source
命令使其生效
source /etc/profile