linux基础指令学习笔记
⚠️本篇博客只是我刚学习linux指令时的笔记,只用来自己记录
Linux 系统指令
目录
文件基础操作
核心指令
文件管理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| ls ls -l ls -a cd ~ pwd cat file cp src.txt dest/ cp -R dir/ dest/ mv old.txt new.txt mkdir project rmdir empty_dir rm -rf temp/
touch "file name.txt" ls file\ name.txt
|
内容处理
1 2 3 4 5
| wc -l access.log diff file1 file2 head -n 20 log.txt tail -f service.log grep "error" *.log
|
权限管理
1 2 3 4 5
| -rw-r--r-- 1 user group 4096 Jan 1 00:00 file.txt
|
权限修改
1 2 3 4
| chmod u+x script.sh chmod go-w secret.txt chmod 755 executable chomd 600 id_rsa
|
shell脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
| #!/bin/bash
VAR="Hello World" echo "变量内容:$VAR"
read -p "请输入你的名字:" name echo "你好,$name!"
echo "执行脚本名:$0" echo "第一个参数:$1" echo "参数个数:$#" echo "所有参数:$@"
if [ $# -eq 0 ]; then echo "错误:缺少参数!" elif [ -d "$1" ]; then echo "$1 是目录" elif [ -f "$1" ]; then echo "$1 是普通文件" else echo "未知文件类型" fi
[ -n "$name" ] && echo "你输入了名字:$name" || echo "未输入名字"
for i in {1..5}; do echo "for 循环:$i" done
count=1 while [ $count -le 3 ]; do echo "while 循环:$count" count=$((count + 1)) done
if [ -f "input.txt" ]; then while read -r line; do echo "处理内容:$line" done < input.txt else echo "文件 input.txt 不存在,跳过读取" fi
sum=$((3 + 5)) mul=$(expr 3 \* 5) mod=$(expr 10 % 3) div=$(echo "scale=2; 3/7" | bc)
echo "整数求和:$sum" echo "乘法结果:$mul" echo "取模结果:$mod" echo "浮点除法结果:$div"
1. 字符比较 - 相等:[ "$str1" = "$str2" ] - 不等:[ "$str1" != "$str2" ] - 空字符串:[ -z "$str" ] - 非空字符串:[ -n "$str" ] - 字典顺序比较:[ "$str1" \> "$str2" ] 或 [[ "$str1" > "$str2" ]]
2. 数字比较 - 相等:[ "$num1" -eq "$num2" ] - 不等:[ "$num1" -ne "$num2" ] - 大于:[ "$num1" -gt "$num2" ] - 小于:[ "$num1" -lt "$num2" ] - 大于或等于:[ "$num1" -ge "$num2" ] - 小于或等于:[ "$num1" -le "$num2" ]
3. 简化数字比较 使用 (( )) 比较数字: - 相等:(( num1 == num2 )) - 大于:(( num1 > num2 )) - 小于:(( num1 < num2 ))
greet() { echo "欢迎,$1!" } greet "Shell 学习者"
echo "当前时间:$(date "+%Y-%m-%d %H:%M:%S")"
|
vim 基础
进入/退出编辑模式
- 按
i
进入编辑模式,ESC
退出编辑模式,返回命令模式。
- 在命令模式下:
移动光标
HJKL
在命令模式下分别表示:
w
按单词向前移动光标,b
反向移动
- Ctrl + F (Foreword) 向下翻页 (
PageDown
)
- Ctrl + B (Backwards) 向上翻页 (
PageUp
)
数字 + gg
跳转到指定行
数字 + j/k
跳转多行
/关键词
搜索关键字,n
下一个,Shift + N
上一个
复制、剪切、粘贴
cc
剪切一行(可加数字,如 c2c
剪切两行)
yy
复制当前行
p
粘贴
- 在命令模式下:
撤销 & 恢复
u
撤销(Undo)
Ctrl + R
恢复撤销的操作(Redo)
代码缩进
窗口 & 标签管理
:tabnew [文件]
新建标签页
:tabc
关闭当前标签
:tabo
关闭其他所有标签
:tabs
查看所有打开的标签
:tabp / :tabn
切换前/后一个标签
- 标准模式下:
R
刷新 NerdTree
窗口对齐
zz
让光标所在行位于屏幕中间
zt
让光标所在行置顶
zb
让光标所在行置底
Ctrl + E
向下滚动一行
Ctrl + Y
向上滚动一行
Vim 配置
- 在命令模式下输入:
:syntax on
开启代码高亮
:set number
显示行号
- 全局生效:编辑
~/.vimrc
文件,添加:
syntax on
set number
g++编译
默认编译: g++ [选项] -o 生成文件名 源文件.cpp
如果不加 -o 选项,默认会生成 a.out
使用c++11标准: g++ -std=c++11 file.cpp
插件管理
安装Vim-Plug(插件管理器):
1 2
| curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
安装插件: 在 ~/.vimrc 添加
1 2 3 4 5
| call plug#begin('~/.vim/plugged') Plug 'preservim/nerdtree' Plug 'junegunn/fzf' call plug#end()
|
插件指令:
1 2 3 4 5 6
| :PlugInstall :PlugUpdate :PlugUpgrade :PlugClean :PlugStatus :PlugDiff
|