linux基本命令操作

Linux命令基础知识

vim

  • i – 切换到输入模式,在光标当前位置开始输入文本。
  • x – 删除当前光标所在处的字符。
  • : – 切换到底线命令模式,以在最底一行输入命令。
  • a – 进入插入模式,在光标下一个位置开始输入文本。
  • o:在当前行的下方插入一个新行,并进入插入模式。
  • O – 在当前行的上方插入一个新行,并进入插入模式。
  • dd – 剪切当前行。
  • yy – 复制当前行。
  • p(小写) – 粘贴剪贴板内容到光标下方。
  • P(大写)-- 粘贴剪贴板内容到光标上方。
  • u – 撤销上一次操作。
  • Ctrl + r – 重做上一次撤销的操作。
  • :w – 保存文件。
  • :q – 退出 Vim 编辑器。
  • :q! – 强制退出Vim 编辑器,不保存修改。
  • 字符按键以及Shift组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END,移动光标到行首/行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式
  • :w:保存文件。
  • :q:退出 Vim 编辑器。
  • :wq:保存文件并退出 Vim 编辑器。
  • :q!:强制退出Vim编辑器,不保存修改。
  • s/old/new/ 将当前行中第一个出现的 old 替换为 new
  • s/old/new/g 替换当前行中所有匹配的内容
  • :%s/old/new/g 替换文件中所有匹配的内容
  • :1,10s/old/new/g 指定行范围进行替换,例如替换第 1 行到第 10 行
  • 0 移动到行首
  • $ 移动到行尾
  • gg 文件首
  • G 文件尾

mkdir

mkdir指令用于创建目录 基本语法:mkdir [选项] 要创建的目录

常用选项-p :创建多级目录

应用实例

案例1:创建一个目录 /home/dog

mkdir /home/dog

案例2:创建多级目录 /home/animal/tiger

mkdir-p /home/animal/tiger

remdir

基本语法

rmdir [选项] 要删除的空目录

应用实例 案例:删除一个目录 /home/dog

使用细节

rmdir 删除的是空目录,如果目录下有内容时无法删除的。

提示:如果需要删除非空目录,需要使用 rm-rf 要删除的目录

比如: rm-rf/home/animal

touch

touch 指令创建空文件

group

groupadd

创建一个GID的用户组

groupadd -g 1001 mygroup

创建一个系统组

groupadd -r myservicegroup

cp

cp 指令 拷贝文件到指定目录

基本语法

cp [选项] source dest

常用选项

-r :递归复制整个文件夹

案例1: 将 /home/hello.txt 拷贝到 /home/bbb 目录下

cp hello.txt /home/bbb

案例2: 递归复制整个文件夹,举例, 比如将 /home/bbb 整个目录, 拷贝到 /opt

cp-r /home/bbb /opt

强制覆盖不提示的方法:\cp ,\cp-r/home/bbb/opt

rm

rm 指令移除文件或目录

-r

-f

mv

mv 移动文件与目录或重命名

重命名

mv oldNameFile newNameFile

移动文件

mv/temp/movefile /targetFolder

cat

查看

cat > newfile.txt 创建一个新文件

输入内容后,按 Ctrl+D 结束输入,内容会被保存到 newfile.txt 文件中。

20250210210511675.png&pos_id=img-qC6gPuFt-1739620948340)

echo

echo 输出内容到控制台

head

head 用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容

tail

tail 用于输出文件中尾部的内容,默认情况下tail指令显示文件的前10行内容

tail -n 数字 显示最后数字行

实时跟踪文件更新

tail -f /var/log/syslog

> 指令 和 >> 指令

> 输出重定向和 >> 追加

  1. ls-l >文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))

  2. ls-al >>文件 (功能描述:列表的内容追加到文件aa.txt的末尾)

  3. cat 文件1> 文件2 (功能描述:将文件1的内容覆盖到文件2)

  4. echo “内容”>> 文件 (追加)

案例1: 将 /home 目录下的文件列表 写入到 /home/info.txt 中, 覆盖写入

ls-l /home > /home/info.txt [如果 info.txt 没有,则会创建]

案例2: 将当前日历信息 追加到 /home/mycal 文件中 指令为: cal>>/home/mycal

history

查看已经执行过历史命令,也可以执行历史指令

!+ 行数

date

  1. date (功能描述:显示当前时间)

  2. date +%Y(功能描述:显示当前年份)

  3. date +%m(功能描述:显示当前月份)

  4. date +%d (功能描述:显示当前是哪一天)

  5. date “+%Y-%m-%d %H:%M:%S”(功能描述:显示年月日时分秒)

cal

查看日历

find

find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

案例1: 按文件名:根据名称查找/home 目录下的hello.txt文件

find /home-name hello.txt

案例2:按拥有者:查找/opt目录下,用户名称为 nobody的文件

find /opt-user nobody

案例3:查找整个linux系统下大于200M的文件(+n 大于-n小于 n等于, 单位有 k,M,G)

find /-size +200M

  1. 按文件名搜索

    • -name:根据文件名搜索。

      bash复制

      find /path/to/search -name "*.txt"
      

      示例:查找 /home/user 目录下所有以 .txt 结尾的文件。

      bash复制

      find /home/user -name "*.txt"
      
  2. 按文件类型搜索

    • -type:根据文件类型搜索。

      • f:普通文件
      • d:目录
      • l:符号链接

      bash复制

      find /path/to/search -type d
      

      示例:查找 /home/user 目录下所有目录。

      bash复制

      find /home/user -type d
      
  3. 按修改时间搜索

    • -mtime:根据文件的修改时间搜索。

      bash复制

      find /path/to/search -mtime +N
      

      示例:查找 /home/user 目录下修改时间超过 7 天的文件。

      bash复制

      find /home/user -mtime +7
      
  4. 按文件大小搜索

    • -size:根据文件大小搜索。

      bash复制

      find /path/to/search -size +Nk
      

      示例:查找 /home/user 目录下大于 1MB 的文件。

      bash复制

      find /home/user -size +1M
      
  5. 按权限搜索

    • -perm:根据文件权限搜索。

      bash复制

      find /path/to/search -perm 755
      

      示例:查找 /home/user 目录下权限为 755 的文件。

      bash复制

      find /home/user -perm 755
      
  6. 限制搜索深度

    • -maxdepth:限制搜索的最大深度。

      bash复制

      find /path/to/search -maxdepth N
      

      示例:查找 /home/user 目录下当前目录和子目录中的 .txt 文件。

      bash复制

      find /home/user -maxdepth 2 -name "*.txt"
      

locate

locate 指令可以快速定位文件路径。

grep 和 管道符号 |

grep

grep [选项] 模式 [文件…]

  • -i:忽略大小写。

  • -v:反向匹配,显示不匹配的行。

  • -n:显示匹配行的行号。

  • -r-R:递归搜索目录中的所有文件。

  • -w:仅匹配完整的单词。

  • -E:使用扩展正则表达式。

  • -o:仅显示匹配的部分,而不是整行

  • 常见选项

    1. -i:忽略大小写

      bash复制

      grep -i "pattern" file.txt
      

      示例:在 file.txt 中搜索包含 “pattern” 的行,不区分大小写。

    2. -v:反向匹配,显示不包含指定模式的行

      bash复制

      grep -v "error" log.txt
      

      示例:从 log.txt 中筛选出不包含 “error” 的行。

    3. -w:匹配整个单词

      bash复制

      grep -w "apple" file.txt
      

      示例:只匹配完整的单词 “apple”,而不是 “pineapple” 或 “apples”。

    4. -r-R:递归搜索目录

      bash复制

      grep -r "pattern" /path/to/directory
      

      示例:在 /path/to/directory 目录及其子目录中递归搜索包含 “pattern” 的文件。

    5. -n:显示匹配行的行号

      bash复制

      grep -n "pattern" file.txt
      

      示例:在 file.txt 中搜索 “pattern”,并显示匹配行的行号。

    6. -c:统计匹配行的数量

      bash复制

      grep -c "pattern" file.txt
      

      示例:统计 file.txt 中包含 “pattern” 的行数。

    7. -o:只输出匹配的部分

      bash复制

      grep -o "pattern" file.txt
      

      示例:只输出 file.txt 中匹配 “pattern” 的部分,而不是整行。

    8. -E:使用扩展正则表达式

      bash复制

      grep -E "pattern1|pattern2" file.txt
      

      示例:使用扩展正则表达式匹配 “pattern1” 或 “pattern2”。

    9. -l:只列出包含匹配内容的文件名

      bash复制

      grep -l "pattern" file1.txt file2.txt
      

grep “hello” file.txt 查找 file.txt 中包含字符串 “hello” 的所有行

grep -n “hello” file.txt 显示行号

使用正则表达式

grep -E “^start.*end$” file.txt

使用扩展正则表达式匹配以 “start” 开头、以 “end” 结尾的行

正则表达式的使用

正则表达式是一种强大的模式匹配语言。它可以用来描述字符组合的模式,这些模式可以用来搜索、替换文本等。在grep中使用正则表达式可以大大提高搜索的灵活性和准确性。

一些常用的正则表达式符号包括:

^:匹配行的开始

$:匹配行的结束

.:匹配任意单个字符

[]:匹配括号内的任意字符

|:逻辑“或”操作****

:匹配前面的字符零次或多次

+:匹配前面的字符一次或多次

{}*:匹配前面的字符指定次

通道

command1 | command2

ls 的输出传递给 grep

ls -l | grep “file”

列出当前目录中的文件,并通过 grep 筛选出包含 “file” 的行

组合多个 grep 命令

cat file.txt | grep “hello” | grep -v “world”

先筛选出包含 “hello” 的行,再排除包含 “world” 的行

ps 的输出传递给 grep

ps aux | grep “nginx”

grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。

grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

格式 grep [选项] “搜索内容” 文件名

权限

ls-l 中显示的内容如下:

-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

0-9 位说明

第0位确定文件类型(d,-,l,c,b)

l 是链接,相当于windows的快捷方式

d 是目录,相当于windows的文件夹

c 是字符设备文件,鼠标,键盘

b 是块设备,比如硬盘

第1-3位确定所有者(该文件的所有者)拥有该文件的权限。—User 第4-6位确定所属组(同用户组的)拥有该文件的权限,—Group

第7-9位确定其他用户拥有该文件的权限—Othe

rwx

可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7, 数字可以进行组合

文件

  1. [r]代表可读(read): 可以读取,查看 限,才能删除该文件.

  2. [w]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权

  3. [x]代表可执行(execute):可以被执行

目录

  1. [r]代表可读(read): 可以读取,ls查看目录内容

  2. [w]代表可写(write): 可以修改, 对目录内创建+删除+重命名目录

  3. [x]代表可执行(execute):可以进入该目录

chmod

通过chmod指令,可以修改文件或者目录的权限

+ - =

421

chown

修改文件所有者

chown newowner 文件/目录 改变所有者

chown newowner:newgroup 文件/目录 改变所有者和所在组

-R 如果是目录 则使其下所有子文件或目录递归生

docker

Docker 网络

创建 Docker 网络

docker volume create my-data-volume

my-data-volume 是自定义的卷名称

查看 Docker 网络

docker network ls

删除指定网络

docker network rm my-network

创建容器卷、查看容器卷

创建 Docker 卷

docker volume create my-data-volume

my-data-volume 是自定义的卷名称

查看 Docker 卷

docker volume ls

查看卷的详细信息

docker volume inspect my-data-volume

删除 Docker 卷

docker volume rm my-data-volume

删除所有未使用的卷

docker volume prune

如果你需要同时删除一个网络和一个卷,可以将命令组合在一起

docker network rm my-network && docker volume rm my-data-volume

启动容器

启动 MySQL 容器

docker run --name mysql-container
–network my-network
-v my-data-volume:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=your_root_password
-p 3306:3306
–restart=always
-d mysql:latest

启动 Nginx 容器

docker run --name nginx-container
–network my-network
-v /your/local/nginx/html:/usr/share/nginx/html
-v /your/local/nginx/conf:/etc/nginx/conf.d
-p 80:80
–restart=always
-d nginx:latest

参数说明
  • --network my-network:将容器连接到指定的自定义网络。
  • -v my-data-volume:/var/lib/mysql:将 Docker 卷 my-data-volume 挂载到 MySQL 容器的 /var/lib/mysql 目录。
  • -v /your/local/nginx/html:/usr/share/nginx/html:将本地目录挂载到 Nginx 容器的静态文件目录。
  • -p 3306:3306-p 80:80:将容器端口映射到宿主机端口。
  • --restart=always:设置重启策略。
  • -d:后台运行容器。

重启策略

  • --restart=always:无论容器退出状态如何,Docker 都会自动重启容器。
  • 其他重启策略选项:
    • no:容器不会自动重启。
    • on-failure:仅在容器退出状态非 0 时自动重启。
    • unless-stopped:容器会自动重启,除非手动停止或 Docker 本身被停止。
    • always:无论退出状态如何,容器都会自动重启
查看所有正在运行的容器

docker ps

这个命令会列出当前正在运行的所有容器,包括容器的名称、ID、镜像、端口映射等信息

docker ps -a

添加 -a 参数可以显示所有容器,无论它们是否正在运行

停止一个正在运行的容器

docker stop <容器名称或ID>

停止所有正在运行的容器

docker stop $(docker ps -q)

docker ps -q 会列出所有正在运行的容器的 ID,docker stop` 会停止这些容器。

启动一个已停止的容器

docker start <容器名称或ID>

重启容器

docker restart <容器名称或ID>

查看容器运行日志,查看容器具体信息(inspect)

查看容器运行日志

docker logs mysql-container
docker logs nginx-container

查看容器具体信息(inspect)

docker inspect mysql-container
docker inspect nginx-container

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值