Linux运维新人自用笔记补充(alias、cp、mv、vim编辑器、校验文件唯一值、与Windows文件传输)

内容全为个人理解和自查资料梳理,欢迎各位大神指点!

每天学习较为零散。

一、alias命令

alias 核心功能​

​功能​ ​示例​ ​作用​
​简化长命令​ alias ll='ls -lh' 缩短频繁使用的命令
​添加默认参数​ alias grep='grep --color=auto' 自动启用颜色高亮
​防止误操作​ alias rm='rm -i' 删除前确认
​组合多个命令​ alias update='yum update && yum upgrade' 一键执行多个操作
#自定义别名
[root@626nmn a1]# alias rm='echo "确认删除吗 " ; rm -i'
[root@626nmn a1]# rm ip.txt 
确认删除吗 
rm: remove regular empty file ‘ip.txt’? n
[root@626nmn a1]# 

#恢复默认别名
[root@626nmn a1]# alias rm='rm -i'
[root@626nmn a1]# rm ip.txt 
rm: remove regular empty file ‘ip.txt’? n
[root@626nmn a1]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@626nmn a1]# 

#自定义  lg别名查看系统日志
[root@626nmn a1]# alias lg='ls /var/log'
[root@626nmn a1]# lg
anaconda  btmp   dmesg.old           lastlog   rhsm     tallylog              vmware-network.2.log    vmware-vmsvc.log
audit     cron   firewalld           maillog   secure   tuned                 vmware-network.log      wtmp
boot.log  dmesg  grubby_prune_debug  messages  spooler  vmware-network.1.log  vmware-vgauthsvc.log.0  yum.log

二、cp命令

cp [源文件] [目标]  复制文件或目录(默认不覆盖同名文件)

常用参数​

-i ​交互模式​​(覆盖前询问确认) cp -i file1.txt dir/
-f ​强制覆盖​​(不提示,直接覆盖) cp -f file1.txt file2.txt
-n ​不覆盖​​(跳过已存在的文件) cp -n file1.txt dir/
-r / -R ​递归复制​​(用于复制目录) cp -r dir1/ dir2/
-a ​归档模式​​(保留所有属性:权限、时间戳、符号链接等) cp -a dir1/ dir2/
-p ​保留权限和时间戳​​(但不保留符号链接) cp -p file1.txt file2.txt
-u ​增量复制​​(仅更新比目标文件新的文件) cp -u *.txt backup/
-v ​显示详细过程​​(输出复制操作信息) cp -v file1.txt dir/

高级用法​

-l ​硬链接复制​​(不占用额外空间,与原文件共享数据) cp -l file1.txt file2.txt
-s ​符号链接复制​​(创建指向源文件的软链接) cp -s file1.txt link_to_file1
--backup ​备份覆盖的文件​​(可配合 --suffix 自定义备份后缀) cp --backup=numbered file1.txt dir/
--parents ​保留源路径结构​​(将文件复制到目标目录的相同路径下) cp --parents dir1/file.txt dir2/ → dir2/dir1/file.txt

组合用法​

安全复制​ 交互式 + 保留属性 + 递归 cp -irp dir1/ dir2/
​增量备份​ 仅更新新文件 + 保留属性 + 显示过程 cp -uav src/ backup/
​强制覆盖​ 强制覆盖 + 显示过程 cp -fv *.txt backup/

目标位置存在同名文件​

​命令形式​ ​系统行为​ ​示例​
cp 源文件 目标文件 ​静默覆盖​​(直接替换,无警告) cp file.txt dir/file.txt
cp -i 源文件 目标文件 ​交互提示​​(询问是否覆盖) cp -i file.txt dir/file.txt
cp -n 源文件 目标文件 ​跳过不覆盖​​(保留原文件) cp -n file.txt dir/file.txt
cp -f 源文件 目标文件 ​强制覆盖​​(即使目标文件只读也会覆盖) cp -f file.txt dir/file.txt

​目标位置存在同名目录​

​命令形式​ ​系统行为​ ​示例​
cp 源文件 目标目录/ ​正常复制​​(文件放入目录内,不冲突) cp file.txt dir/
cp -r 源目录 目标目录 ​合并目录​​(将源目录内容合并到目标目录,同名文件按覆盖规则处理) cp -r dir1/ dir2/
cp -r 源目录 目标目录/ 同上(尾部斜杠不影响行为) cp -r dir1/ dir2/
cp -rT 源目录 目标目录 ​强制替换​​(清空目标目录后复制,需 GNU cp 支持) cp -rT dir1/ dir2/

​特殊情况处理​

​场景​ ​系统行为​ ​解决方案​
​目标文件只读 (-r--r--r--) 默认 cp 会失败(需 -f 强制覆盖) cp -f file.txt dir/file.txt
​源是目录但未用 -r 报错 omitting directory 必须加 -r 或 -a
​目标目录不存在​ 报错 target is not a directory 先创建目录:mkdir -p dir2/

安全操作建议​

​需求​ ​推荐命令​ ​作用​
避免误覆盖 alias cp='cp -i' 删除前询问
保留所有文件属性 cp -a 或 cp -p 包括权限、时间戳等
批量复制跳过已存在文件 cp -n src/* dest/ 防止覆盖
强制完全同步目录 rsync -a --delete src/ dest/ 目标与源完全一致(危险!)

三、mv命令

mv [源] [目标]   :移动文件或目录(默认覆盖同名文件)、重命名或移动文件/目录

常用参数​

-i ​交互模式​​(覆盖前询问确认) 防止误覆盖 mv -i file.txt dir/
-f ​强制覆盖​​(不提示,直接覆盖) 跳过确认,强制操作 mv -f file.txt dir/
-n ​不覆盖​​(跳过已存在的文件) 保护目标文件 mv -n file.txt dir/
-v ​显示详细过程​​(输出移动操作信息) 调试或记录操作 mv -v *.log backup/
-u ​增量移动​​(仅移动比目标新的文件) 用于同步更新 mv -u new_files/ old_files/

高级用法​

-b ​备份覆盖的文件​​(自动添加 ~ 后缀) 防止数据丢失 mv -b file.txt dir/ → 若 dir/file.txt 存在,备份为 dir/file.txt~
--suffix=后缀 自定义备份文件后缀(配合 -b 使用) 灵活控制备份名 mv -b --suffix=.bak file.txt dir/
-t 目标目录 ​指定目标目录​​(适用于移动多个文件) 批量移动文件到同一目录 mv -t dest/ file1.txt file2.txt
--strip-trailing-slashes 忽略源路径末尾的 /(防止目录误判) 处理路径歧义 mv --strip-trailing-slashes dir1/ dir2

特殊场景​

跨设备移动​ 实际行为是“复制+删除”(非原子操作) 跨磁盘分区移动文件 mv /mnt/disk1/file.txt /mnt/disk2/
​符号链接处理​ 默认移动链接本身(用 -L 移动链接指向的实际文件) 控制符号链接行为 mv -L symlink.txt dir/
​批量重命名​ 结合 for 或 rename 实现 批量修改文件名 for f in *.txt; do mv "$f" "${f%.txt}.log"; done

安全替代方案​

rsync 更安全的跨设备移动(支持断点续传和校验) 替代 mv 跨分区操作 rsync -a --remove-source-files src/ dest/
trash-cli 移动到回收站(防误删) 替代直接删除 trash-put file.txt

目标位置存在同名文件​

​命令形式​ ​系统行为​ ​示例​
mv 源文件 目标文件 ​静默覆盖​​(直接替换目标文件,无警告) mv file.txt dir/file.txt
mv -i 源文件 目标文件 ​交互提示​​(询问是否覆盖) mv -i file.txt dir/file.txt
mv -n 源文件 目标文件 ​跳过不覆盖​​(保留原文件) mv -n file.txt dir/file.txt
mv -f 源文件 目标文件 ​强制覆盖​​(即使目标文件只读也会覆盖) mv -f file.txt dir/file.txt
mv -b 源文件 目标文件 ​备份原文件​​(将目标文件重命名为 目标文件~ mv -b file.txt dir/ → 生成 dir/file.txt~

​目标位置存在同名目录​

​命令形式​ ​系统行为​ ​示例​
mv 源文件 目标目录/ ​正常移动​​(文件放入目录内,不冲突) mv file.txt dir/
mv 源目录 目标目录 ​合并目录​​(将源目录内容合并到目标目录,同名文件按覆盖规则处理) mv dir1/ dir2/
mv -T 源目录 目标目录 ​强制替换​​(清空目标目录后移动,需 GNU mv 支持) mv -T dir1/ dir2/

​特殊情况处理​

​场景​ ​系统行为​ ​解决方案​
​目标文件只读 (-r--r--r--) 默认 mv 会失败(需 -f 强制覆盖) mv -f file.txt dir/file.txt
​跨设备移动​ 实际行为是“复制+删除”(非原子操作) 使用 rsync 替代更安全
​符号链接处理​ 默认移动链接本身(用 -L 移动链接指向的实际文件) mv -L symlink.txt dir/

安全操作建议​

​需求​ ​推荐命令​ ​作用​
避免误覆盖 alias mv='mv -i' 移动前询问
保留被覆盖文件 mv -b 或 mv --backup=numbered 生成 file.txt~ 或 file.txt.~1~
批量跳过已存在文件 mv -n src/* dest/ 防止覆盖
完全替换目录 mv -T dir1/ dir2/ 清空 dir2 后移动 dir1 内容

四、vim编辑器

文件操作​

​命令​ ​功能​
vim 文件名 打开/创建文件
:w 保存文件
:wq 或 :x 保存并退出
:q! ​强制退出不保存​
:e 文件名 打开另一个文件

​光标移动​

​命令​ ​功能​
h j k l 左/下/上/右移动光标
w / b 跳到下一个/上一个单词
0 / $ 跳到行首/行尾
gg / G 跳到文件开头/结尾
50G    跳到第 50 行
dG 删除所有内容

​文本编辑​

​命令​ ​功能​
i / a 在光标前/后插入 (i=insert, a=append)
o / O 在当前行下方/上方插入新行
x 删除当前字符
dd 删除、剪切当前行    3dd剪切3行   
D D删除当前行、光标处以及后续内容
yy 复制当前行      3yy复制3行
p / P 粘贴到光标后/前
u / Ctrl+r 撤销/重做

​vim高级操作​

​搜索与替换​

​命令​ ​功能​
/关键词 向下搜索
?关键词 向上搜索
n / N 跳转到下一个/上一个匹配项
:%s/old/new/g  %全局替换 old 为 new 
:s/old/new/g 不加%单行替换
:10,20s/old/new/g 替换第 10-20 行的 old 为 new

多文件操作​

​命令​ ​功能​
:sp 文件名 水平分屏打开文件
:vsp 文件名 垂直分屏打开文件
Ctrl+w + 方向键 切换分屏
:ls 查看已打开的文件列表
:b 编号 切换到指定编号的文件

命令

显示行号
set number
关闭行号
set nonumber


粘贴模式(防止代码格式改变)
set paste 再按a
 

语法高亮
syntax on

Tab 转换为 4 空格
set tabstop=4
set shiftwidth=4
set expandtab

搜索实时高亮
set incsearch
set hlsearch

鼠标支持
set mouse=a

可视化操作

模式​ ​快捷键​ ​功能​ 示例场景
​字符可视化​ v 按字符选择(最常用) 选择单词、句子片段
​行可视化​ V 按整行选择 删除/复制多行代码
​块可视化​ Ctrl+v 按矩形区域选择(列编辑) 批量注释、多行对齐

 基础操作流程​

  1. 确定光标位置后,进入可视化模式​​:按 v / V / Ctrl+v
  2. ​移动光标​​:用 h/j/k/l 或 w/b/$ 等扩展选择范围
  3. ​执行操作​​:按编辑命令(如 d 删除、y 复制)
  4. ​退出​​:按 Esc 返回普通模式
命令​ ​功能​ 示例
d 删除选中文本 v + 选择 + d → 删除片段
y 复制选中文本 V + 选择行 + y → 复制行
c 删除并进入插入模式 Ctrl+v 选择列 + c → 批量修改
p 粘贴到选中区域(替换) 选中后 p 覆盖内容
u 将选中文本转为小写 v + 选择 + u
U 将选中文本转为大写 v + 选择 + U
~ 切换选中文本大小写 v + 选择 + ~
> / < 增加/减少缩进 V 选择行 + > → 缩进

列编辑(块可视化)​

​场景​​:批量注释多行代码

  1. 光标移动到首行开头
  2. Ctrl+v 进入块模式
  3. j 向下选择多行
  4. 大写I 输入 # +两次 Esc → 每行首插入 #

vim处理swp文件

Swap 文件的作用​

  • ​崩溃恢复​​:Vim 异常退出时,通过 .swp 恢复未保存的修改。
  • ​冲突检测​​:当多个 Vim 实例同时编辑同一文件时,提示用户处理冲突(自行退出即可)。
  • ​自动保存​​:默认每 200 次输入或 4 秒无操作后,自动保存到 .swp

Swap 文件的生成位置​

​场景​ ​路径规则​
默认位置 原文件同目录下的 .filename.swp
无写权限目录 ~/.vim/tmp/(需提前创建)
自定义目录 在 ~/.vimrc 中设置 set directory=~/.vim/swap//
#当非正常退出vim时系统自动生成.swp文件
[root@626nmn a1]# ll -a
total 16
drwxr-xr-x.  2 root root    62 May 18 18:51 .
dr-xr-xr-x. 19 root root   246 May 16 23:08 ..
-rw-r--r--.  1 root root     0 May 17 21:00 test_tar.gz
-rw-r--r--.  1 root root    10 May 18 17:13 test.txt
-rw-r--r--.  1 root root 12288 May 18 19:19 .test.txt.swp


#进入后出现以下提示
E325: ATTENTION
Found a swap file by the name ".test.txt.swp"
          owned by: root   dated: Sun May 18 19:19:20 2025
         file name: /a1/test.txt
          modified: YES
         user name: root   host name: 626nmn
        process ID: 9165
While opening file "test.txt"
             dated: Sun May 18 17:13:16 2025

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.
(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r test.txt"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file ".test.txt.swp"
    to avoid this message.

Swap file ".test.txt.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

选项说明​

​按键​ ​操作​ 适用场景
O ​只读打开​ 查看文件,不恢复修改
E ​直接编辑​​(忽略 swap) 确认其他实例已关闭
R ​从 swap 恢复​ 需要恢复未保存的更改
D ​删除 swap 文件​ 确认不需要恢复
Q ​退出​ 放弃操作
A ​中止​ 同 Q

#查看恢复内容后决定是否删除
[root@626nmn a1]# vim  -r .test.txt.swp

Using swap file ".test.txt.swp"
Original file "/a1/test.txt"
Recovery completed. You should check if everything is OK.
(You might want to write out this file under another name
and run diff with the original file to check for changes)
You may want to delete the .swp file now.

Press ENTER or type command to continue

按ENTER查看内容

1110.10.0.1
10.10.0.1
10.10.0.1
10.10.0.1
10.10.0.1
10.10.0.1
10.10.0.1
10.10.0.1


按R恢复未保存的修改
1110.10.0.1
10.10.0.1
10.10.0.1
10.10.0.1
10.10.0.1
10.10.0.1
10.10.0.1
10.10.0.1

#删除.swp文件
[root@626nmn a1]# rm -f .test.txt.swp 

#继续编辑即可
[root@626nmn a1]# vim test.txt 

五、Linux校验文件唯一值

工具​ ​算法​ ​输出长度​ ​典型用途​ ​示例命令​
md5sum MD5 32字符 快速校验(已不推荐用于安全场景) md5sum file.txt
sha1sum SHA-1 40字符 兼容旧系统(安全性较弱) sha1sum file.txt
sha256sum SHA-256 64字符 ​安全敏感场景​​(推荐) sha256sum file.txt
sha512sum SHA-512 128字符 更高安全性(但计算稍慢) sha512sum file.txt
cksum CRC32 变长 简单校验(不抗碰撞) cksum file.txt
b2sum BLAKE2 128字符 快速且安全(现代替代品) b2sum file.txt

#网站服务端提供了原文件MD5唯一值,用户下载的文件MD5与网站提供一样,表示文件下载正确
[root@626nmn date]# md5sum nginx-1.27.5.tar.gz 
ecb21eeb9a1586add94931389bc224bd  nginx-1.27.5.tar.gz

六、Linux和Windows文件传输

单个文件传输: lrzsz命令

#安装lrzsz
[root@626nmn date]# yum install lrzsz -y

#从Windows接收文件
[root@626nmn date]# rz     

#从Linux发送文件
[root@626nmn a1]# sz test.txt    

多个文件传输:xshell的xftp插件

 

你可能感兴趣的:(学习,linux)