命令行及命令参数

1、命令行提示符

我打开一个图形模式的终端,如下图:

我们看到终端的一行中开头是一串字符"liuawen@DESKTOP-HVI7SH0:~$",后面是闪动的光标,提示我们输入会从光标处开始。

开头那一串字符串是什么意思呢?

是“命令行提示符”,就是提示我们在其后面输入命令。

在我们输入新的一行命令前,这个命令提示符都会出现。

"liuawen@DESKTOP-HVI7SH0:~$"这一串字符串到底表示什么意思呢?

  • liuawen 这是当前用户的名字

  • @ @ 表示英语里的 at,是“在…里面”的意思。@ 前面是用户名,后面是所在的域;

  • DESKTOP-HVI7SH0 这是当前电脑/主机的名字,liuawen@DESKTOP-HVI7SH0就表示DESKTOP-HVI7SH0这台计算机的liuawen这个用户。DESKTOP-HVI7SH0这个是可以修改的。

  • : 冒号 分隔符 没特别含义

  • ~ 这是当前所在目录的名字,会随着用户进入不同目录而改变。~ 表示当前用户的家/主目录。/home/liuawen

    liuawen@DESKTOP-HVI7SH0:~$ pwd
    /home/liuawen
    liuawen@DESKTOP-HVI7SH0:~$ ls
    git play-spring-family play-spring-family-ssh play_spring_family sources.list
    liuawen@DESKTOP-HVI7SH0:~$ cd git
    liuawen@DESKTOP-HVI7SH0:~/git$ pwd
    /home/liuawen/git
    liuawen@DESKTOP-HVI7SH0:~/git$
  • $表示当前用户具有的权限的字符

    在Linux系统中有两种可能:

    $ 美元符号,表示普通用户,有权限的限制,我这里liuawen就是一个普通用户

    # 井号 表示超级用户 root,root拥有系统所有权限。

    liuawen@DESKTOP-HVI7SH0:~$ su root
    Password:
    ➜ liuawen pwd
    /home/liuawen
    ➜ liuawen

Q:"liuawen@DESKTOP-HVI7SH0:~$"这一串字符串什么意思呢?

A:表示当前是以liuawen这个用户登录,我的电脑名称是叫这个东西DESKTOP-HVI7SH0,我当前处于~这个目录下,liuawen用户是个普通的用户,拥有有限的权限。

切换用户为root

liuawen@DESKTOP-HVI7SH0:~$ sudo su
➜ liuawen bash
root@DESKTOP-HVI7SH0:/home/liuawen#

我用得是zsh,我输入bash 换为bash

命令sudo su 切换用户为root ,美丽天使变成了root@DESKTOP-HVI7SH0:/home/liuawen#

可以用Ctrl + D 组合键 or exit 命令 or su liuawen方式退出root身份模式

root@DESKTOP-HVI7SH0:/home/liuawen# exit
➜ liuawen
liuawen@DESKTOP-HVI7SH0:~$ pwd
/home/liuawen
liuawen@DESKTOP-HVI7SH0:~$ sudo su
➜ liuawen bash
root@DESKTOP-HVI7SH0:/home/liuawen# su liuawen
liuawen@DESKTOP-HVI7SH0:~$ pwd
/home/liuawen
liuawen@DESKTOP-HVI7SH0:~$

2、命令和命令参数

我们在终端输入命令就是让计算机做我们要求的事情。

Linux中有很多很多命令,我们不要全记得,也不要全不记得,

要记得一些常用的,那不常用的命令,我们只要懂得如何去查询使用就行了。

那如何查询呢?Linux开发者为我们提供了详细的命令使用手册manual

Linux开发者的圣经 - Linux使用手册呀

这是本参考工具书,什么命令的使用方法、各种用例,都非常非常详细地记载在这部圣经里,等着我们去读去查,就能找到自己想要地答案。 这是非常非常重要的,灵活使用manual

这个命令怎么用?RTFM Read The F*cking Manual

阅读手册的重要性

读源代码的重要性 RTFSC Read The F*cking Source Code

Google、Stackoverflow一波

简单的命令

输入一个简单的命令,开启我们的Linux之旅吧。

date

➜  liuawen date
Sun Mar 22 15:37:05 DST 2020
➜ liuawen

我们在终端输入了date 这个命令,终端显示了Sun Mar 22 15:37:05 DST 2020 这是什么意思呢?

date日期的意思,date这个命令就是显示当前时间和日期。

Sun Sunday 星期天 Mar March 三月 22 22就是22这一天,15:37:05是时刻,DST应该是夏日节约时间(Daylight Saving Time)吧。2020是年份,现在2020年了。

ls

ls命令

liuawen@DESKTOP-HVI7SH0:/$ ls
bin dev home lib media opt root sbin srv tmp var
boot etc init lib64 mnt proc run snap sys usr
liuawen@DESKTOP-HVI7SH0:/$ pwd
/
liuawen@DESKTOP-HVI7SH0:/$

ls 是 list 的缩写,list 是英语“列举,列出”的意思。所以 ls 命令用于列出当前目录下的文件和目录。

在很多时候,我们不仅仅只是输入一个命令,可能输入这个命令后还要跟一些参数。

命令参数

命令参数就是写在命令之后的一些补充选项。命令和参数之间有空格隔开。格式一般是这样:

command parameters

例如:

liuawen@DESKTOP-HVI7SH0:~$ ls
git play-spring-family play-spring-family-ssh play_spring_family sources.list
liuawen@DESKTOP-HVI7SH0:~$ mkdir d1
liuawen@DESKTOP-HVI7SH0:~$ ls
d1 git play-spring-family play-spring-family-ssh play_spring_family sources.list
liuawen@DESKTOP-HVI7SH0:~$

mkdir d1 命令是创建一个叫d1的目录

短参数(一个字母)

最常用的参数形式就是一个短横线后接一个字母。格式例如:

command -a

如果我们要一次加好几个短参数,可以用空格隔开,例如:

command -a -b -C -c

多个短参数也可以合并在一起,例如上面的命令等价于:

command -abCc

请注意:参数的字母的大小写是有区别的,大写的 C 和小写的 C 通常表示不同意思。

我们来一个实际的例子,例如ls -a 就是列出当前目录下所有文件,包括隐藏文件。参数a就是all的缩写

liuawen@DESKTOP-HVI7SH0:~$ ls -a
. .cache .sudo_as_admin_successful play-spring-family-ssh
.. .config .zcompdump play_spring_family
.bash_history .profile d1 sources.list
.bash_logout .python_history git
.bashrc .sources.list.swp play-spring-family
liuawen@DESKTOP-HVI7SH0:~$ pwd
/home/liuawen

Linux 的隐藏文件是以一个.点开头的,例如.config,大多是配置文件。

ls命令没有返回任何信息,不一定就说明当前目录下什么也没有,有可能当前目录只包含隐藏文件。

长参数(多个字母)

短参数是以一个短横线-开始,而长参数是以两个短横线--开始的。格式例如:

command --parameter

如果有多个长参数-- --,是不能像多个短参数那样合并写的。我们只能以空格隔开写,格式例如:

command --parameter1 --parameter2

我们也可以组合使用短参数和长参数,格式例如:

command -paTc --parameter1 --parameter2

有时候,同一个意义的参数有短参数和长参数两种形式,效果是一样的,可以任选哪一种。

比如ls -als --all是一个作用的,都是列出当前目录下的所有文件,包括隐藏文件什么. ..的。

ls --all哦 ,ls -al是列出当前目录下的所有文件的详细信息包括隐藏文件。

liuawen@DESKTOP-HVI7SH0:~$ ls -a
. .cache .sudo_as_admin_successful play-spring-family-ssh
.. .config .zcompdump play_spring_family
.bash_history .profile d1 sources.list
.bash_logout .python_history git
.bashrc .sources.list.swp play-spring-family
liuawen@DESKTOP-HVI7SH0:~$ ls --all
. .cache .sudo_as_admin_successful play-spring-family-ssh
.. .config .zcompdump play_spring_family
.bash_history .profile d1 sources.list
.bash_logout .python_history git
.bashrc .sources.list.swp play-spring-family
liuawen@DESKTOP-HVI7SH0:~$

参数的值

有一些参数我们还要给它赋一个值才行。

例如,短参数赋值,通常是这样的command - p 10表示把 10 赋值给 p 参数。

长参数,一般是这样赋值command --parameter=10

也是表示把10 赋值给 p 参数。

看起来长参数的方式更加容易理解,但是不如短参数那么简洁。

其它参数

参数的形式没有绝对的各种各样,可能有些命令的参数格式可能是我们没怎么见过的。

而有些参数就不一样,取决于命令。例如对于ls这个命令,如果后面带了一个参数,而这个参数是一个目录的路径名的话,那么就会列出此目录下的文件。

liuawen@DESKTOP-HVI7SH0:~$ ls play-spring-family/
README.md
liuawen@DESKTOP-HVI7SH0:~$ ls play-spring-family
README.md
liuawen@DESKTOP-HVI7SH0:~$

3、小结

使用过的命令

sudo su
date
ls
mkdir d1
ls -a
ls --all
ls play-spring-family/

1、Linux 的终端在每一行的开头处会有一个被称为“命令行提示符”的字符串,一般这个命令行提示符字符串包含了你当前的用户名、你的电脑的名字和你所在的路径。这个提示符的格式是可以自行设置;

2、我们在终端输入命令就是让计算机做我们想做的事情。

3、要多多练习命令行,熟悉命令行之后速度会比客户端桌面操作效率提高很多(第四个学期学Linux操作系统,感觉到了)。

4、命令可以单独使用,也可以带短参数、长参数、参数的值。参数就好比选项样的,可以改变命令的行为;

5、命令的参数通常是由一个短横-和一个字母组成,例如 -h;也可以由两个短横和几个字母组成,例如 --help

liuawen@DESKTOP-HVI7SH0:~$ date --help
Usage: date [OPTION]... [+FORMAT]
or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Display the current time in the given FORMAT, or set the system date.

Q:浏览文件时,不同颜色代表什么意思?

A:蓝色:目录 绿色:可执行或可识别的数据文件 天蓝色:符号链接文件 黄色与黑色背景:设备 粉红色:图形图像文件 红色:存档文件 红色与黑色背景:断开的链接。

4、参考资料

1、专栏 Linux命令行与Shell脚本编程大全 - Oscar

简单记录-笔记

【Linux】1、命令行及命令参数的更多相关文章

  1. Linux命令行与命令

    Linux命令行与命令   作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Linux的命令是很重要的工具,也往往是初学者最大的瓶 ...

  2. python3获得命令行输入的参数

    外部直接执行python文件时,我们有时需要获得命令行的参数   获得命令行参数的两种方式   1.通过sys.argv sys.argv:获得一个参数列表,第一个值为文件名本身,通过sys.argv ...

  3. php从命令行中接收参数

    php一直都是作为服务器编程的主要角色,其实php也可已做脚本,比如从命令行中接收一些参数,下面就简单介绍一下如何从命令行中接收参数 代码如下: <?php var_dump($argv); ? ...

  4. Oozie命令行常用命令汇总[转]

    Oozie命令行常用命令汇总 有时候脚本跑多了就不愿意在OozieWeb端去看脚本的运行情况了.还好Oozie提供了很多命令行命令.能通过命令行直接检索自己想看到的脚本信息.在这里简单进行一下总结.一 ...

  5. Delphi的命令行编译命令

    Borland出品的Delphi,有着闪电般的编译速度,但是在界面控件使用较多.工程项目较大的时候,编译一个工程仍需要一段时间,打开庞大的Delphi IDE,也需要时间.其实,在一个工程开发结束,调 ...

  6. Windows命令行(DOS命令)教程

    一.命令行简介 命令行就是在Windows操作系统中打开DOS窗口,以字符串的形式执行Windows管理程序. 在这里,先解释什么是DOS? DOS——Disk Operation System 磁盘 ...

  7. 命令行工具命令 - run包到手机里

    命令行工具命令 你完全可以选择不输入以下这些命令,执行这些命令的结果与在 Android Studio 中单击"运行"按钮是一样的. chmod +x gradlew - 此命令只 ...

  8. Windows命令行(DOS命令)教程 -1 (转载) http://www.pconline.com.cn/pcedu/rookie/basic/10111/15325.html

    一.命令行简介 命令行就是在Windows操作系统中打开DOS窗口,以字符串的形式执行Windows管理程序. 在这里,先解释什么是DOS? DOS--Disk Operation System 磁盘 ...

  9. Java命令行的执行参数

    Java 程序命令行参数说明 启动Java程序的方式有两种: # starts a Java virtual machine, loads the specified class, and invok ...

随机推荐

  1. Linux相关介绍和安装

    目录 前言 第一章 linux介绍 1.1 linux简介 第二章 Linux起源 2.1 Unix的历史 2.2 Unix操作系统的革命 2.3 Linux系统的诞生 2.4 Linux系统的发展史 ...

  2. JS怎么把for循环出来的东西放到一个数组里

    var students=[ {name: "vehicleTravelLicenseCopyBack", id: "a1"}, {name: "ve ...

  3. dataframe,list,numpy之间的互相转换

    dataframe,numpy,list之间的互相转换 由于目前学校要做一些数据分析处理的作业有要用到dataframe,list,numpy之间的转化,所以在此总结一下这些用法. dataframe ...

  4. ES6、ES7、ES8

    ES6 https://es6.ruanyifeng.com/   ES7 1.Array.prototype.includes() includes()作用,是查找一个值在不在数组里,若是存在则返回 ...

  5. Kubernetes【K8S】(三):资源清单

    K8S中的资源 K8S中所有的内容都抽象为资源,资源实例化之后叫做对象.一般使用yaml格式的文件来创建符合我们预期的pod,这样的yaml文件我们一般成为资源清单. 名称空间级资源 工作负载型资源( ...

  6. 安装nodejs 版本控制器

    安装下载地址: https://pan.baidu.com/s/1Ed_IPDTOHxR9NShUEau-ZA 下载好后,放在安装nodejs的文件夹下 然后敲cmd,进入安装nodejs的文件夹下. ...

  7. Python科学计算库Numpy

    Python科学计算库Numpy NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. 1.简 ...

  8. 2020年的UWP(5)——UWP和Desktop Extension的双向交互

    上一篇我们提到了怎么在Desktop Extension中等待并处理UWP端发出的request.在本篇中将描述UWP和Desktop Extension双向交互的场景,即存在从两端各自发出reque ...

  9. Python读取word文档内容

    1,利用python读取纯文字的word文档,读取段落和段落里的文字. 先读取段落,代码如下: 1 ''' 2 #利用python读取word文档,先读取段落 3 ''' 4 #导入所需库 5 fro ...

  10. swift学习之label,button,imageView,字符串,数组,字典

    import UIKit class ViewController: UIViewController,UITextFieldDelegate { var textField: UITextField ...