Linux】1Shell
计算机不仅仅用来开发个网站或软件,更是我们手中的利器,我们的tools。shell是我们与计算机交互的主要方式,可视化的图形界面其实很受限,你只能通过预设的按钮去做一些事情。
大多数操作系统都拥有一个“shell”,比如Windows中的PowerShell。它们之间可能有些区别,但总的来说差不多。通过安装Git,Windows系统也能够使用类似于Linux的GitBash。(windows下的gitbash有时也不太一样,更建议真正的linux系统)
shell中可以通过输入程序名来执行程序,比如有个程序叫date,就之间输入($是命令提示符,就像windows中的>)
SatMar1820:52:332023
可以给程序传递参数,例如程序的运行效果就是把传递给它的参数打印出来,
hello
此外,如果有多个参数,参数之间是使用空格分开的,如果传多单词组成的参数,可以使用(转义字符),例如下面其实只给传了一个参数,
helloworld
系统可以找到你输入的程序,是通过Path(路径),可以查看环境变量中的所有路径
/c/Users/ThinkPad/bin:/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/mingw64/bin:/usr/bin:/c/Users/ThinkPad/bin:/c/ProgramFiles/Common
...(我省略了)
在你输入一个程序名,比如时,shell就会在系统的所有路径的目录中搜索该程序,你可以这样查看一个程序所在的路径
/usr/bin/echo
补充:关于程序(命令)的参数,我们使用后面接单个字母,使用后面接单词。例如,。
程序默认会在当前目录下运行。下面是一些常用的目录操作
命令 | 介绍 |
---|---|
(printworkdirectory) | 打印当前目录路径 |
列出当前目录下的文件,使用参数将显示更多详细信息 | |
切换目录到指定目录,使用可回到刚才所在的目录,方便在两个目录间切换。表示当前目录,表示父目录,表示用户目录,开头表示根目录。 |
通过参数,可以查看某个命令的用法,例如
$ls--help
想一想:ls-l列出的目录列表及其信息,如何解读?
为了对文件进行相应的操作,必须拥有整个路径的权限。下面是一些和文件操作有关的命令介绍。
你可以使用命令给文件重命名,即使它是move(移动)的意思。假设你在当前的目录下已经有个文件hello.txt,那么你可以使用命令
$mvhello.txthello2.txt
将它重命名为hello2.txt。命令可以复制文件,它的意思是copy(很显然),你可以接着刚才的命令使用
$cphello2.txthello.txt
那么你的hello.txt文件又回来了!现在你有了两个相同内容的文件,却有着不一样的名字。但估计你会觉得这有些多余,但好在你可以使用命令删掉其中一个,就像下面这样
$rmhello2.txt
好了,现在我们又回到了刚刚开始的样子,但我们刚刚的操作已经在终端留下了杂乱的信息,使用命令清除它们!

如果你想新建文件,可以使用命令,比如新建一个空hello2.txt文件
$touchhello2.txt
有时你会感觉命令的名字有些奇怪,为什么创建文件要是touch?其实它就像前面的mv命令,重命名仅仅对它的一种使用方式,而它能做的不止于此,它其实可以将文件移动到你计算机的任何一个地方!
touch是一个时间戳命令,当操作的文件不存在时就会自动新建一个文件——而不是它本身只有新建文件的功能。当你感到疑惑时可以使用touch--help看看帮助文档。而我使用echo命令同样达到新建文件的目的
$echo''>hello3.txt
它将新建一个空文件hello3.txt。你可能看着这些linux命令就像回到了高中背单词的时候,同一个单词有着相互略微联系的多种用法——也确实如此,单词是语言的基础。
至于刚刚命令中的符号,相信大家一看就懂,我们后面也将会进一步介绍。
你可以使用重定向来将程序的输出保存到文件中,而不是直接显示在屏幕上。这里有个流的概念,每个程序都有自己的输入流与输出流,程序从自己的输入流中读取数据,并将运行结果写入到输出流中。而程序默认从键盘输入获取数据,并将运行结果写到屏幕上,我们将键盘输入称为标准输入流,将屏幕称为标准输出流。而重定向将助你获得修改程序输入、输出方向的能力——而不总是键盘和屏幕。
命令将输入流中的数据传递到输出流,但我现在不想输出到屏幕,我要将输入的内容保存到文件里,那么可以使用——重定向输出流。
$echohello>hello.txt
想一想:为什么输出为空?
类似地可以使用重定向输入流。命令可以将文件输入显示到屏幕,如
hello
现在我们通过重定向,可以将hello.txt文件的内容复制到另一个文件hello2.txt中
$cat<hello.txt>hello2.txt
hello
程序从hello.txt中获得输入,并将输出写入了hello2.txt中——而不是屏幕上。
重定向的输出流是覆盖模式,对应到文件操作中,就是先清空文件中原有的内容,然后写入新内容。如果你是想在原来的基础上添加一些内容,那么很适合你,它将以追加模式写入新内容。
$echoworld>>hello.txt
world
命令 | 介绍 |
---|---|
重定向输入流 | |
重定向输出流,以覆盖模式写入 | |
重定向输出流,以追加模式写入 |
2.4管道
一个程序的输出可以保存到文件里,也可以直接传递给另一个程序。管道符号|的作用就是将左侧程序的输出直接传递作为右侧程序的输入。
tail命令通过-n参数,可以输出它输入中的最后n行。要仅显示ls-l/命令结果的最后两行,可以使用以下命令
-rw-r--r--1ThinkPad19712124183Nov2812:20unins000.msg
drwxr-xr-x1ThinkPad1971210Nov2812:20usr/
命令可以将输入同时输出到屏幕和指定的文件中,那么加上管道你可以像下面这样
$echolinux1234|teehello.txt
linux1234
以上就是Linux?Shell的常用操作有哪些的详细内容,更多请关注主机测评网其它相关文章!
本文来源:国外服务器--linuxshell命令大全(常用Linux命令)
本文地址:https://www.idcbaba.com/guowai/2323.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。