Linux指令(参数补全)
关于
记录一些有用容易忘记的指令和文件以及参数补全
常用指令
SCP
scp
(Secure Copy)是一个用于在本地系统和远程系统之间进行安全文件传输的命令行工具。它基于SSH协议,可以在不同的系统之间复制文件和目录。
以下是一些常用的 scp
命令示例:
-
从本地系统复制文件到远程系统:
scp /path/to/local/file user@remote:/path/to/destination/
-
从远程系统复制文件到本地系统:
scp user@remote:/path/to/remote/file /path/to/destination/
-
复制整个目录及其内容到远程系统:
scp -r /path/to/local/directory user@remote:/path/to/destination/
-
复制整个目录及其内容到本地系统:
scp -r user@remote:/path/to/remote/directory /path/to/destination/
-
指定端口号进行复制:
scp -P port /path/to/local/file user@remote:/path/to/destination/
请注意,在示例命令中,user
是远程系统上的用户名,remote
是远程系统的主机名或IP地址。你需要将这些值替换为实际的用户名和主机名/IP地址。
Docker
以下是一些常用的Docker指令:
-
docker inspect <image>
查看一个镜像的信息 -
docker run
:创建和运行一个新的容器。 -
docker start
:启动已停止的容器。- 例如:
docker start my_container
将启动名为"my_container"的容器。
- 例如:
-
docker stop
:停止正在运行的容器。- 例如:
docker stop my_container
将停止名为"my_container"的容器。
- 例如:
-
docker rm
:删除一个或多个容器。 -
docker ps
:列出当前正在运行的容器。 -
docker images
:列出本地存储的镜像。 -
docker pull
:从Docker镜像仓库中拉取镜像。 -
docker push
:将本地镜像推送到Docker镜像仓库。 -
docker exec
:在正在运行的容器中执行命令。- 例如:
docker exec -it my_container bash
将在名为"my_container"的容器中打开一个交互式终端。
- 例如:
-
docker build
:根据Dockerfile构建镜像。- 例如:
docker build -t my_image .
将使用当前目录下的Dockerfile文件构建名为"my_image"的镜像。
- 例如:
以下是一些与卷、网络和构建缓存相关的Docker指令:
-
查看卷:
docker volume ls
:列出所有的卷。docker volume inspect <volume_name>
:查看特定卷的详细信息。
-
查看网络:
docker network ls
:列出所有的网络。docker network inspect <network_name>
:查看特定网络的详细信息。
-
丢弃不使用的容器:
docker container prune
:删除所有停止的容器。docker container prune -f
:强制删除所有停止的容器,无需确认。
-
丢弃不使用的镜像:
docker image prune
:删除所有未被标记的镜像(没有关联的容器)。docker image prune -a
:删除所有未被使用的镜像,包括未被标记的和已停止的容器使用的镜像。
-
丢弃不使用的网络:
docker network prune
:删除所有未被使用的网络。
-
清理构建缓存:
docker builder prune
:删除所有未使用的构建缓存。
请注意,在执行这些命令之前,请确保你了解它们的作用,并根据需要进行确认。删除操作是不可逆的,因此在进行任何删除操作之前,请确保你不再需要相关资源。
以下是Docker中创建网络、指定IP地址和设置DNS的相关命令:
- 创建网络:
docker network create <network_name>
:创建一个新的用户定义网络。
- 在网络中创建指定的IP地址:
docker network create --subnet=<subnet> --gateway=<gateway> --ip-range=<ip_range> -o "com.docker.network.bridge.name"="<interface>" <network_name>
++创建一个具有指定IP范围、网关和子网掩码的网络,并将宿主机网络接口与该网络关联。++<subnet>
:子网掩码,例如"172.18.0.0/16"。<gateway>
:网关IP地址,例如"172.18.0.1"。<ip_range>
:分配给容器的IP地址范围,例如"172.18.0.0/24"。<interface>
:宿主机网络接口名称,例如"eth0"。<network_name>
:要创建的网络名称。
设置DNS服务器:
- 在创建网络时,可以使用
--dns
选项来指定DNS服务器的地址:docker network create --dns=<dns_server_ip> <network_name>
要在Docker中将网络设置为桥接(Bridge)或主机(Host)模式,可以使用以下命令:
- 创建桥接网络:
docker network create --driver=bridge <network_name>
- 创建主机网络:
docker network create --driver=host <network_name>
请注意,选择适当的网络模式取决于你的应用需求和配置。在桥接模式下,Docker会为每个容器创建一个虚拟网络接口,并使用NAT(Network Address Translation)进行主机和容器之间的通信。而在主机模式下,容器与主机共享网络命名空间,直接使用主机的网络栈。
Docker-compose
以下是 Docker Compose 常用的指令:
-
docker-compose up
:启动应用程序的容器。它会根据配置文件创建和启动容器,并将它们连接到定义的网络。如果没有指定服务名称,则会启动所有的服务。 -
docker-compose up -d
:以后台模式启动应用程序的容器。 -
docker-compose down
:停止并移除应用程序的容器、网络和卷。 -
docker-compose ps
:显示应用程序的容器状态。 -
docker-compose logs
:查看应用程序的容器日志。 -
docker-compose exec <service> <command>
:在运行中的容器中执行命令。 -
docker-compose build
:构建应用程序的容器镜像。 -
docker-compose pull
:拉取最新的容器镜像。 -
docker-compose restart <service>
:重启指定的服务。 -
docker-compose stop <service>
:停止指定的服务。 -
docker-compose start <service>
:启动指定的服务。 -
docker-compose scale <service>=<num>
:扩展特定服务的容器数量。 -
docker-compose pause <service>
:暂停指定的服务。 -
docker-compose unpause <service>
:取消暂停指定的服务。 -
docker-compose rm <service>
:移除指定的服务容器。 -
docker-compose config
:验证并显示配置文件的语法。
NGINX
以下是Nginx的常用命令和选项。请注意,某些命令可能需要以root权限或sudo来执行。
nginx -s signal # 向Nginx主进程发送信号
stop # 快速停止Nginx服务
quit # 优雅地停止Nginx服务
reload # 重新加载配置文件
reopen # 重新打开日志文件
nginx -t # 检查Nginx配置文件语法是否正确
nginx -v # 查看Nginx版本信息
nginx -V # 显示Nginx版本信息及编译参数
nginx -h # 查看帮助信息
常用的Nginx命令:
- 启动Nginx服务:
sudo service nginx start
- 停止Nginx服务:
sudo service nginx stop
- 重新加载配置文件:
sudo service nginx reload
- 检查配置文件语法是否正确:
sudo nginx -t
- 查看Nginx版本信息:
nginx -v
- 查看Nginx的运行状态:
sudo service nginx status
一些较为冷门的Nginx命令:
- 打开Nginx进程的调试日志:
sudo nginx -g "daemon off; master_process on; error_log /var/log/nginx/error.log debug;"
- 修改Nginx工作进程数:可以通过编辑Nginx配置文件中的
worker_processes
指令来更改Nginx工作进程的数量。 - 向Nginx发送信号控制命令:例如,通过向Nginx主进程发送
SIGUSR1
信号,可以重新打开日志文件,而不需要重启Nginx服务。
Redis
以下是一些常用的Redis操作命令,可以帮助你与Redis进行交互:
-
连接到Redis服务器:
redis-cli
-
键值对操作:
- 设置键值对:
SET key value
- 获取键对应的值:
GET key
- 删除指定的键值对:
DEL key
- 设置键值对:
-
列表操作:
- 向列表尾部添加元素:
RPUSH key element
- 获取列表长度:
LLEN key
- 获取指定范围内的元素:
LRANGE key start end
- 弹出并返回列表头部的元素:
LPOP key
- 向列表尾部添加元素:
-
哈希操作:
- 设置哈希字段及其值:
HSET key field value
- 获取哈希字段对应的值:
HGET key field
- 获取整个哈希的所有字段和值:
HGETALL key
- 删除指定的哈希字段:
HDEL key field
- 设置哈希字段及其值:
-
集合操作:
- 添加一个或多个元素到集合中:
SADD key member [member ...]
- 获取集合中的所有成员:
SMEMBERS key
- 判断元素是否存在于集合中:
SISMEMBER key member
- 从集合中移除一个或多个元素:
SREM key member [member ...]
- 添加一个或多个元素到集合中:
-
有序集合操作:
- 添加一个带有分数的成员到有序集合中:
ZADD key score member
- 按分数范围获取有序集合中的成员:
ZRANGEBYSCORE key min max
- 计算有序集合中的成员个数:
ZCARD key
- 移除有序集合中的一个或多个成员:
ZREM key member [member ...]
- 添加一个带有分数的成员到有序集合中:
这只是Redis操作命令的一小部分。Redis还提供了更多功能丰富的命令,如发布订阅、事务处理等。你可以查阅Redis官方文档以获取完整的命令列表和详细的命令说明。
关于常用的文件
要在Linux系统中添加一个HTTP代理,可以按照以下步骤进行操作:
-
打开终端并使用root权限或sudo执行以下命令来编辑
/etc/environment
文件:sudo nano /etc/environment
-
在打开的文件中,在末尾添加以下行(替换
proxy.example.com
和8080
为你的代理服务器地址和端口):http_proxy=http://proxy.example.com:8080/ https_proxy=http://proxy.example.com:8080/ ftp_proxy=http://proxy.example.com:8080/ no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
-
保存文件并关闭编辑器。
-
重新加载环境变量,以使更改生效:
source /etc/environment
-
现在,你的系统已经配置了HTTP代理。可以通过运行
echo $http_proxy
来验证代理设置是否正确。
请注意,这种方法会为整个系统添加HTTP代理设置,并将影响所有网络连接。如果你只想为特定用户或进程设置代理,请考虑使用相应的用户或进程级别配置。
忘记密码
1.开机按e建进入引导文件
2.在 linux /boot/vmlinuz-3.4.0 键入”e”进入编辑模式,在句末加上”init=/bin/bash”
3.按ctrl-x
4.按“b”启动系统。
这样我们即可获得一个bash的shell。
查看用户名: # cd /etc
cat hostname
然后修改密码:
进入shell后,根分区的挂载模式默认是只读,我们要将其改为可写,否则不能更改root密码:
mount -no remount,rw /
passwd root
sync
mount -no remount,ro /
reboot //如果在虚拟机上没有反应,手动重启
Linux系统级常用命令
Tree
以下是常用的 tree
命令的参数列表:
-a
:显示所有文件和目录,包括隐藏文件。-d
:只显示目录。-f
:在每个文件或目录之前显示完整的相对路径。-L level
:限制显示的层级深度,只显示指定层级的文件和目录。-I pattern
:排除匹配指定模式的文件或目录。-P pattern
:只显示匹配指定模式的文件或目录。-s
:以文件大小的顺序显示文件和目录。-t
:以修改时间的顺序显示文件和目录。-u
:以访问时间的顺序显示文件和目录。-r
:以相反的顺序显示文件和目录。-h
:以人类可读的格式显示文件大小。-D
:显示上次修改时间而不是默认的日期时间格式。-F
:在文件和目录之后添加符号表示。-i
:显示文件和目录的编号。-n
:在输出中不进行排序。-p
:以可打印字符的形式显示非打印字符。-q
:使用引号引起文件和目录名。-R
:递归地显示所有子目录。-x
:以行的形式显示文件和目录,而不是以树状结构显示。