Linux基础命令(上)

编辑模式

  • i 当前字符的前一个字符
  • I 进入到首个字符进行编辑
  • a 当前字符的后一个字符进行编辑
  • A 进入当前的行尾进行编辑

末行模式

命令英文功能
:wwrite保存
:qquit退出,如果没有保存是不允许退出的
:q!quit强制退出
:wqwrite&quit保存并退出
:x保存并退出

重复次数

  • 先输入一个数字在输入复制的命令也可以是其他命令,表示重复执行这个命令多少次

移动和选择

  • h 左边移动
  • j 向下移动
  • k 向上移动
  • l 向右移动

行内移动

  • w 向右边移动一个单词
  • b 向左边移动一个单词
  • 0 表示移动到行首
  • ^ 移动到第一个不是空白字符的位置
  • $ 移动到行尾
  • 举一反三:向后移动三个单词 3w

行数的移动

命令英文功能
gggo文件顶部
Ggo文件末尾
数字gggo移动到对应数字的行
数字Ggo移动对应数字的行数
:数字移动到对应数字的行数

屏幕移动

命令英文功能
Ctrl+bback向上翻页
Ctrl+fforward向下翻页
HHead屏幕顶部
MMiddle屏幕中间
LLow屏幕底部

段落的移动

命令功能
{上一段落
}下一段落

括号切换

命令功能
%匹配成对的[] {} ()

标记

  • 在开发的时候,某一块代码可能需要稍后处理,例如编辑查看
  • 此时使用m增加一个标记,这样就会快速的找到指定的位置
  • 标记名称可以使az或者AZ中的任意一个字母
  • 添加了标记行的代码被删除后,标记也会被删除
  • 如果在其他行添加了相同的标记,之前添加的标记就会被替换掉

标记

命令英文功能
mXmark添加标记x,x是az或者AZ之间的任意一个字母
'X直接定位到X标记所在的位置

选中文本

命令英文功能
v可视模式从光标位置开始按照正常的模式选择文本
V可视模式选中光标经过的完整行
Ctrl+v可视化模块垂直方向选中文本

撤销和恢复撤销

命令英文功能
uundo撤销上次命令
Ctrl+rredo恢复撤销命令

删除文本

命令英文功能
xcut删除光标所在字符,或选中文字
d(移动命令)delete删除移动命令对应的内容
dddelete删除光标所在的行
Ddelete删除至行尾

举一反三:

dw    #从光标的位置向后删除一个单词
d0    #从光标的位置删除到行首
d}    #删除这一段到段尾
ndd   # 从光标的位置向下连续删n行
d代码行G # 从光标所在的行删除到指定的代码行
d'a  # 从光标所在位置删除至标记a之间所有的代码

替换

r replace 替换当前这个字符
R replace 替换光标后面的字符

查找

/python 查找所有Python的字符串
n: 查找下一个
N:查找上一个

替换

全局替换
:%s/旧文本/新文本/g
可视区块替换
?/旧文本/新文本/g

确认替换

:%s/旧文本/新文本/gc
//执行命令的时候会提示是否需要替换这个旧文本
  • y yes
  • n no
  • a all
  • q quit
  • l last 最后一个,并把光标移动到行首
  • ^E 向下滚屏
  • ^Y 向上滚屏

插入命令

在vi的操作中有6种编辑模式需要我们来掌握

命令英文功能常用
iinsert在当前字符的前插入文本
Iinsert在行首插入文本
aappend在当前字符后添加文本
Aappend在行末添加文本信息
o在当前行后面插入空白行
O在当前行的上面添加空白行

编辑命令和数字的连用

例如在开发中需要输入100个*号,如果一个个输入,那就太麻烦了

  1. 输入100,表示需要重复输入10次
  2. 输入i进入编辑模式
  3. 输入*也就是重复的文字
  4. 按下Esc返回到吗吗,命令模式,返回后vi就会把之前2,3步的操作执行99遍

这也就提示我们在编辑之前千万不要按数字

对多行代码添加注释

在python中如果要注释代码需要在行首添加一个#

在开发过程中,我们经常需要给多行进行注释步骤如下:

  1. 在命令模式下使用0进入行首
  2. 按住Ctrl+V进入可视化模块
  3. 使用HJKL左下上右进行选择需要注释的行
  4. 使用I 注意是大写的进入编辑模式
  5. 给其中一行添加注释
  6. 使用Esc命令返回命令模式,就会自动注释选中的行了

末行命令扩展

命令英文功能
:e .edit打开内置的文件浏览器,浏览当前目录下的文件
:n 文件名new新建文件
:w 文件名write另存为,但是任然编辑的是当前文件

拷贝和移动文件

序号|命令|对应的英文|作用
01|tree[目录名]|tree|以树状图列出目录结构
02|cp 源文件 目标文件|copy 复制文件或者目录
mv|mv 源文件 目标文件|move|移动文件或者目录

cp 是复制文件的命令,是将文件或者目录复制到另外一个目录中去

选项|含义
-f|已经存在的目标文件直接覆盖
-i|覆盖文件前会提示
-r|若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须是一个目录名

rm 命令

使用rm删除文件不能恢复

rm -f 强制 忽略不存在的文件,无需提示
rm -r 递归删除目录下的文件删除文件夹时必须添加此参数

查看命令

  1. cat命令 查看内容比较少的文件,会一次性展示所有的内容
    • -b 对非空行输出编号
    • -n 对所有的行输出编号
  2. more more命令可以用于显示内容,每次只显示一页的内容
    • 空格 显示下一屏
    • Enter 一次滚动手册页的一行
    • b 回滚一屏
    • f 前滚一屏
    • q 退出
    • /word 搜索相关的字符串

grep命令

使用grep对文件进行搜索,模式查找
hb u b u n t u   : g r e p − n b i a o g e h e l l o . p y / / 显 示 包 含 b i a o g e 的 行 , 显 示 行 号 h b ubuntu~: grep -n biaoge hello.py //显示包含biaoge的行,显示行号 hb ubuntu :grepnbiaogehello.py//biaogehbubuntu~: grep -i biaoge hello.py //显示包含biaoge的行,忽略大小写

hb$ubuntu~: grep -v biaoge hello.py //显示不包含biaoge的行

两种独特的模式查找
^a 行首,搜索以a开头的行
ke$ 行尾以ke结束的行

重定向文件操作 > 和 >>

  1. echo hello python > a.txt 将hello python文件写入到a.txt这个文件中
    也就是将需要输入到控制台中的信息重定向到文本信息中,这类的命令还有ll cat
  2. echo hello world >> a.txt # 这个表示在a.txt这个文件中追加相应的内容

管道|

在 linux中可以理解为管道是一个命令的输出通过管道作为另一个命令的输入

常用的管道命令有 more grep
hbKaTeX parse error: Expected 'EOF', got '#' at position 35: …| grep Desktop #̲ 这里表示查找桌面目录列表下面…ubuntu~: ls -lha ~ | more 分屏显示查询列表信息

关机选项

shutdown [选项] [时间]

# shutdown -r now  重新启动 表示现在立刻重启
# shutdown now 立刻关机 
# shutdown  默认一分钟后自动关机
# shutdown 20:25 今天晚上8点25分钟关机
# shutdown +10十分钟后关机
# shutdown -c 取消之前的关机计划

SSH客户端的简单实用

ssh [-p port] user@remote
ssh -p 22 hb@222.187.219.82

scp 命令

scp就是secure copy 是一个在linux下来进行远程拷贝文件的命令

# 把本地当前目录下的 01.py 文件复制到远程 家目录下 Desktop/01.py
scp -P port 01.py hb@192.168.60.10:Desktop/01.py

# 把远程家目录下的 Desktop/01.py 文件 复制到本地当前目录下的 01.py文件
scp -P port hb@192.168.60.26:Desktop/01.py 01.py

# 加上 -r 选项可以传送文件夹
# 把当前目录下的demo 文件件 复制到远程家目录下
scp -r demo user@192.168.60.29:Desktop

# 把远程 家目录下的Desktop复制到当前目录下的demo文件夹
scp -r user@192.168.60.29:Desktop demo

设置服务器免密码登录

在命令行里面输入 ssh-keygen 三次回车后就生成了加密文件
ssh-copy-id -p port user@remote 可以远程服务器记住我们的公钥

配置别名

ssh 每次登录都需要输入 ssh -p port user@remote 时间久了就会很麻烦

  1. 在 .ssh文件夹中创建一个config文件
    2.在config文件中添加一下内容
    Host mac
    HostName ip地址 # 远程的ip
    User hongbiao # 远程的用户名
    Port 22
    3 下次我们登录的时候就只用 ssh mac 就可以了

ls 扩展

  • ls -l 可以查看文件夹下的详细信息 从左到右依次为:
  1. 权限 第一个字符如果是d 表示的是目录
  2. 硬链接数 通俗的讲就是有多少种方式可以访问当前的目录或者文件
  3. 拥有者 家目录下文件/目录 的拥有者通常都是当前用户
  4. 组 在linux中很多时候 会出现组名和用户名相同的情况
  5. 大小
  6. 时间
  7. 名称
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值