【Linux】1、命令行及命令参数
命令行及命令参数
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 -a
和 ls --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
简单记录-笔记