0%

给自己弄一个bash环境

本文所使用的系统为Linux,如果你是macOS,大多命令是相通的,你不必担心;如果你使用的是Windows 10,你可以参照此篇博客,不到10分种为你的win10安装一个Linux子系统,如果你是win8/win7/winxp,你可以参考此篇文章使用带有模拟bash环境的命令行终端。

命令行释义

打当你打开你的命令行,通常是这样的

1
user@PC:~$


1
2
user@PC ~ 
$

  1. user 指你当前登陆的账户的用户名。
  2. PC 是指你当前登陆的主机名。
  3. ~ 指当前你处在的目录,~代表你处在你的用户目录下。
  4. $ 指示你可以在其后输入命令并执行,并无实际意义,在部分Linux中,此符号为#

通常我们需要在命令后输入使用文件路径进行操作,而文件路径中分为绝对路径相对路径,我们首先要理清这两者的概念。

  1. 绝对路径
    指该文件/文件夹真实的文件路径,在windows中,我们在经常看见的"C:\Program Files\Adobe\Adobe Photoshop CC 2018"就是绝对路径。而在Linux中,没有盘符的概念,只有一个根目录/,在根目录下拥有许多分区,常见的路径是这样的/home/geylun/bilibili,因此在Linux中你可以认为以/开头的路径即是绝对路径。

  2. 相对路径
    相对路径其实只是绝对路径一种缩减的写法,方便我们进行路径输入,比如我总喜欢在我/home/geylun/下做各种操作,我不可能每次都在参数后面跟这一大串路径,相对路径这个办法就出来了,我用.代表当前目录,..代表当前目录的上级目录,~代表我的用户目录,这样在我的文件夹进行各种操作的时候,就只用输入~

命令释义

查看

  • cd
    改变你当前的工作目录,这样你可以以相对路径来更方便的输入路径,并且许多命令也只对当前工作目录生效。
    如果目录太长,你可以按TAB键自动补全路径。

  • pwd
    列出你当前目录的绝对路径

  • ls
    列出当前目录里的文件及文件夹。
    可选参数

    • -a 显示所有文件(包括以.开头的隐藏文件)
    • -l 显示详细信息,包括权限、所有者、创建时间
    • -R 递归的列出所有文件及其所在目录(tree更好)
  • tree
    以树状图的方式展示当前目录结构及文件

    • -a 显示所有文件
      如果你没有此命令,Linux系统可以输入sudo apt-get install tree安装tree工具。
  • cat
    从文件中读入字符并打印到屏幕上
    有很多参数可选,你可以参照菜鸟教程

    创建

    注意,命令行是以空格等标记分割参数,如果你输入的文件名包含空格,你最好使用""包裹它。

  • touch
    如果文件不存在则创建文件,如存在则以当前系统时间修改时间属性

  • echo
    回声,输入什么就输出什么
    echo是一个很有趣的命令,你输入什么它就输出什么,使用>重定向就能以指定的文本内容创建文件,例如

    1
    $ echo "Hello world" >init.txt

    这样就可以创建一个内容为”Hello world”的文件
    每次重新执行会覆盖之前的内容
    如果你想追加内容,而不是覆盖原文件,可以这样做

    1
    $ echo "QAQ" >>init.txt

    文本内容就会变成

    Hello world QAQ
    

    事实上你可以使用>把任意的标准输出都重定向到新的文件中。

  • cp
    复制文件到另一个文件,如果另一个文件不存在则创建。

    1
    $ cp init.txt init.txt.backup

    这样就会创建一个init文件的复制。

  • mkdir
    创建一个目录
    可选参数

    • -p 确保目录存在,不存在就创建一个

修改

  • mv
    修改文件/文件夹路径,你可以使用此命令进行重名名、移动、覆盖等
    比如修改名称

    1
    $ mv init.txt hello.txt

    可选参数

    • -i 如果目标文件存在就询问是否覆盖(默认直接覆盖)
    • -u 若目标文件已经存在,且源文件更新时,才进行覆盖。
  • rm
    删除文件
    可选参数

    • r递归删除,如果文件夹中还有文件夹,会一直查询到没有新的目录为止,然后一个个删除文件夹和文件
    • r不要询问、警告我。
      使用rm -rf请再三小心!
  • vim
    命令行界面的文字编辑器,你可以使用输入vimtutor查看它的自带教程。

杂项

  • clrar
    清屏

  • history
    查看命令输入历史

命令行技巧

快捷键

  • TAB 提示命令及补全路径
  • / 上一条下一条命令
  • ALT+. 上一个命令的最后一个参数
  • !! 上一条命令占位符

修改~/.bashrc

可以再.bashrc中添加命令,这些命令会在终端打开时自动执行这些命令
你可以添加

1
$ cd ~/Desketop

自动跳转到桌面

1
alias la='ls -a'

la 定义为'ls -a'

你还可以在这里定义环境变量,这些环境变量会影响到具体命令的执行

1
export SASS_BINARY_SITE="https://npm.taobao.org/mirrors/node-sass"

前提

你是在读的学生,能够在学信网查询到你的学籍信息。

1. 获得在线学籍报告

首先访问学信网,没有注册的话,注册一个,然后登陆。

你会看到这样的界面

点击在线验证报告申请

申请完成后你就能看到这样的在线验证报告。

你可以以pdf文档格式保存起来,不过目前你只需要复制当前页面的链接

2. 前往JetBrains注册

前往JetBrains,注册你的账户,注册成功会出现这样的界面,询问你获得许可证的方式。

点击Apply for free student or teacher license

就可以进入到教育许可证详情页面,如果你早已注册,你也可以手动访问JetBrains教育许可证

点击APPLY NOW或中文的立即申请

你会看到这样的页面

点击Official document 使用官方文档

如实的填写你的信息,如果你还需要两年及更长的时间毕业,请勾选
My education institution is accredited and takes 2 or more years of full-time study to complete

请务必正确填写你的在线验证报告地址

Comment是可选的,你可以不必填写

3. 一切完成,静候佳音

什么是Markdown?

Markdown是一种轻量的标记语言,允许人们以易读易写的纯文本方式编写文档,并可以轻松的转换为有效的HTML文档,许多网站及应用都使用Markdown或其它衍生版本让用户更专注于文档的写作,而不需要烦恼于排版、格式等琐碎的事情,你大可以在轻度写作上,告别word这样繁琐的工具。

怎么使用Markdown?

我需要怎样的编辑器?

Markdown无需任何编辑器,你可以在任意文档编辑器使用Markdown语法,即使不经过处理,纯文本的Markdown也拥有不错的阅读体验,如果你需要即时的预览的Markdown语法效果,你可以使用以下几个在线的编辑器

  1. Cmd Markdown 国内一款不错的Markdown在线编辑器
  2. 简书 需要注册一下,也支持Markdown
  3. dillinger 很漂亮的一个在线编辑器,还支持许多云端备份,不过国内访问很慢,中文支持也不好,如果你在国外还是不错的。

Makedown的具体语法是怎样的?

Makedown的语法是相当简单的,你至多只需要十分钟就能掌握Markdown语法,我推荐你打开上述的在线编辑器,一起来编辑看看效果!

1. 我想要一个标题?

你可以这样输入

# 标题

效果:

标题

嘿!看看你是否正确的在#号后加了空格?虽然许多编辑器支持不带空格的写法,但标准的Markdown标签里应该加上空格。


2. 我想要一个多级标题?

你可以这样输入

# 一级标题
## 二级标题
### 三级标题

效果:

一级标题

二级标题

三级标题


3. 标题有了,段落(正文)又该怎么写?

不需要怎么写!Markdown并不需要你做多余的工作,你只需要自然的回车换行,即是下一个段落。

由若干“来自GitHub、Reddit、Stack Exchange以及开源社区的重要代表”组成了一个“小型非公开工作组”,打算将Markdown标准化,并为了进一步的改进开放该标准。工作组于近日发布了Standard Markdown,随之有专门的网站standardmarkdown.com,但发布几天后应Gruber的要求被迫关闭了。

在一则发给Atwood的私信中,Gruber说标准使用了Markdown“令人愤怒”,要求标准化工作组重新命名项目,关闭standardmarkdown.com并且道歉。对于名字,Gruber建议工作组可以使用比如Strict Markdown或Pedantic Makrdown类似的名字。Atwood希望有其他的名称,在等待Gruber的反馈一天无果后,将其重命名为Common Markdown。

效果:
由若干“来自GitHub、Reddit、Stack Exchange以及开源社区的重要代表”组成了一个“小型非公开工作组”,打算将Markdown标准化,并为了进一步的改进开放该标准。工作组于近日发布了Standard Markdown,随之有专门的网站standardmarkdown.com,但发布几天后应Gruber的要求被迫关闭了。

在一则发给Atwood的私信中,Gruber说标准使用了Markdown“令人愤怒”,要求标准化工作组重新命名项目,关闭standardmarkdown.com并且道歉。对于名字,Gruber建议工作组可以使用比如Strict Markdown或Pedantic Makrdown类似的名字。Atwood希望有其他的名称,在等待Gruber的反馈一天无果后,将其重命名为Common Markdown。


4. 我想引用其他人的话语/句子该怎么办?

> 鹅,鹅,鹅,曲项向天歌。
  白毛浮绿水,红掌拨清波。
              ————骆宾王

效果:

鹅,鹅,鹅,曲项向天歌。
白毛浮绿水,红掌拨清波。
————骆宾王

你还可以多级嵌套这些引用:

> 鲁迅说:
>> 鲁迅没有说过这句话
            ————鲁迅

效果:

鲁迅说:

鲁迅没有说过这句话
—————鲁迅


5. 我需要一个列表?

*《如果有妹妹就好了》
*《小林家的妹抖龙》
*《紫罗兰永恒花园》
*《罗小鸽战记》

效果:

  • 《如果有妹妹就好了》
  • 《小林家的妹抖龙》
  • 《紫罗兰永痕花园》
  • 《罗小鸽战记》
    如果你愿意,你还可以使用 +- 代替 * 号,它们的作用是等同的。

如果你需要一个有序列表,你可以这样做:

1. 先看看3
2. 看看4写的什么
3. 再看看2
4. 回去看看1

效果:

  1. 先看看3
  2. 看看4写的什么
  3. 再看看2
  4. 回去看看1

如果你愿意,你也可以不按顺序写上标号,这也能够被正常解析。

4. 先看看3
2. 看看4写的什么
1. 再看看2
4. 回去看看1

效果:

  1. 先看看3
  2. 看看4写的什么
  3. 再看看2
  4. 回去看看1

你还可以做一个代办事项列表

- [ ] 不勾选
- [x] 勾选

效果:

  • 不勾选
  • 勾选

我需要在文章中插入链接?

  • 行内式:

    Gayhub

  • 参考式:
[Gayhun][1]
[1]:http://github.com

释义:

  • 行内式:
    [显示的文本](点击文本访问的链接)
  • 参考式
    [显示的文本][自己定义的id]
    [自己定义的id]:链接
    参考式基本和行内式没有差别,只是可以预先定义要显示的文本。

效果:
Gayhub

如果你需要鼠标悬停时给出提示信息,你可以这样

[B站](https://bilibili.com "点此访问bilibili")

释义:
[显示的文本](点击文本访问的链接 “鼠标悬停时的提示信息”)
效果
B站

这样写还是有点麻烦?
在显示文本和链接一致的情况下,你只需

<https://bilibili.com>

效果:
https://bilibili.com


插入图片怎么办?

![紫罗兰永恒花园](jz.png "紫罗兰永痕花园")

释义:
[ 图片未加载成功时的帮助文本 ](图片的链接 “鼠标悬停时的提示信息”)

图片也拥有和链接相似的参考式写法。
效果:
紫罗兰永痕花园


我想在文章中显示代码?

1. 原生风格:
首行缩进4个空格或是一个制表符
显示代码演示

效果:

int main(){
    printf("Hello world!");
    return 0;
}

2. Github风格
使用 ``` 包裹代码

显示代码演示

效果:

1
2
3
4
int  main(){
printf("Hello world!");
return 0;
}

我想用表格来展示?

英雄名称| 击杀 |死亡| 助攻
:--|:--:|--:| --:
斧王|1|50|5
宙斯|5|5|5
炸弹人|56|5|41

释义:
第一行代表表头,第二行代表对齐方式控制,第三行开始是内容。
其中 :--代表左对齐,--:代表右对齐,:--:代表居中对齐。

效果:

英雄名称 击杀 死亡 助攻
斧王 1 50 5
宙斯 5 5 2
炸弹人 56 5 41

我想让我的文本更有表现力?

  • 斜体

    *这是一串斜体*
    

    效果:

    这是一串斜体

  • 粗体

    **这是一串粗体**
    

    效果:

    这是一串粗体

  • 单独显示一串代码

    `Hello world`
    

    效果:

    Hello world

  • 给文字加上删除线

    ~~这是要被删除的文字~~
    

    效果:

    这是要被删除的文字

  • 添加水平线

    ***
    

    效果:



我想使用的字符字被看包括在Markdown语法内?

你可以使用在你想使用的字符前添加转义符\

\\

效果:
\

你可以对这些字符进行转义

字符 名称
\ 反斜线
` 反引号
* 星好
_ 底线
{} 花括号
[] 方括号
() 括号
# 井号
+ 加号
- 减号
, 英文句点
! 感叹号

一切OK