AcWing-《Linux基础课》笔记

Linux基础课笔记

1. 常用文件管理命令

Linux系统文件不分盘存储

基本文件概念

  1. 路径:绝对路径开头是 /,相对路径则不是

  2. . 当前目录, .. 上层目录

  3. ~/ : 家目录, / :根目录

常用命令及操作

  1. Ctrl + C:结束命令或进程(命令清空并换行输入下一个命令,进程终止)

  2. Ctrl + U:清空本行命令并重新输入当前行命令

  3. Tab:补全命令,文件,只有一个选项直接补全,单击直接补全,有多个选项,双击列出所有选项

  4. :弹出上一条命令

  5. ls:查看当前文件夹所有内容

    1. -limage-20210903141437831 d表示是文件夹,4096是大小(字节)
    2. -hl,人性化输出image-20210903141609248 此处用k作单位输出(命令带h都有人性化输出的意思)
    3. -a,以.开头的文件都是隐藏文件,此命令输出当前目录所有的文件(包含隐藏文件)
    4. -A,不显示当前目录及上层目录,即显示文件中没有 "." 和 ". ."
  6. pwd:查看当前在哪个目录下

  7. cd(change directory):后跟文件路径,进入目标文件夹,不加任何参数则返回家目录,后跟 -,返回上一个待过的目录

  8. cp

    1. cp a/tmp.txt b(tmp2.txt),将a中tmp.txt文件复制到b中,(重命名为tmp2.txt)
    2. cp a b -r,将整个文件夹a,复制到文件夹b中
    3. cp a c -r,直接复制文件夹a重命名为c
  9. mkdir:输入:mkdir + 文件路径,创建文件夹

    1. 连续创建文件夹,mkdir a/b/c -p(文件存在则不报错,不存在就创建)
    2. mkdir --help or -h,显示命令行帮助
  10. rm:输入 rm file1 file2,删除多个文件, rm dir1 -r,删除dir1文件夹,rm -f 删除所有文件(包括受保护的)

  11. touch:创建一个文件

  12. mv:输入 mv XXX YYY,将XXX文件移动到YYY,XXX和YYY相同或更改文件名则产生重命名的效果

  13. cat:查看文件里的内容

作业完成情况

2.tmux和vim

tmux

作用:分屏、进程不会因为断开链接而中断(在云端执行)

结构tmux->session->pane:一个tmux可以开多个session,一个session可以开多个window,一个window可以开多个pane,一个pane开一个shell

操作

  1. 新建一个session,其中包含一个window,window包含一个pane,一个pane打开了一个shell对话框

  2. Ctrl + a后松开再按%,将当前pane左右平分成两个pane(原版为Ctrl + b)

  3. Ctrl + a后松开再按",将当前pane上下平分成两个pane

  4. Ctrl + d,关闭当前pane;如果当前window的所有pane都关闭则关闭window;如果session所有window都关闭,自动关闭session

  5. 鼠标点击可以选中目标pane

  6. Ctrl + a后松开再按方向键,可以切换到相邻的pane

  7. 鼠标拖动pane之间的分割线,可以调整分割线位置

  8. 按住Ctrl + a同时按方向键,也能调整分割线的位置

  9. Ctrl + a后松开再按z,可以全屏,再按一次取消全屏

  10. Ctrl + a后松开再按d,退出session

  11. tmux a:打开刚才挂起的session

  12. 先按Ctrl + a松开再按s

    1. 方向键上下,选择session
    2. 方向键,合上选项
    3. 方向键,展开选项
  13. 先按Ctrl + a松开再按c,在当前session中创建一个新的window

  14. 先按Ctrl + a松开再按w,选择其他window,方法和第12的相同

  15. 先按Ctrl + a松开再按PageUp,翻阅当前pane内的内容

  16. 按住Shift进行选中,Ctrl + insert复制,Shift + insert粘贴

vim

功能

1. 命令行模式下的文本编辑器
2. 使用文件扩展名自动判断编程语言。支持代码缩进、代码高亮等功能
3. 使用方式:vim filename
  	1. 有该文件,则打开
  	2. 无该文件,则新建并打开这个文件

模式

一般命令模式

​ 默认模式,命令输入方式:按不同字符,即可进行不同操作。可以复制、粘贴、删除文本等

编辑模式

​ 一般命令模式里按 i,进入编辑模式

​ 按下ESC退出编辑模式,进入一般命令模式

命令行模式

​ 一般命令模式下按: / ?三个字母中的任意一个,会进入命令模式。命令行在最下面。

​ 可以查找、替换、保存、退出、配置编辑器等。

操作

  1. i:进入编辑模式
  2. ESC:进入一般命令模式
  3. h 或 左箭头键:光标向左移动一个字符
  4. j 或 下箭头键:光标向下移动一个字符
  5. k 或 上箭头键:光标向上移动一个字符
  6. l 或 右箭头键:光标向右移动一个字符
  7. n<Space>:n表示数字,按下数字再按功空格,光标向右移动这一行的n个字符
  8. 0 或 Home:光标移动到本行开头
  9. $ 或 End:光标移动到本行末尾
  10. G:光标移动到最后一行
  11. :n 或 nG:其中n为数字,光标移动到第n行
  12. gg:光标移动到第一行 ,相当于1G
  13. n<Enter>:n为数字,光标向下移动n行
  14. /word:向光标之下寻找第一个值为word的字符串
  15. ?word:向光标之上寻找第一个值为word的字符串
  16. n:重复前一个查找操作
  17. N:反向重复前一个查找操作
  18. :n1,n2s/word1/word2/g:其中n1和n2位数字,在n1行与n2行之间寻找word1这个字符串,并将该字符串替换为word2
  19. :1,$s/word1/word2/g:将全文word1替换为word2
  20. 1,$s/word1/word2/gc:与前者相似,但在替换前需要用户确认
  21. v:选中文本
  22. d:删除选中的文本
  23. dd:删除当前行(剪切)
  24. y:复制选中的文本
  25. yy:复制当前行
  26. p:将复制的数据在光标的下一个位置粘贴
  27. u:撤销
  28. Ctrl + r:取消撤销
  29. Shift + >:将选中的文本整体向右移动
  30. Shift + <:将选中的文本整体向左移动
  31. :w:保存
  32. :w!:强制保存
  33. :q:退出
  34. :q!:强制退出
  35. :wq:保存并退出
  36. :set paste:设置成粘贴模式,取消代码自动缩进
  37. :set nopaste:取消粘贴模式,开启代码自动缩进
  38. :set nu:显示行号
  39. :set nonu:隐藏行号
  40. gg=G:将全文格式化
  41. :noh:关闭查找关键词高亮
  42. Ctrl + q:当vim卡死,可以取消当前执行的命令

异常处理

每次用vim编辑文件时,自动创建一个.finename.swp的临时文件

如果打开某个文件,该文件swp文件已经存在,会报错,此时有两种解决方法:

1. 找到正在打开该文件的程序,并退出
2. 直接删掉该swp文件即可

Shell

注释

# XXX 单行注释
:<<EOF(或其他字符)
多行注释1
多行注释2
多行注释3
EOF

变量

定义变量

变量首先被定义成字符串,再使用时会进行自动转换

name1='roshin'	# 可以加单引号
name2="roshin"	# 可以加双引号
name3=roshin	# 可以不加引号

使用变量

$可以类比为取值符号

{}帮助识别变量的边界,否则第三个echo会输出nameyyds这个变量的值

name=roshin
echo $name # out:roshin
echo ${name} # out:roshin
echo ${name}yyds # out:roshinyyds

只读变量

关键字:readonly declare

name=roshin
readonly name
declare -r name
name=abc # 有报错,因为常量只读无法修改

删除变量

unset 删除变量

name=roshin
unset roshin
echo $name	# out:(无输出)

变量类型

1.自定义变量(局部变量)子进程不能访问的变量

2.环境变量(全局变量) 子进程可以访问的变量

# 自定义变量换为环境变量
name=roshin
export name	# 第一种方法
declare -x name # 第二种方法
# 环境变量变为自定义变量
declare +x name

字符串

字符串用不用单双引号都可以

单引号与双引号的区别:

​ 单引号中的内容会原样输出、不会执行、不会去变量

​ 双引号中的内容可以执行,可以取变量

获取字符串长度
name=roshin
echo ${#name} # out:6
提取子字符串
name=roshin
echo ${name:0:5} # out:roshi

默认变量

文件参数变量

执行shell脚本时,可以向脚本传递参数,$1是第一个参数,$2是第二个参数,$0是文件名(含路径)

echo $0		
echo $1
echo $2

其他参数相关变量

部分参数
posted @ 2021-11-14 23:13  Roshin  阅读(413)  评论(0编辑  收藏  举报
-->