常用命令归档
以下是一些常用命令相关归档!如果你觉得不够完善请发送邮件和我联系!希望您在使用 Hestia 服务器管理面板时能提供部分帮助!
Nano文本编辑器使用指南
Nano文本编辑器使用指南
Nano是一个简单、易用且轻量级的文本编辑器,特别适合于Unix和Linux系统。以下是Nano的完整使用指南,包括常用命令、选项以及一些使用技巧。
常用命令
nano file_name
基本操作
- 打开文件:
nano filename.txt
- 获取帮助:
Ctrl + G
或F1
- 保存文件:
Ctrl + O
,然后按Enter
确认文件名 - 退出编辑器:
- 保存并退出:
Ctrl + X
然后按Y
确认保存 - 不保存并退出:
Ctrl + X
然后按N
- 保存并退出:
移动和编辑
- 向上移动一行:
Ctrl + P
- 向下移动一行:
Ctrl + N
- 向前移动一个字符:
Ctrl + F
- 向后移动一个字符:
Ctrl + B
- 移动到行首:
Ctrl + A
- 移动到行尾:
Ctrl + E
- 删除光标后的字符:
Ctrl + D
- 删除光标前的字符:
Ctrl + H
或Backspace
- 剪切一整行:
Ctrl + K
- 粘贴文本:
Ctrl + U
视图和导航
- 刷新屏幕:
Ctrl + L
- 查找文本:
Ctrl + W
,然后输入要查找的文本 - 替换文本:
Ctrl + \
,先输入被替换字符串,再输入替换字符串 - 上一页:
Ctrl + Y
- 下一页*:
Ctrl + V
- 跳转到指定行:
Ctrl + _
然后输入行号
高级功能
- 标记文本:
Ctrl + 6
或Alt + A
(开始标记),移动光标选择文本,然后按Ctrl + 6
取消标记 - 语法高亮开关:
Alt + Y
(再次按下切换状态) - 鼠标支持开关:启动Nano时添加
-m
参数或使用Alt + M
在编辑器内部切换
常用选项
在启动Nano时,可以通过命令行添加一些选项来自定义其行为:
- 只读模式查看文件:
nano -v filename.txt
- 禁用自动换行(编辑配置文件时推荐):
nano -w filename.txt
- 启用鼠标支持:
nano -m filename.txt
- 持续显示光标位置:
nano -c filename.txt
使用技巧
- 快速复制粘贴:剪切多行文本(多次按
Ctrl + K
),然后移动到目标位置并按Ctrl + U
粘贴。 - 查看光标位置:在Nano的底部状态栏会显示当前光标位置(行号和列号)。
- 编辑配置文件:使用
-w
选项禁用自动换行,以避免在编辑如/etc/fstab
等配置文件时引入不必要的换行符。
Nano是一个简单易学的文本编辑器,掌握上述命令和选项后,您将能够高效地完成各种文本编辑任务。
Vim文本编辑器使用指南
Vim使用指南
一、vi和vim介绍
vi和vim是两款常用的文本编辑器。vi是Unix系统中最早的文本编辑器之一,而vim则是vi的改进版本,提供了更多功能和更友好的用户界面。
二、vim的三种模式
vim file_name
1. 命令模式
- 功能:不能对文件直接编辑,只能通过快捷键进行一些操作,如移动光标、删除字符、复制粘贴等。
- 进入:打开vim后默认进入命令模式。
2. 末行模式
- 功能:可在末行输入一些命令对文件进行操作,如搜索、替换、保存、退出等。
- 进入:在命令模式下输入英文冒号
:
进入末行模式。
3. 编辑模式
- 功能:可对文件内容进行编辑。
- 进入:在命令模式下输入
i
、a
、o
等键进入编辑模式。
三、vim的进入和退出
进入
vim 文件路径
:直接打开指定文件。vim +数字 文件路径
:打开指定文件并将光标移动到指定行。vim +/关键词 文件路径
:打开指定文件并高亮显示关键词。vim 文件路径1 文件路径2 文件路径3
:可同时打开多个文件。
退出
:q
:不保存并退出。:wq
:保存并退出。:q!
:不保存修改并强制退出。
四、vim模式切换
切换到命令模式
- 默认进入vim即为命令模式。
- 从编辑模式或末行模式按
Esc
键切换到命令模式。
切换到末行模式
- 在命令模式下输入
:
进入末行模式。
切换到编辑模式
- 在命令模式下输入
i
、a
、o
等键进入编辑模式。
五、命令模式操作
光标移动
^
:移动到行首。$
:移动到行尾。gg
:移动到文件首行。G
:移动到文件尾行。数字G
:移动到指定行。ctrl+b
:向上翻屏。ctrl+f
:向下翻屏。
复制与粘贴
yy
:复制当前行。数字yy
:从当前行开始向下复制指定行。p
:粘贴复制的内容。
剪切/删除
dd
:剪切当前行。数字dd
:从当前行开始向下剪切指定行。D
:剪切光标后的内容,光标所在行不会上移。
撤销与恢复
:u
:撤销上一步操作。ctrl+r
:恢复撤销操作。
六、末行模式操作
保存与退出
:w
:保存当前文件。:wq
:保存当前文件并退出。:q!
:不保存修改并退出。
搜索/查找与替换
:/关键词
:按关键词查找。N/n
:移动到上/下一个查找结果。:s/搜索的内容/新内容
:替换光标所在行第一处被搜索到的内容。:%s/搜索的内容/新内容/g
:替换整个文件全部被搜索到的内容。
显示行号
:set nu
:显示行号。:set nonu
:取消行号显示。
七、编辑模式
在命令模式下输入i
、a
、o
等键进入编辑模式,可正常进行文本编辑。
八、vim功能模块
代码着色
:syntax on
:开启代码着色。:syntax off
:关闭代码着色。
简易计算器
- 在编辑模式下按
ctrl+r
然后输入=
,进入末行模式进行计算。
九、补充内容
vim的配置
- 临时配置:在末行模式下输入配置。
- 个人配置:编辑
~/.vimrc
文件,对当前用户永久生效。 - 全局配置:编辑
/etc/vim/vimrc
文件,对所有用户永久生效。
异常退出
- 异常退出会产生交换文件,需删除后方可正常打开文件。
别名机制
- 依靠别名映射文件(如
~/.bashrc
)来执行自定义指令。
退出方式
- 建议使用
:x
代替:q
和:wq
,
查看文件内容
cat file_name
less file_name
more file_name
cd 命令的完整系列和用法示例
cd 命令在 Unix 和 Linux 系统中用于改变当前工作目录。以下是一些 cd 命令的完整系列和用法示例
- 切换到用户的主目录:
cd
或者
cd ~
- 切换到指定的绝对路径:
cd /path/to/directory
- 切换到指定的相对路径(相对于当前目录):
cd path/to/directory
- 切换到上级目录:
cd ..
- 连续切换到多级上级目录:
cd ../../
- 切换到当前用户的家目录下的某个子目录(例如,
.bashrc
所在的目录):
cd ~/.bashrc_directory
注意:这里的 .bashrc_directory
只是一个示例,你需要替换为实际的目录名。 7. 使用变量切换到目录(假设你已经设置了一个变量指向某个目录):
DIR="/path/to/some/directory"
cd "$DIR"
- 在脚本中切换目录:注意,在脚本中切换目录只会影响脚本内部的当前工作目录,不会影响脚本外部的当前工作目录。
- 在 Windows 系统中使用
cd
(如果你在使用如 Git Bash 或 Cygwin 这样的工具):
- 切换到驱动器(例如,从 C: 切换到 D:):
cd /d D:
- 切换到 D: 驱动器的某个目录:
cd /d D:\path\to\directory
- 处理包含空格的路径:当路径中包含空格时,你需要使用引号将路径括起来。
cd "path with spaces/to/directory"
- 注意大小写:在大多数 Unix 和 Linux 系统中,文件名是区分大小写的,因此
cd Directory
和cd directory
可能会指向不同的目录(如果存在的话)。但在cd
命令本身中,大小写是不敏感的,即CD
和cd
是等效的。 - 使用通配符:虽然不常见,但在某些情况下,你可能想使用通配符(如
*
)来匹配目录名。但请注意,这可能会导致不可预测的结果,特别是当匹配多个目录时。 - 使用
-
参数返回上一个工作目录:
cd -
这会切换到你之前所在的目录。
chmod 命令的一些常见用法
以下是 chmod 命令的一些常见用法
符号模式
使用符号(u
, g
, o
, a
)来表示用户、组、其他用户以及所有用户,并使用操作符(+
, -
, =
)来添加、删除或设置权限。
- 给文件所有者添加执行权限:
chmod u+x filename
- 移除组用户的写权限:
chmod g-w filename
- 设置其他用户的权限为只读:
chmod o=r filename
- 同时设置所有用户的权限为读和写(没有执行权限):
chmod a=rw filename
八进制模式
使用三位八进制数字来设置权限,每位数字分别代表文件所有者、组和其他用户的权限。
- 设置权限为 755(所有者有读写执行权限,组和其他用户有读和执行权限):
chmod 755 filename
- 设置权限为 644(所有者有读写权限,组和其他用户只有读权限):
chmod 644 filename
- 设置目录权限为 775(所有用户都有读写执行权限,但其他用户没有写权限):
chmod 775 directoryname
递归更改目录及其内容的权限
使用 -R
选项来递归地更改目录及其所有子目录和文件的权限。
- 递归地将目录及其内容的权限设置为 755:
chmod -R 755 directoryname
更改特殊权限(setuid, setgid, sticky bit)
这些不是标准的读、写、执行权限,但可以在某些情况下非常有用。
- 设置 setuid 位(使得文件执行时以文件所有者的身份运行):
chmod u+s filename
或者使用八进制表示法(设置所有者执行权限和 setuid 位):
chmod 4755 filename
- 设置 setgid 位(使得在目录中创建的新文件继承该目录的组):
chmod g+s directoryname
或者使用八进制表示法(设置组执行权限和 setgid 位):
chmod 2755 directoryname
- 设置 sticky bit(仅允许文件所有者删除或重命名目录中的文件):
chmod o+t directoryname
或者使用八进制表示法(设置其他用户执行权限和 sticky bit):
chmod 1755 directoryname
(注意:在实际使用中,sticky bit 通常与 755 权限一起使用,即 chmod 1755 directoryname
。)
chmod更改文件或目录权限
chmod permissions file_or_directory
chmod 755 file_or_directory
chown new_owner file_or_directory
chgrp new_group file_or_directory
解压 .tar.gz .zip 命令
tar -xvf file.tar
tar -xzvf file.tar.gz
gzip -dc file.tar.gz | tar -xvf -
tar -xjvf file.tar.bz2
unzip file.zip
tar -tvf file.tar
tar -tzvf file.tar.gz
unzip -l file.zip
find搜索文件
find 命令在 Unix 和 Linux 系统中用于在目录树中搜索文件,并可以对找到的文件执行指定的操作。以下是一些 find 命令的示例,展示了其不同的用法和功能
1. 查找当前目录及其子目录下所有的 .txt
文件:
find . -name "*.txt"
2. 查找 /home/user
目录下所有在过去 7 天内修改过的文件:
find /home/user -mtime -7
3. 查找 /etc
目录下所有以 .conf
结尾且权限为 644 的文件:
find /etc -name "*.conf" -perm 644
4. 查找 /var/log
目录下大于 10MB 的日志文件,并删除它们:
find /var/log -type f -size +10M -exec rm {} \;
或者使用 +
符号来一次处理多个文件,提高效率:
find /var/log -type f -size +10M -exec rm {} +
5. 查找 /usr/bin
目录下所有的可执行文件,并将它们复制到 /tmp
目录:
find /usr/bin -type f -executable -exec cp {} /tmp/ \;
6. 查找 /home/user
目录下所有的空文件并删除它们:
find /home/user -type f -empty -exec rm {} \;
7. 查找 /var/www
目录下所有的 .php
文件,并列出它们的修改时间:
find /var/www -name "*.php" -exec ls -l {} \;
或者使用 -printf
选项格式化输出:
find /var/www -name "*.php" -printf "%p %TY-%Tm-%Td %TH:%TM\n"
8. 查找 /home
目录下所有的隐藏文件(以 .
开头的文件):
find /home -name ".*"
注意:这也会匹配到目录,因为目录在 Unix 系统中也是文件。如果你只想匹配隐藏文件而不是目录,可以添加 -type f
选项。
9. 查找 /opt
目录下所有的符号链接:
find /opt -type l
10. 结合 xargs
命令处理大量文件(例如,使用 grep
搜索多个文件中的文本):
find /path/to/search -type f -name "*.log" -print0 | xargs -0 grep "pattern_to_search_for"
这里使用 -print0
和 xargs -0
是为了正确处理文件名中包含空格、换行符等特殊字符的情况。
文件管理
cp source_file destination_file
cp -r source_directory destination_directory
mv source_file_or_directory destination_file_or_directory
rm file_name
rm -r directory_name
mkdir directory_name
ls
ls -l
find /path/to/search -name file_name
服务器相关命令
clear
ip addr show | grep inet
或
hostname -I
或
ip add
df -h
free -h
uname -a
或
lsb_release -a
ps aux
或
top
ufw status
ufw allow <port>/<tcp|udp>
ufw allow 80/tcp
更新系统
apt update && apt upgrade -y
apt update
apt upgrade
apt full-upgrade
apt install package-name
apt remove package-name
Nginx
systemctl restart nginx
systemctl start nginx
systemctl stop nginx
systemctl status nginx
nginx -t
Apache2
systemctl restart apache2
systemctl start apache2
systemctl stop apache2
systemctl status apache2
apachectl configtest
MySQL、PostgreSQL、Oracle、SQL Server等数据库系列命令
数据库系列命令因不同的数据库管理系统(DBMS)而异,但以下是一些常见数据库管理系统(如 MySQL、PostgreSQL、Oracle、SQL Server 等)中的通用或相似命令。请注意,这些命令可能需要根据具体的DBMS版本和配置进行调整。
1. 连接数据库
- MySQL:bash
mysql -u 用户名 -p密码
- PostgreSQL:bash
psql -U 用户名 -d 数据库名
- SQL Server: 通常使用 SQL Server Management Studio (SSMS) 或其他工具连接,但也可以使用命令行工具如
sqlcmd
。
2. 显示所有数据库
- MySQL:sql
SHOW DATABASES;
- PostgreSQL:sql
\l
- Oracle: 在 SQL*Plus 或 SQL Developer 中没有直接的命令,但可以通过查询数据字典视图来获取。
- SQL Server: 在 SSMS 中可以直接从对象资源管理器查看,或使用以下查询:sql
SELECT name FROM sys.databases;
3. 选择数据库
- MySQL:sql
USE 数据库名;
- PostgreSQL: 在命令行中,可以通过指定
-d 数据库名
参数来连接特定的数据库。在已连接的会话中,可以使用\c 数据库名
。 - Oracle: 在 SQL*Plus 或 SQL Developer 中,可以通过连接到特定的服务名或SID来选择数据库。
- SQL Server: 在 SSMS 中可以直接从对象资源管理器选择,或使用
USE 数据库名;
(但 SQL Server 不支持这条命令,这是 MySQL 的语法)。
4. 创建数据库
- MySQL:sql
CREATE DATABASE 数据库名;
- PostgreSQL:sql或者在 SQL 中使用:
createdb 数据库名
sqlCREATE DATABASE 数据库名;
- Oracle: 在 SQL*Plus 或 SQL Developer 中,通常使用数据库管理工具来创建数据库,而不是 SQL 命令。但可以通过执行创建表空间、用户等命令来准备数据库环境。
- SQL Server: 在 SSMS 中可以直接从对象资源管理器创建,或使用以下 SQL 命令:sql
CREATE DATABASE 数据库名;
5. 删除数据库
- MySQL:sql
DROP DATABASE 数据库名;
- PostgreSQL:bash或者在 SQL 中使用:
dropdb 数据库名
sqlDROP DATABASE 数据库名;
- Oracle: 通常不直接删除整个数据库,而是删除表空间、用户等数据库对象。
- SQL Server: 在 SSMS 中可以直接从对象资源管理器删除,或使用以下 SQL 命令:sql
DROP DATABASE 数据库名;
当涉及到数据库的备份和恢复时,不同的数据库管理系统(DBMS)提供了各自的命令和工具。以下是一些常见DBMS的备份和恢复命令示例。
6.备份和恢复
备份
使用 mysqldump
命令备份数据库:
mysqldump -u 用户名 -p密码 数据库名 > 备份文件名.sql
例如:
mysqldump -uroot -p123456 mydatabase > mydatabase_backup.sql
恢复
使用 mysql
命令恢复数据库:
mysql -u 用户名 -p密码 数据库名 < 备份文件名.sql
例如,如果备份文件包含创建数据库的语句,可以直接使用:
mysql -uroot -p123456 < mydatabase_backup.sql
如果备份文件不包含创建数据库的语句,并且数据库已经存在,则需要指定数据库名:
mysql -uroot -p123456 mydatabase < mydatabase_data_backup.sql
PostgreSQL
备份
使用 pg_dump
命令备份数据库:
pg_dump -U 用户名 -d 数据库名 -f 备份文件名.sql
例如:
pg_dump -U postgres -d mydatabase -f mydatabase_backup.sql
恢复
使用 psql
命令恢复数据库:
psql -U 用户名 -d 数据库名 -f 备份文件名.sql
或者,如果要从备份中创建一个新数据库,可以使用 -c
选项和 CREATE DATABASE
命令结合 pg_restore
:
createdb newdatabase
pg_restore -U 用户名 -d newdatabase 备份文件名.sql
但请注意,.sql
文件通常直接使用 psql
恢复。
Oracle
Oracle 通常使用 RMAN (Recovery Manager) 工具进行备份和恢复。这里不提供具体的命令,因为 RMAN 的使用相对复杂,需要参考 Oracle 官方文档。
SQL Server
备份
使用 SQL Server Management Studio (SSMS) 或 T-SQL 命令进行备份。例如,使用 T-SQL:
BACKUP DATABASE 数据库名 TO DISK = 'D:\Backups\数据库名_backup.bak' WITH INIT;
恢复
同样,可以使用 SSMS 或 T-SQL 命令进行恢复。例如,使用 T-SQL:
RESTORE DATABASE 数据库名 FROM DISK = 'D:\Backups\数据库名_backup.bak' WITH MOVE '数据库名_Data' TO 'D:\SQLData\数据库名.mdf', MOVE '数据库名_Log' TO 'D:\SQLData\数据库名.ldf';
请注意,上述命令中的路径和数据库名需要根据你的实际环境进行替换。此外,恢复数据库时可能还需要考虑其他选项,如数据库的状态、恢复模式等。因此,在生产环境中执行备份和恢复操作时,请务必仔细阅读相关文档并谨慎操作。
常见的下载命令和工具
下载系列命令通常依赖于你使用的操作系统和下载工具。
使用wget命令(Linux/macOS)
wget
是一个常用的命令行下载工具,可以在Linux和macOS系统上使用。
直接下载文件:
wget http://example.com/file.zip
后台下载:
wget -b http://example.com/file.zip
恢复中断的下载:
如果下载过程中断,可以使用 -c
选项恢复下载:
wget -c http://example.com/file.zip
从密码保护的FTP站点下载:
wget --ftp-user=username --ftp-password=password ftp://example.com/file.zip
使用curl命令(Linux/macOS)
curl
是另一个强大的命令行工具,也可以用来下载文件。
直接下载文件:
curl -O http://example.com/file.zip
或者保存为指定名称:
curl -o outputfilename.zip http://example.com/file.zip
使用apt-get(Debian/Ubuntu系列)
如果你想要下载并安装软件包,而不是单个文件,可以使用 apt-get
命令(针对基于Debian的系统如Ubuntu)。
安装软件包:
sudo apt-get install package_name
更新软件包列表:
sudo apt-get update
升级已安装的软件包:
sudo apt-get upgrade
使用yum或dnf(Red Hat系列)
对于基于Red Hat的系统(如CentOS、Fedora),你可以使用 yum
或 dnf
(在较新版本的Fedora和CentOS Stream中)。
安装软件包:
使用 yum
:
sudo yum install package_name
使用 dnf
:
sudo dnf install package_name
更新软件包列表:
使用 yum
:
sudo yum check-update
或
sudo yum update
使用 dnf
:
sudo dnf check-update
或
sudo dnf update
使用snap(跨平台)
snap
是一个跨平台的软件包管理系统,可以在不同的Linux发行版上使用。
安装软件包:
sudo snap install package_name
请注意,上述命令中的 package_name
需要替换为你想要下载或安装的实际软件包或文件的名称。同时,确保你有适当的权限(如使用 sudo
)来执行这些命令。
日志查看系列命令
日志查看系列命令取决于你正在使用的操作系统和日志管理工具。以下是一些常见的日志查看命令和工具:
Linux/Unix 系统
1. cat
命令
查看整个日志文件的内容:
cat /var/log/syslog
2. less
命令
分页查看日志文件内容,可以通过上下箭头键浏览,按 q
键退出:
less /var/log/syslog
3. tail
命令
查看日志文件的最后几行内容(默认是最后10行):
tail /var/log/syslog
查看最后20行内容:
tail -n 20 /var/log/syslog
实时跟踪日志文件的新增内容(类似于 tail -f
):
tail -f /var/log/syslog
4. grep
命令
搜索日志文件中包含特定关键词的行:
grep "error" /var/log/syslog
结合 tail
命令实时搜索:
tail -f /var/log/syslog | grep "error"
5. journalctl
命令(systemd 系统)
查看 systemd 日志:
journalctl
搜索包含特定关键词的 systemd 日志:
journalctl | grep "error"
查看特定服务的日志(例如 sshd):
journalctl -u sshd
Windows 系统
1. 事件查看器(Event Viewer)
Windows 提供了图形界面的事件查看器来查看系统日志、应用程序日志等。可以通过运行 eventvwr.msc
命令来打开事件查看器。
2. PowerShell
使用 PowerShell 命令也可以查看 Windows 日志。例如,查看应用程序日志:
Get-EventLog -LogName Application
搜索包含特定关键词的日志条目:
Get-EventLog -LogName Application | Where-Object {$_.Message -like "*error*"}
其他工具
除了上述命令行工具外,还有一些专门的日志查看和分析工具,如 logrotate
(用于日志文件轮转)、logwatch
(用于生成日志摘要报告)等。这些工具通常提供更高级的功能和配置选项,适用于需要更精细控制日志管理的场景。
当涉及到数据库、Apache、Nginx以及其他常用服务的日志查看时,以下是一些常用的命令和工具
数据库日志查看
MySQL
MySQL 的错误日志通常位于 /var/log/mysql/error.log
(具体路径可能因安装和配置而异)。
使用 cat
、less
或 tail
命令查看:
cat /var/log/mysql/error.log
less /var/log/mysql/error.log
tail -f /var/log/mysql/error.log
PostgreSQL
PostgreSQL 的日志位置取决于配置,但通常可以在 postgresql.conf
文件中找到。
使用 cat
、less
或 tail
命令查看:
cat /var/log/postgresql/postgresql-X.X-main.log # X.X 是版本号
less /var/log/postgresql/postgresql-X.X-main.log
tail -f /var/log/postgresql/postgresql-X.X-main.log
Apache 日志查看
Apache 的访问日志和错误日志通常位于 /var/log/apache2/
或 /var/log/httpd/
目录下(具体取决于发行版和配置)。
查看访问日志:
cat /var/log/apache2/access.log
less /var/log/apache2/access.log
tail -f /var/log/apache2/access.log
查看错误日志:
cat /var/log/apache2/error.log
less /var/log/apache2/error.log
tail -f /var/log/apache2/error.log
Nginx 日志查看
Nginx 的访问日志和错误日志位置取决于配置,但通常可以在 nginx.conf
或相关站点的配置文件中找到。
查看访问日志:
cat /var/log/nginx/access.log
less /var/log/nginx/access.log
tail -f /var/log/nginx/access.log
查看错误日志:
cat /var/log/nginx/error.log
less /var/log/nginx/error.log
tail -f /var/log/nginx/error.log
其他常用日志查看命令
- 使用
grep
搜索日志:结合cat
、less
或tail
命令,使用grep
可以搜索日志文件中的特定关键词或模式。
grep "error" /var/log/syslog
tail -f /var/log/syslog | grep "error"
使用
awk
、sed
进行日志分析:这些工具可以对日志文件进行更复杂的处理和分析。日志轮转:使用
logrotate
工具可以自动轮转、压缩、删除和邮件日志文件,以保持系统日志的整洁和可管理性。专门的日志分析工具:如 ELK Stack(Elasticsearch、Logstash、Kibana)可以提供更强大的日志收集、存储、搜索和分析功能。
请注意,具体的日志文件和路径可能因系统配置和发行版而异。如果无法找到日志文件,请检查相关服务的配置文件或咨询特定发行版的文档。