美文网首页饥人谷技术博客我爱编程
学习使用Linux Command line(Git Bash)

学习使用Linux Command line(Git Bash)

作者: DHFE | 来源:发表于2017-09-19 01:07 被阅读134次

了解一个新事物,一个新知识最好的方式,就是对它问问题,然后再自己寻找答案,进行解答并总结,SO......


Question:

  • 命令行是什么?

Baidu
命令提示符是在操作系统中,提示进行命令输入的一种工作提示符。在不同的操作系统环境下,命令提示符各不相同……

Wiki
命令行界面(英语:command-line interface,缩写:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(character user interface, CUI)。
通常认为,命令行界面(CLI)没有图形用户界面(GUI)那么方便用户操作。因为,命令行界面的软件通常需要用户记忆操作的命令,但是,由于其本身的特点,命令行界面要较图形用户界面节约计算机系统的资源。在熟记命令的前提下,使用命令行界面往往要较使用图形用户界面的操作速度要快。所以,在现在的图形用户界面的操作系统中,通常都保留着可选的命令行界面。
虽然现在许多计算机系统都提供了图形化的操作方式,但是却都没有因而停止提供文字模式的命令行操作方式,相反的,许多系统反而更加强这部分的功能,例如Windows就不只加强了操作命令的功能和数量,也一直在改善Shell Programming的方式。而之所以要加强、改善,自然是因为不够好;操作系统的图形化操作方式对单一客户端计算机的操作,已经相当方便,但如果是一群客户端计算机,或者是24小时运作的服务器计算机,图形化操作方式有时会力有未逮,所以需要不断增强命令行界面的脚本语言语言来提供丰富的控制与自动化的系统管理能力,例如Linux系统的Bash或是Windows系统的Windows PowerShell

咳咳,请自动忽略百度百科

Django Girls's tutorial
可能需要翻墙来查阅

GUI的发展史
其实大家看到,维基的解释也很清楚了。在GUI广泛出现以前(注意,这里的GUI指的不是显示器上的画面),当时的计算机界对UI,人机交互是没有很清晰的概念的,但是让PC在民用市场得到广泛传播使用,需要降低使用门槛,并且用户需求、体验也被越来越多的人关注......最终,用户图形界面(Graphics User Interface)诞生了,经过无数计算机科学家与图形学工作者的努力.......直到如今这个模样(貌似偏题了)。

这里就与其历史问题一同解答了


  • 它有什么用?

知乎上有一个十分有趣的问题:使用命令行真的比使用可视化界面好吗?
总而言之,向朝着更高效更迅速更有逼格的使用OS这个方向发展而言,命令行是你跳不过去的坎儿。


  • 不同平台(OS)上的命令行有什么区别?

这个问题我自己觉得最好的解答方式就是自己亲自去把win、linux、mac os的命令行敲一遍......大体上都差不多。


知识准备:

例举一些单词... 一些图片... 一些图片... 一些技巧摘录... 一些技巧摘录...

cd (change the working directory)

即改变或切换当前工作目录,也可通俗理解为打开某个文件夹,并跳转至该处。

使用绝对路径进入 同样使用绝对路径进入
. 表示当前目录
.. 表示上一级目录(父目录)

除此之外,我们还可以针对同一父目录下的文件夹使用相对目录来使用cd

使用"."表示当前目录
首先,我们使用绝对目录进入了,c/Users/Administrator/Dekstop/img/这个文件夹里,之后使用"../"回到父母路,也就是/Desktop下。因为/a文件与/img都是/Desktop下的文件夹,所以直接/a,应该会进入/Desktop/a目录对吧,可是报错了。

No such file or directory
原因很简单,在进入/a时,没有用.表示当前目录
所以改一改就好了。

微信截图_20170919123108.jpg

这是我在cd命令下的一个低级错误,我想,产生这个错误的原因在于,自己并没有把./,../这些概念理解透,所以,继续摸索试错吧。

我们可以有一个最快的方法,就是相对目录的使用。

相对目录跳转
cd -

cd后加入-可以在最近的工作目录下切换

两个工作目录下的切换

跨盘符的也可以:

两个工作目录下的切换
cd ~

返回Home目录

返回Home目录

这个有一个细节,文件夹名为:Front End,在命令行中,需要加入一个反斜杠来表示空格符,即空格符等于:\+空格

cd ab?

有时你可能忘记了文件名,但是记得它由几个字符组成,那就可以使用这个方法了。

微信截图_20170919131334.jpg

关于cd命令还有很多值得探索的细节,这里就不一一说明了。

微信截图_20170919131919.jpg

cd命令


ls (list directory contents)

ls命令简介

Linux中的15个基本‘ls’命令示例(墙荐)


关于ls的几种使用方法

ls

仅列出当前目录可见文件

微信截图_20170919133716.jpg ls

只是把文件名列项


ls -l

列出当前目录可见文件详细信息(注意是可见文件)

explainshell.com的说明 同样的Img文件夹下照片ls -l

我们拿第一个Img文件来“翻译”一下。

  • -rw-r--r--

Linux用户文件权限,大概查了一下....分三段来看,
首尾代表的是目录或者文件,一般不用管,后面的三段每段3位,r代表可读,w代表可写,x代表可执行。第一段是代表文件所属用户主对它的权限,第二段是所属用户组的用户对它的权限,第三段是其他用户对他的权限。
第一段:rw- ,所属用户(比如是root)对这个文件可读可写
第二段:r-- ,所属用户组用户,对这个文件可读
第三段:r-- ,其他用户对这个文件可读

微信图片_20170919140647.jpg
  • 1

表示连接占用的节点(i-node)

  • Administrator

表示这个文件或目录的“拥有者”

  • 197121

表示拥有者的用户组

  • 5806

这个文件的大小(Byte)

  • 九月 19 01:30

这个文件的创建日期或者是最近的修改日期

  • 微信截图_20170919012956.jpeg

文件的文件名:如果文件名前面有.说明是隐藏文件。如果只输入ls 前面加.的文件不会显示出来。ls -al则会显示出全部文件。

Linux ls命令行解析


ls -hl

列出详细信息,并以可读大小显示文件大小

微信截图_20170919143006.jpg ls -hl

主要是文件大小的表示方法发生了变化。

ls -al

列出所有文件(包括隐藏)的详细信息

微信截图_20170919143129.jpg ls -al

由于我没有隐藏文件,所有基本上差不多
drwxr-xr-x表示的是目录文件

ls -a
就像你输入ls -a ,它会把/img本身和它的父目录一同显示详细信息。
注意: Linux 中 以 . 开头的文件或文件夹均为隐藏文件或隐藏文件夹。

pwd (print name of current/working directory)

pwd命令以绝对路径的方式显示用户当前工作目录。命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用/分隔。第一个/表示根目录,最后一个目录是当前目录。执行pwd命令可立刻得知您目前所在的工作目录的绝对路径名称。
Linux —— pwd

对,简而言之,就是显示当前的工作目录

pwd一般使用方法

但是输入pwd --help,文档里有更多关于pwd的知识和高级用法,之后再慢慢研究。

微信截图_20170919172359.jpg

mkdir (make directories)

mkdir命令用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。 注意:在创建文件时,不要把所有的文件都存放在主目录中,可以创建子目录,通过它们来更有效地组织文件。最好采用前后一致的命名方式来区分文件和目录。例如,目录名可以以大写字母开头,这样,在目录列表中目录名就出现在前面。来自: Linux—— mkdir

延伸:大白虾:mkdir命令

一般用法就不写了。

mkdir -p

递归的创建多个目录


递归的创建目录
mkdir xx xx

这个方法是一次创建多个同级目录

创建时,目录名空格隔开

这里,同时创建了同级目录one two,递归创建了目录1/2/3。

同样的,删除多个同级目录也是空格隔开目录名就可以了,但是需要加上-r,使用递归删除(rm -r)来完成。

删除

这里很容易把mkdir -p 和rm -r 搞混,所以要注意区分。

mkdir -v

创建目录同时提示信息
这里的-vp,意思就是同时使用-v与-p的用法,即:递归的创建/b/c,并提示信息

递归创建目录

rm (remove files or directories)

要注意的是,Linux、Mac下的rm操作是会有重复确认的,即需要你输入yes or no,但windows不会这样,还不知道为什么,难道因为有一个回收站的原因?

rm

单单的rm,可以删除目录下的文件,但不能删除整个目录。

使用rm删除一个文本文档

想要删除整个目录下的文件包括目录本身,需要使用rm -r

rm -r
使用递归(recursion)方式来删除目录下文件 rm -r

首先递归创建目录1/2/3,之后rm -r递归删除,包括1/和所有子目录下文件都删除掉了。
这里的删除操作,在Linux下会一项一项的需要你确认(Y or N)。

rm -frm -fr

如果不想回复,直接确认所有删除,可以使用rm -f(force)强制删除。

explainshell.com的说明

但是我这里只有win的,而win下是没有确认这一交互的,无法演示,有机会再来补吧。

资料补充:Linux下rm命令使用详解

mv (move (rename) files)

mv命令包含了两个功能,移动和重命名


explainshell.com的说明 重命名

这里重命名了一个.txt文件

mv详细介绍
rm 重命名目录
重命名目录
rm 移动文件

移动一个.txt文件


移动一个.txt文件

移动多个.txt文件


移动多个.txt文件

也可使用通配符,移动所有以.txt结尾的文件

使用通配符
rm 移动目录

d/e/移动到c/

移动多个目录到c/中
rm -v 显示移动信息
移动目录和.txt文件
rm -i 使用交互模式

当你将文件移动到其它位置,而那个位置恰好有同样的文件,这时 mv 命令会覆盖掉原来的文件。对于mv的这一行为一般不会有什么提示。如果想产生一个关于覆盖文件的提示,我们可以使用-i选项。

关于rm命令还有很多操作,待补充......

Linux 移动或重命名文件/目录-mv 的10个实用例子
简明Linux命令行笔记:mv - Nerxious -

cp (copy files and directories)

微信截图_20170919221712.jpg explainshell.com的说明

不带任何参数下,运行cp

复制.txt文件到另一个目录下

同时拷贝多个文件

将多个.txt文件复制到绝对路径下的目录

拷贝一个目录
要拷贝一个目录的话会有点棘手。你需要添加 -r 或者 -R 选项来实现。-r或-R 选项表明递归操作。无论该目录是否为空目录,这个选项都是必要的。如下示例

需要注意的一件事,有可能你需要移除在目录名尾部的斜杠。如果需要赋值的目录没有赋值成功,估计原因在这。
Linux cp 命令的15个示例 - 创建文件和目录的副本
Linux命令手册——cp

echo(display a line of text)

explainshell.com的说明 echo至.txt文件

这里使用了echo one111 >> x.txt
>> 表示不覆盖之前的内容


echo >>


echo xxx >! x.txt
将>>变为>!则是覆盖内容。

关于这个echo命令,翻阅资料后也不是很懂,到时正式学习Linux时在回来补充。

Linux中的15个‘echo’ 命令实例
echo命令来自: http://man.linuxde.net/echo

先到这里,留下一些文章博客。

新手指南: Linux 新手应该知道的 26 个命令

相关文章

网友评论

    本文标题:学习使用Linux Command line(Git Bash)

    本文链接:https://www.haomeiwen.com/subject/hkpisxtx.html