<ul class="first_class_ul list-paddingleft-2"><ul class="second_class_ul list-paddingleft-2"></ul></ul>
<h3>Linux】1 Shell</h3>
<h4>1. Citations</h4>
<p>Les ordinateurs ne sont pas seulement utilisés pour développer des sites Web ou des logiciels, ils sont aussi des outils entre nos mains, nos outils. <br>Shell est le principal moyen d'interagir avec les ordinateurs. L'interface graphique visuelle est en fait très limitée. Vous ne pouvez faire certaines choses qu'à l'aide de boutons prédéfinis. </p>
<h4>2. Shell</h4>
<h5>Programme 2.1</h5>
<p>La plupart des systèmes d'exploitation ont un "shell", tel que PowerShell dans Windows. Il peut y avoir quelques différences entre eux, mais ils sont généralement similaires. En installant Git, les systèmes Windows peuvent également utiliser Git Bash similaire à Linux. (Git bash sous Windows est parfois différent, et un vrai système Linux est plus recommandé) </p>
<p>Vous pouvez exécuter le programme en entrant le nom du programme dans le shell. Par exemple, s'il existe un programme appelé date, entrez simplement ($ est). l'invite de commande, tout comme >) sous Windows, </p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ date
Sat Mar 18 20:52:33 2023</pre><div class="contentsignin">Copier après la connexion</div></div><p> peut transmettre des paramètres au programme. Par exemple, l'effet d'exécution du programme <code>echo</code> est d'imprimer les paramètres qui lui sont transmis, <code>echo</code>的运行效果就是把传递给它的参数打印出来,</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ echo hello
hello</pre><div class="contentsignin">Copier après la connexion</div></div><p>此外,如果有多个参数,参数之间是使用<strong>空格</strong>分开的,如果传多单词组成的参数,可以使用<code></code>(转义字符),例如下面其实只给<code>echo</code>传了一个参数,</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ echo hello\ world
hello world</pre><div class="contentsignin">Copier après la connexion</div></div><p>系统可以找到你输入的程序,是通过 <strong>Path</strong>(路径),可以查看环境变量中的所有路径</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ echo $PATH
/c/Users/ThinkPad/bin:/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/mingw64/bin:/usr/bin:/c/Users/ThinkPad/bin:/c/Program Files/Common
...(我省略了)</pre><div class="contentsignin">Copier après la connexion</div></div><p>在你输入一个程序名,比如<code>echo</code>时,shell就会在系统的所有路径的目录中搜索该程序,你可以这样查看一个程序所在的路径</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ which echo
/usr/bin/echo</pre><div class="contentsignin">Copier après la connexion</div></div><p>补充:关于程序(命令)的参数,我们使用<code>-</code>后面接单个字母,使用<code>--</code>后面接单词。例如<code>-a</code>,<code>--all</code>。</p><h4>2.2 目录</h4><p>程序默认会在当前目录下运行。下面是一些常用的目录操作</p><table><tbody><tr class="firstRow"><th>命令</th><th>介绍</th></tr><tr><td><code>pwd</code>(print work directory)</td><td>打印当前目录路径</td></tr><tr><td><code>ls</code></td><td>列出当前目录下的文件,使用<code>-l</code>参数将显示更多详细信息</td></tr><tr><td><code>cd</code></td><td>切换目录到指定目录,使用<code>cd -</code>可回到刚才所在的目录,方便在两个目录间切换。<code>.</code>表示当前目录,<code>..</code>表示父目录,<code>~</code>表示用户目录,<code>/</code><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ ls --help</pre><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div>. </td>De plus, s'il y a plusieurs paramètres, les paramètres sont séparés par des <strong>espaces</strong>. Si vous transmettez des paramètres composés de plusieurs mots, vous pouvez utiliser des <code></code> (caractères d'échappement) par exemple. , ce qui suit ne donne en fait que <code>echo< /code> passe un paramètre, </tr><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ mv hello.txt hello2.txt</pre><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div></tbody>Le système peut trouver le programme que vous avez entré via <strong>Path</strong> (path), vous pouvez voir tous les chemins dans l'environnement variables</table><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ cp hello2.txt hello.txt</pre><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div>🎜Lorsque vous entrez un nom de programme, par exemple, lorsque <code>echo</code>, le shell recherchera le programme dans les répertoires de tous les chemins du système. Vous pouvez vérifier le chemin où se trouve un programme. situé comme ça🎜<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ rm hello2.txt</pre><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div>🎜Supplémentaire : Concernant les paramètres du programme (commande), on utilise <code>-</code> suivi d'une seule lettre, et <code>--</code> suivi d'un mot. Par exemple, <code>-a</code>, <code>--all</code>. 🎜🎜2.2 Répertoire🎜🎜Le programme s'exécutera par défaut dans le répertoire actuel. Voici quelques opérations d'annuaire couramment utilisées🎜<table><tbody><tr class="firstRow"><th>Commande</th><th>Introduction</th>🎜<tr><td><code>pwd </code>(imprimer le répertoire de travail)🎜<td>Imprimer le chemin du répertoire actuel🎜🎜<tr><td><code>ls</code>🎜<td>Liste les fichiers dans le répertoire actuel, utilisez <code> -l </code>Le paramètre affichera des informations plus détaillées🎜🎜<tr><td><code>cd</code>🎜<td>Basculez le répertoire vers le répertoire spécifié, utilisez <code>cd -</code> revenir Le répertoire dans lequel vous vous trouviez tout à l'heure permet de basculer facilement entre les deux répertoires. <code>.</code> représente le répertoire courant, <code>..</code> représente le répertoire parent, <code>~</code> représente le répertoire utilisateur et le début de <code>/</ code> représente le répertoire racine. 🎜🎜🎜🎜<p>通过<code>--help</code>参数,可以查看某个命令的用法,例如</p><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ ls --help</pre><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div><blockquote><p><strong>想一想</strong>:ls -l列出的目录列表及其信息,如何解读?</p></blockquote><p>为了对文件进行相应的操作,必须拥有整个路径的权限。下面是一些和文件操作有关的命令介绍。</p><h4>2.3 文件</h4><h5>2.3.1 简单文件操作</h5><p>你可以使用<code>mv</code>命令给文件重命名,即使它是<strong>move</strong>(移动)的意思。假设你在当前的目录下已经有个文件<strong>hello.txt</strong>,那么你可以使用命令</p><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ mv hello.txt hello2.txt</pre><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div><p>将它重命名为<strong>hello2.txt</strong>。<code>cp</code>命令可以复制文件,它的意思是<strong>copy</strong> (很显然),你可以接着刚才的命令使用</p><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ cp hello2.txt hello.txt</pre><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div><p>那么你的<strong>hello.txt</strong>文件又回来了!现在你有了两个相同内容的文件,却有着不一样的名字。但估计你会觉得这有些多余,但好在你可以使用命令<code>rm</code>删掉其中一个,就像下面这样</p><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ rm hello2.txt</pre><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div><p>好了,现在我们又回到了刚刚开始的样子,但我们刚刚的操作已经在终端留下了杂乱的信息,使用<code>clear</code>命令清除它们!</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ clear</pre><div class="contentsignin">Copier après la connexion</div></div><p>如果你想新建文件,可以使用<code>touch</code>命令,比如新建一个空<strong>hello2.txt</strong>文件</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ touch hello2.txt</pre><div class="contentsignin">Copier après la connexion</div></div><p>有时你会感觉命令的名字有些奇怪,为什么创建文件要是touch?其实它就像前面的mv命令,重命名仅仅对它的一种使用方式,而它能做的不止于此,它其实可以将文件移动到你计算机的任何一个地方!</p><p>touch是一个时间戳命令,当操作的文件不存在时就会自动新建一个文件——而不是它本身只有新建文件的功能。当你感到疑惑时可以使用touch --help看看帮助文档。而我使用echo命令同样达到新建文件的目的</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ echo '' > hello3.txt</pre><div class="contentsignin">Copier après la connexion</div></div><p>它将新建一个空文件<strong>hello3.txt</strong> 。你可能看着这些linux命令就像回到了高中背单词的时候,同一个单词有着相互略微联系的多种用法——也确实如此,单词是语言的基础。</p><p>至于刚刚命令中的<code>>></code>符号,相信大家一看就懂,我们后面也将会进一步介绍。</p><h5>2.3.2 重定向</h5><p>你可以使用重定向来将程序的输出保存到文件中,而不是直接显示在屏幕上。这里有个流的概念,每个程序都有自己的输入流与输出流,程序从自己的输入流中读取数据,并将运行结果写入到输出流中。而程序默认从键盘输入获取数据,并将运行结果写到屏幕上,我们将键盘输入称为标准输入流,将屏幕称为标准输出流。而重定向将助你获得修改程序输入、输出方向的能力——而不总是键盘和屏幕。</p><p><code>echo</code>命令将输入流中的数据传递到输出流,但我现在不想输出到屏幕,我要将输入的内容保存到文件里,那么可以使用<code>></code>——重定向输出流。</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ echo hello > hello.txt</pre><div class="contentsignin">Copier après la connexion</div></div><blockquote><p><strong>想一想</strong>:为什么<code>echo < hello.txt</code>输出为空?</p></blockquote><p>类似地可以使用<code><</code>重定向输入流。<code>cat</code>命令可以将文件输入显示到屏幕,如</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ cat hello.txt
hello</pre><div class="contentsignin">Copier après la connexion</div></div><p>现在我们通过重定向,可以将<strong>hello.txt</strong>文件的内容复制到另一个文件<strong>hello2.txt</strong>中</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ cat < hello.txt > hello2.txt
$ cat hello2.txt
hello</pre><div class="contentsignin">Copier après la connexion</div></div><p><code>cat</code>程序从<strong>hello.txt</strong>中获得输入,并将输出写入了<strong>hello2.txt</strong>中——而不是屏幕上。</p><p><code>></code>重定向的输出流是<strong>覆盖模式</strong>,对应到文件操作中,就是先清空文件中原有的内容,然后写入新内容。如果你是想在原来的基础上添加一些内容,那么<code>>></code>很适合你,它将以<strong>追加模式</strong>写入新内容。</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ echo world >> hello.txt
$ cat hello.txt
hello
world</pre><div class="contentsignin">Copier après la connexion</div></div><table><tbody><tr class="firstRow"><th>命令</th><th>介绍</th></tr><tr><td><code><</code></td><td>重定向输入流</td></tr><tr><td><code>></code></td><td>重定向输出流,以覆盖模式写入</td></tr><tr><td><code>>></code></td><td>重定向输出流,以追加模式写入</td></tr></tbody></table><h4>2.4 管道</h4><p>一个程序的输出可以保存到文件里,也可以直接传递给另一个程序。管道符号 | 的作用就是将左侧程序的输出直接传递作为右侧程序的输入。</p><p>tail命令通过-n参数,可以输出它输入中的最后n行。要仅显示ls -l /命令结果的最后两行,可以使用以下命令</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ ls -l / | tail -n 2
-rw-r--r-- 1 ThinkPad 197121 24183 Nov 28 12:20 unins000.msg
drwxr-xr-x 1 ThinkPad 197121 0 Nov 28 12:20 usr/</pre><div class="contentsignin">Copier après la connexion</div></div><p><code>tee</code>命令可以将输入同时输出到屏幕和指定的文件中,那么加上管道你可以像下面这样</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ echo linux1234 | tee hello.txt
linux1234</pre><div class="contentsignin">Copier après la connexion</div></div>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!