linux git vim ssh scp 常用命令

Linux 常用命令

shell

Linux中常见的shell脚本有很多种,常见的有:

Bourne Shell(/usr/bin/sh或/bin/sh)
Bourne Again Shell(/bin/bash)
C Shell(/usr/bin/csh)
K Shell(/usr/bin/ksh)
zsh
…
Linux系统中一般默认使用bash,所以接下来讲解bash中的语法。
文件开头需要写#! /bin/bash,指明bash为脚本解释器。

学习技巧
不要死记硬背,遇到含糊不清的地方,可以在 Terminal里实际运行一遍。

脚本示例
新建一个test.sh文件,内容如下:

#! /bin/bash
echo "Hello World!"
运行方式
作为可执行文件

acs@9e0ebfcd82d7:~$ chmod +x test.sh  # 使脚本具有可执行权限
acs@9e0ebfcd82d7:~$ ./test.sh  # 当前路径下执行
Hello World!  # 脚本输出
acs@9e0ebfcd82d7:~$ /home/acs/test.sh  # 绝对路径下执行
Hello World!  # 脚本输出
acs@9e0ebfcd82d7:~$ ~/test.sh  # 家目录路径下执行
Hello World!  # 脚本输出
用解释器执行

acs@9e0ebfcd82d7:~$ bash test.sh
Hello World!  # 脚本输出 
1. 常用命令介绍
(1) ctrl c: 取消命令,并且换行
(2) ctrl u: 清空本行命令
(3) tab键:可以补全命令和文件名,如果补全不了快速按两下tab键,可以显示备选选项
(4) ls: 列出当前目录下所有文件,蓝色的是文件夹,白色的是普通文件,绿色的是可执行文件
(5) pwd: 显示当前路径
(6) cd XXX: 进入XXX目录下, cd .. 返回上层目录
(7) cp XXX YYY: 将XXX文件复制成YYY,XXX和YYY可以是一个路径,比如../dir_c/a.txt,表示上层目录下的dir_c文件夹下的文件a.txt
(8) mkdir XXX: 创建目录XXX
(9) rm XXX: 删除普通文件;  rm XXX -r: 删除文件夹
(10) mv XXX YYY: 将XXX文件移动到YYY,和cp命令一样,XXX和YYY可以是一个路径;重命名也是用这个命令
(11) touch XXX: 创建一个文件
(12) cat XXX: 展示文件XXX中的内容
(13) 复制文本
    windows/Linux下:Ctrl + insert,Mac下:command + c
(14) 粘贴文本
    windows/Linux下:Shift + insert,Mac下:command + v 
git常用命令
git config --global user.name xxx:设置全局用户名,信息记录在~/.gitconfig文件中
git config --global user.email xxx@xxx.com:设置全局邮箱地址,信息记录在~/.gitconfig文件中
git init:将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中
git add XX:将XX文件添加到暂存区
git add .:将所有待加入暂存区的文件加入暂存区
git rm --cached XX:将文件从仓库索引目录中删掉
git commit -m "给自己看的备注信息":将暂存区的内容提交到当前分支
git status:查看仓库状态
git diff XX:查看XX文件相对于暂存区修改了哪些内容
git log:查看当前分支的所有版本
git reflog:查看HEAD指针的移动历史(包括被回滚的版本)
git reset --hard HEAD^ 或 git reset --hard HEAD~:将代码库回滚到上一个版本
git reset --hard HEAD^^:往上回滚两次,以此类推
git reset --hard HEAD~100:往上回滚100个版本
git reset --hard 版本号:回滚到某一特定版本
git checkout — XX或git restore XX:将XX文件尚未加入暂存区的修改全部撤销
git remote add origin git@git.acwing.com:xxx/XXX.git:将本地仓库关联到远程仓库
git push -u (第一次需要-u以后不需要):将当前分支推送到远程仓库
git push origin branch_name:将本地的某个分支推送到远程仓库
git clone git@git.acwing.com:xxx/XXX.git:将远程仓库XXX下载到当前目录下
git checkout -b branch_name:创建并切换到branch_name这个分支
git branch:查看所有分支和当前所处分支
git checkout branch_name:切换到branch_name这个分支
git merge branch_name:将分支branch_name合并到当前分支上
git branch -d branch_name:删除本地仓库的branch_name分支
git branch branch_name:创建新分支
git push --set-upstream origin branch_name:设置本地的branch_name分支对应远程仓库的branch_name分支
git push -d 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 checkout -t origin/branch_name 将远程的branch_name分支拉取到本地
git stash:将工作区和暂存区中尚未提交的修改存入栈中
git stash apply:将栈顶存储的修改恢复到当前分支,但不删除栈顶元素
git stash drop:删除栈顶存储的修改
git stash pop:将栈顶存储的修改恢复到当前分支,同时删除栈顶元素
git stash list:查看栈中所有元素
 

 vim教程
功能:
    (1) 命令行模式下的文本编辑器。
    (2) 根据文件扩展名自动判别编程语言。支持代码缩进、代码高亮等功能。
    (3) 使用方式:vim filename
        如果已有该文件,则打开它。
        如果没有该文件,则打开个一个新的文件,并命名为filename
模式:
    (1) 一般命令模式
        默认模式。命令输入方式:类似于打游戏放技能,按不同字符,即可进行不同操作。可以复制、粘贴、删除文本等。
    (2) 编辑模式
        在一般命令模式里按下i,会进入编辑模式。
        按下ESC会退出编辑模式,返回到一般命令模式。
    (3) 命令行模式
        在一般命令模式里按下:/?三个字母中的任意一个,会进入命令行模式。命令行在最下面。
        可以查找、替换、保存、退出、配置编辑器等。
操作:
    (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:将全文的word1替换为word2,且在替换前要求用户确认。
    (21) v:选中文本
    (22) d:删除选中的文本
    (23) dd: 删除当前行
    (24) y:复制选中的文本
    (25) yy: 复制当前行
    (26) p: 将复制的数据在光标的下一行/下一个位置粘贴
    (27) u:撤销
    (28) Ctrl + r:取消撤销
    (29) 大于号 >:将选中的文本整体向右缩进一次
    (30) 小于号 <:将选中的文本整体向左缩进一次
    (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编辑文件时,会自动创建一个.filename.swp的临时文件。
    如果打开某个文件时,该文件的swp文件已存在,则会报错。此时解决办法有两种:
        (1) 找到正在打开该文件的程序,并退出
        (2) 直接删掉该swp文件即可

ssh 基本用法
远程登录服务器:

ssh user@hostname
user: 用户名
hostname: IP地址或域名

配置文件
创建文件 ~/.ssh/config。

然后在文件中输入:

Host myserver1
    HostName IP地址或域名
    User 用户名

Host myserver2
    HostName IP地址或域名
    User 用户名
之后再使用服务器时,可以直接使用别名myserver1、myserver2。

密钥登录
创建密钥:

ssh-keygen
然后一直回车即可。

执行结束后,~/.ssh/目录下会多两个文件:

id_rsa:私钥
id_rsa.pub:公钥
之后想免密码登录哪个服务器,就将公钥传给哪个服务器即可。

例如,想免密登录myserver服务器。则将公钥中的内容,复制到myserver中的~/.ssh/authorized_keys文件里即可。

也可以使用如下命令一键添加公钥:

ssh-copy-id myserver
执行命令
命令格式:

ssh user@hostname command
例如:

ssh user@hostname ls -a
或者

# 单引号中的$i可以求值
ssh myserver 'for ((i = 0; i < 10; i ++ )) do echo $i; done'
或者

# 双引号中的$i不可以求值
ssh myserver "for ((i = 0; i < 10; i ++ )) do echo $i; done" 
基本用法
命令格式:

scp source destination
将source路径下的文件复制到destination中

一次复制多个文件:

scp source1 source2 destination
复制文件夹:

scp -r ~/tmp myserver:/home/acs/
将本地家目录中的tmp文件夹复制到myserver服务器中的/home/acs/目录下。

scp -r ~/tmp myserver:homework/
将本地家目录中的tmp文件夹复制到myserver服务器中的~/homework/目录下。

scp -r myserver:homework .
将myserver服务器中的~/homework/文件夹复制到本地的当前路径下。

指定服务器的端口号:

scp -P 22 source1 source2 destination
注意: scp的-r -P等参数尽量加在source和destination之前。

使用scp配置其他服务器的vim和tmux
scp ~/.vimrc ~/.tmux.conf myserver:
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个问题的意思是,如何在Linux上配置GitSSH公钥。以下是具体步骤: 1. 安装Git和OpenSSH组件: sudo apt-get install git sudo apt-get install openssh-server 2. 生成SSH公钥: ssh-keygen -t rsa -C "your_email@example.com" 3. 将公钥添加到GitHub或其他代码托管网站: cat ~/.ssh/id_rsa.pub 然后将公钥复制并粘贴到你的代码托管网站的SSH设置中。 4. 配置Git使用SSH协议: git config --global user.name "Your Name" git config --global user.email "your_email@example.com" git config --global core.autocrlf input git config --global core.safecrlf true git config --global core.editor vim git config --global core.fileMode false git config --global core.ignorecase false 5. 通过SSH协议克隆代码库: git clone git@github.com:your_user_name/your_repo.git 现在你已经成功配置了GitSSH公钥,可以开始使用Git进行代码管理了。 ### 回答2: 在使用git时,我们通常会用到ssh协议进行远程连接和传输数据。为了方便和提高安全性,我们可以利用ssh公钥来实现无密码登录。下面我将介绍如何在Linux系统下配置gitssh公钥。 1. 生成ssh公钥 我们可以使用ssh-keygen命令来生成ssh公钥。该命令会在用户家目录下生成一个.ssh目录,并在该目录下生成id_rsa和id_rsa.pub两个文件,其中id_rsa是私钥,id_rsa.pub是公钥。 打开终端,输入以下命令ssh-keygen 按照提示一步步完成生成过程即可。 2. 复制ssh公钥 生成ssh公钥后,我们需要将公钥复制到目标机器上。可以通过以下命令来复制公钥: ssh-copy-id user@ip_address 其中,user是目标机器的用户名,ip_address是目标机器的IP地址。执行该命令后,会提示输入密码,输入目标机器的密码即可完成复制公钥的过程。 3. 配置git 完成以上步骤后,我们可以开始配置git。先检查一下是否已经安装了gitgit --version 如果提示“command not found”,则需要先安装gitLinux下可以通过以下命令来安装: sudo apt-get install git 安装完成后,我们可以开始配置git。首先需要设置用户名和邮箱地址: git config --global user.name "Your Name" git config --global user.email "your_email_address@example.com" 然后需要将公钥添加到gitSSH密钥列表中,执行以下命令ssh-add ~/.ssh/id_rsa 至此,gitssh公钥配置就完成了。我们可以通过以下命令来验证配置是否成功: ssh -T git@github.com 如果输出以下内容,则说明配置成功: Hi username! You've successfully authenticated, but GitHub does not provide shell access. 以上就是Linux git配置ssh公钥的详细步骤。配置成功后,我们可以在使用git时实现免密码登录,提高工作效率和安全性。 ### 回答3: 在使用git进行版本控制时,通常需要配置SSH公钥来进行身份验证来获取Git仓库中的代码内容或提交修改。 首先,在需要连接的服务器上当前用户的家目录下查看是否存在'.ssh'的隐藏文件夹,若没有则需要手动创建,进入新建id_rsa、id_rsa.pub两个文件。 然后,在要使用git的客户端电脑上也进入家目录下的'.ssh'文件夹,生成新的ssh key。在终端中执行以下命令ssh-keygen -t rsa -C "your_email@example.com" 这里your_email@example.com是填写用户的邮箱地址。 接下来会要求输入文件名和密码等,可一路回车不进行更改。 生成完成后,在.ssh下出现了id_rsa和id_rsa.pub两个文件,其中id_rsa是私钥文件,需要妥善保管,不要泄露给别人,而id_rsa.pub则是公钥文件,需要将它的内容复制到远程服务器上,即将公钥添加到服务器的authorized_keys文件中。 在终端使用以下命令将公钥复制到远程服务器上: ssh-copy-id user@hostname 其中user是远程服务器的用户名,hostname是服务器的主机名或IP地址。 如果ssh-copy-id命令不能使用,则需要手动将公钥添加进服务器的authorized_keys文件夹中。在终端中使用以下命令进行添加: cat id_rsa.pub >> ~/.ssh/authorized_keys 完成公钥添加之后,就可以使用ssh来进行git操作了,不需要再输入用户名和密码等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值