首页 > 系统相关 >Linux基础学习

Linux基础学习

时间:2022-12-06 12:23:00浏览次数:32  
标签:git name ctrl XXX 基础 学习 branch Linux 分支

Linux基础

Lesson1-常用基本命令

​ 1.Ctrl c:取消命令,并且换行

  1. Ctrl u:清空本行命令

  2. tab键:可以补全命令和文件名,如果补全不了快速按两下tab键,可以显示备选选项

  3. ls:列出当前目录下所有文件,蓝色的是文件夹,白色的是普通文件,绿色的是可执行文件

ㅤㅤ●ㅤls -a:查看所有文件包括隐藏文件(以.开头的文件就是隐藏文件)

ㅤㅤ●ㅤls -l:查看当前路径下文件的读、写、执行权限

ㅤㅤ●ㅤls | wc -l:查看ls下有多少个文件

  1. pwd:显示当前路径

  2. cd XXX:进入XXX目录下,cd ..返回上层目录

ㅤㅤ●ㅤ.:当前目录 ..:上级目录

ㅤㅤ●ㅤ~:家目录,回回到路径/home/acs下

ㅤㅤ●ㅤcd -:返回改变路径前的路径,比如当前在/home/acs/homework然后cd** **/这个时候就处于/目录下,然后cd -就会回到改变路径前的路径也就是/home/acs/homework

  1. cp XXX YYY:将XXX文件复制成YYY,XXX和YYY可以是同一个路径,比如../dir_c/a.txt,表示上层目录下的dir_c文件夹下的文件a.txt

ㅤㅤ●ㅤcp XXX YYY -r将XXX目录(文件夹)复制到YYY下

ㅤㅤ●ㅤ非当前路径重命名方法:cp a.txt ../b.txt

  1. mkdir XXX:创建目录(文件夹)XXX

ㅤㅤ●ㅤmkdir -p:-p:如果文件夹不存在,则创建

  1. rm XXX:删除普通文件; rm XXX -r:删除文件夹

ㅤㅤ●ㅤ支持正则表达式,删除所有.txt类型文件:rm *.txt

ㅤㅤ●ㅤ删除所有文件(不包括文件夹):rm *

ㅤㅤ●ㅤ正则表达式删除所有文件夹:rm * -r即可

  1. mv XXX YYY:将XXX文件移动到YYY下,和cp命令一样,XXX和YYY可以是同一个路径;重命名也是用这个命令

ㅤㅤ●ㅤ非当前路径移动方法:mv a.txt ../b.txt

  1. touch XXX:创建一个文件

  2. cat XXX:展示文件XXX中的内容

  3. 复制文本:windows/Linux下:Ctrl + insert

  4. 粘贴文本:windows/Linux下:Shift + insert

  5. history:查看历史输入指令

  6. tree:以树形显示文件目录结构

Lesson2-tmux和vim

tmux

作用

1.分屏:可以在一个开发框里分屏
2.允许terminal在连接断开之后可以继续运行,让进程不会因为断开连接而中断

结构

一个tmux可以有一堆session
每个sesion可开很多的window
每个window可以开很多pane
每个pane可以打开一个shell交互
如图所示:

image-20221109142553433

基础命令

1.切分:

  • 竖直切分:先按ctrl+A松开,输入%,也就是按下shift+5
  • 当按下ctrl+d,可以关闭tmux
  • 水平切分:先按ctrl+A,再按,即 shift+'
    同样的按下ctrl+d取消
  • 对于切分来说,每一块都可以继续切分

2.退出:
ctrl+d 退出
当window没有pane时,自动退出
当session没有window时,自动退出
故一直ctrl+d下去会直接退出

3.选择pane:

  • 鼠标点击即可或输入ctrl+a,然后按方向键选择相邻的pane

4.调整分割线:

  • 选中并拖动即可或者ctrl+a同时(同时也不松开)按方向键

5.全屏与取消全屏

  • 某个窗口全屏:选中并按下ctrl+A再按z,同样取消按ctrl+A再按z

6.挂起窗口:

  • ctrl+a然后按d,此为从session中退出
  • 输入tmux a tmux attach,再开启session窗口

7.选择其他的session:

  • 先进入tmux,然后在tmux里输入ctrl+a再按s
  • 再session里的方向键操作:
    →展开,→再按一次是展开所有pane ←按下是合上所有pane
    ←合上
    ↑↓选择session
    如下所示:一共9个session,点开展开是一系列window,再展开window是pane

image-20221109143429553

8.session中创建window与选择window

  • ctrl+a再按c:创建window

  • ctrl+a再按w:选择其他window也可以展开合上每个window

  • 注:ctrl+a+s与ctrl+a+w的区别:前者打开只展开session一级,展示session级中所有的window如图一,后者打开默认是w一级,展开window级中所有的pane,如图二

image-20221109143557157

9.翻阅内容:↑滚轮向上
如果没有鼠标:ctrl+a再按Pageup向上翻,按PageUp向下翻
按PageUp也可以唤醒

10.从tmux中复制文本:

  • tmux中复制/粘贴文本的通用方式:
    (1) 按下Ctrl + a后松开手指,然后按[
    (2) 用鼠标选中文本,被选中的文本会被自动复制到tmux的剪贴板
    (3) 按下Ctrl + a后松开手指,然后按],会将剪贴板中的内容粘贴到光标处

vim

作用

vim filename
如果有该文件则打开
没有则打开一个新的文件,命名为filename

模式

1.一般命令模式/默认模式:无法编写,输入命令,每一个命令对应一个字母,支持复制粘贴删除文本
2.编辑模式:在默认模式下按i,进入编辑模式,按esc退出
3.命令行模式:默认模式下按:/?三个中任意一个进入命令行模式,命令行在最下面(个人建议用:)支持查找、替换、保存、退出、配置编辑器等
输入:wq,保存并退出

基础命令

1.i:进入编辑模式

2.esc:进入一般命令模式

3.小键盘可以操作前后左右
注:在命令模式下:vim会卡在最后一个字符前面,编辑模式会卡在最后一个字符,不像win,移动到最后会直接换行
同样的,无论是什么模式,往左移动到开头就会停下

4.光标的移动操作:n<Space> n是数字,光标会自动右移n个字符
一般命令模式下:0/home 将光标移动到本行开头
$/End 将光标移动到本行结尾
G将光标移动到最后一行

5.具体到哪一行的操作:
1).n/nG:表示想去具体到哪一行(n是到某一行的下面,nG是直达)
2).gg:到达第一行
3).n<Enter> :向下跳n行

6.查找与修改字符串的操作:
1)./word:在命令行模式下,光标之下寻找第一个值为word的字符串
2).?word:在光标之上第一个值为word的字符串
3).n:重复前一个查找操作
4).N:反向查找,也就是说前一个命令向前找,此命令下向后找
5).:n1,n2s/word1/word2/g:n1,n2为数字,在第n1与n2之间找word1,并替换为word2
:1,$s/word1/word2/g:将全文的word1换成word2
:1,$s/word1/word2/gc:在每一次替换的时候都会让用户进行确认

7.:noh 关闭所查找的关键词的高亮

8.选中与删除
v:选中文本,按两下esc取消
d:删除选中文本(其实有剪切的特性)
dd:删除整行

9.复制与粘贴:
y:复制(文本)
p:在光标所处位置的下一行或下一个位置(通常当光标在两边时)粘贴
yy:复制当前行

10.撤销

  • u:撤销
    ctrl+r:取消撤销
    注:在windows里,ctrl+z撤销,ctrl+shift+z取消撤销

11.> 将选中的文本整体向右移动
< 将选中的文本整体向左移动

12.保存与退出:
:w保存
:w! 强制保存
一般命令模式下:按下ESC,按q退出
:q! 强制退出(不保存)
:wq 保存并退出
:wq! 强制保存退出

13.行号的显示与隐藏:
:set nonu 隐藏行号
:set nu 显示行号

14.paste模式:
为什么:当要粘贴过来的代码很长时,命令可能会失效,占用很大带宽,导致出现多重缩进
:set paste取消代码缩进,设置成粘贴模式
:set nopaste开启代码缩进

15.其他与gg有关的
gg+d+G 删除全部内容
gg=G 将全文格式化

16.vim的卡死处理
ctrl+q:当vim卡死时,可取消当前正在执行的命令

17.异常处理:当前进程出现冲突时,会出现异常
解决方法:1).找到正在多个打开的文件程序,并关掉,保证同一个进程只有同一个文件能打开
2).问题:当一个进程不小心被其他进程杀掉,当再打开main.cpp时,此时如果出现一个.swp缓存文件时会报错
解决:在没有任何一个进程打开该文件时,将.swp文件删掉即可

Lesson3-git命令分类整理

全局设置

git config --global user.name xxx:设置全局用户名,信息记录在~/.gitconfig文件中
git config --global user.email [email protected]:设置全局邮箱地址,信息记录在~/.gitconfig文件中
git init:将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中

常用命令

git add XX :将XX文件添加到暂存区
git commit -m: "给自己看的备注信息":将暂存区的内容提交到当前分支
git status:查看仓库状态
git log:查看当前分支的所有版本
git push -u (第一次需要-u以后不需要) :将当前分支推送到远程仓库
git clone [email protected]:xxx/XXX.git:将远程仓库XXX下载到当前目录下
git branch:查看所有分支和当前所处分支

查看命令

git diff XX:查看XX文件相对于暂存区修改了哪些内容
git status:查看仓库状态
git log:查看当前分支的所有版本
git log --pretty=oneline:用一行来显示
git reflog:查看HEAD指针的移动历史(包括被回滚的版本)
git branch:查看所有分支和当前所处分支
git pull :将远程仓库的当前分支与本地仓库的当前分支合并

删除命令

git rm --cached XX:将文件从仓库索引目录中删掉,不希望管理这个文件
git restore --staged xx:将xx从暂存区里移除
git checkout — XX或git restore XX:将XX文件尚未加入暂存区的修改全部撤销

代码回滚

git reset --hard HEAD^ 或git reset --hard HEAD~ :将代码库回滚到上一个版本
git reset --hard HEAD^^:往上回滚两次,以此类推
git reset --hard HEAD~100:往上回滚100个版本
git reset --hard 版本号:回滚到某一特定版本

远程仓库

git remote add origin [email protected]:xxx/XXX.git:将本地仓库关联到远程仓库
git push -u (第一次需要-u以后不需要) :将当前分支推送到远程仓库
git push origin branch_name:将本地的某个分支推送到远程仓库
git clone [email protected]:xxx/XXX.git:将远程仓库XXX下载到当前目录下
git push --set-upstream origin branch_name:设置本地的branch_name分支对应远程仓库的branch_name分支
git push -d origin branch_name:删除远程仓库的branch_name分支
git checkout -t origin/branch_name: 将远程的branch_name分支拉取到本地
git pull :将远程仓库的当前分支与本地仓库的当前分支合并
git pull origin branch_name:将远程仓库的branch_name分支与本地仓库的当前分支合并
git branch --set-upstream-to=origin/branch_name1 branch_name2:将远程的branch_name1分支与本地的branch_name2分支对应

分支命令

git branch branch_name:创建新分支
git branch:查看所有分支和当前所处分支
git checkout -b branch_name:创建并切换到branch_name这个分支
git checkout branch_name:切换到branch_name这个分支
git merge branch_name:将分支branch_name合并到当前分支上
git branch -d branch_name:删除本地仓库的branch_name分支
git push --set-upstream origin branch_name:设置本地的branch_name分支对应远程仓库的branch_name分支
git push -d origin branch_name:删除远程仓库的branch_name分支
git checkout -t origin/branch_name :将远程的branch_name分支拉取到本地
git pull :将远程仓库的当前分支与本地仓库的当前分支合并
git pull origin branch_name:将远程仓库的branch_name分支与本地仓库的当前分支合并
git branch --set-upstream-to=origin/branch_name1 branch_name2:将远程的branch_name1分支与本地的branch_name2分支对应

标签:git,name,ctrl,XXX,基础,学习,branch,Linux,分支
From: https://www.cnblogs.com/epochal/p/linux.html

相关文章

  • HTML-学习笔记02
    HTML13、样式器+标签选择器内部样式表<html> <head> <metacharset="utf-8"> <title></title> <!--内部样式表--> <style> /*标签选择器*/ h1{ ......
  • Kafka集群部署(Linux环境)
    Kafka集群部署运行环境:❤操作系统:CentOS7.6x64❤kafka版本:kafka_2.13-3.3.1.tgz❤JDK环境:JDK11(Kafka2.8版本才开始自带了Zookeeper,所以注意下载版本)一、zookee......
  • 用minicom在Linux主机和开发板之间传递文件
    想要将在主机上做好的文件发送到开发板上,需要先安装minicom软件,第一次使用minicom的时候需要先对minicom进行配置,在主机shell上输入minicom-s,进入如下界面:---[configura......
  • Linux内核升级方法与步骤
    1.查看linux内核版本:#uname-r2.6.18-194.el52.下载新的内核版本:去官网上下载最新的内核版本和对应的补丁:​​​https://www.kernel.org/​​​选的是3.2.14#wge......
  • 怎样结束linux的ping命令
    在linux的shell下执行ping 127.0.1.1,可以测试网络的联通性,但该命令会一直执行,有两种方法来终止ping命令:ctrl+c可以停止pingctrl+z可以暂停ping,ctrl+z是把进程放到后台......
  • 初识Linux(十一)------ 磁盘配额与进阶文件系统管理
      如果Linux服务器有多个用户经常存取数据时,为了维护所有使用者在硬盘容量的公平使用,磁盘配额(Quota)就是一项非常有用的工具。另外,如果磁盘容量不够用,那么更进阶的文件......
  • Linux下的压缩解压缩命令详解
    1.zip-rmyfile.zip./*将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.2.unzipunzip-o-d/home/sunnymyfile.zip......
  • Linux软件安装
    目录安装rz/sz安装telnet安装JDK一.安装rz/sz1.下载安装包,放到指定目录,示例是放到/usr/local/src下wgethttp://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz2.r......
  • 云原生架构学习计划
    一、背景云原生已经是架构师躲不开的一个门槛,有必要拿下。这里列一下博主对云原生的学习之路。也可以给各位同学打个样,找到入门一个架构的方法。二、计划2.1总耗时一......
  • Linux的Shell
    1、操作系统的两个用户接口    (1)操作系统调用接口    (2)控制台的命令接口2、Shell是什么?    Shell是C语言编写的一个程序,给用户管理和使用系统提供......