Linux】1 Shell 1. Quotes 컴퓨터는 웹사이트나 소프트웨어를 개발하는 데 사용될 뿐만 아니라 우리 손에 있는 도구이기도 합니다. 쉘은 컴퓨터와 상호 작용하는 주요 방법입니다. 시각적 그래픽 인터페이스는 실제로 사전 설정된 버튼을 통해서만 수행할 수 있는 작업이 매우 제한되어 있습니다. 2. Shell 2.1 프로그램 Windows의 PowerShell과 같은 대부분의 운영 체제에는 "셸"이 있습니다. 그들 사이에는 약간의 차이가 있을 수 있지만 일반적으로 유사합니다. Git을 설치하면 Windows 시스템에서도 Linux와 유사한 Git Bash를 사용할 수 있습니다. (Windows 아래의 Git bash는 가끔 다르며 실제 Linux 시스템이 더 권장됩니다) 쉘에 프로그램 이름을 입력하여 프로그램을 실행할 수 있습니다. 예를 들어 date라는 프로그램이 있으면 ($는 명령 프롬프트는 Windows $ date Sat Mar 18 20:52:33 2023와 마찬가지로 프로그램에 매개변수를 전달할 수 있습니다. 예를 들어 echo 프로그램의 실행 효과는 전달된 매개변수를 인쇄하는 것입니다. echo的运行效果就是把传递给它的参数打印出来,$ echo hello hello此外,如果有多个参数,参数之间是使用空格分开的,如果传多单词组成的参数,可以使用(转义字符),例如下面其实只给echo传了一个参数,$ echo hello\ world hello world系统可以找到你输入的程序,是通过 Path(路径),可以查看环境变量中的所有路径$ 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 ...(我省略了)在你输入一个程序名,比如echo时,shell就会在系统的所有路径的目录中搜索该程序,你可以这样查看一个程序所在的路径$ which echo /usr/bin/echo补充:关于程序(命令)的参数,我们使用-后面接单个字母,使用--后面接单词。例如-a,--all。 2.2 目录 程序默认会在当前目录下运行。下面是一些常用的目录操作 命令 介绍 pwd(print work directory) 打印当前目录路径 ls 列出当前目录下的文件,使用-l参数将显示更多详细信息 cd 切换目录到指定目录,使用cd -可回到刚才所在的目录,方便在两个目录间切换。.表示当前目录,..表示父目录,~表示用户目录,/또한 매개변수가 여러 개인 경우 매개변수는 공백으로 구분됩니다. 여러 단어로 구성된 매개변수를 전달하는 경우 (이스케이프 문자)를 사용할 수 있습니다. , 다음은 실제로 echo 매개변수 전달만 제공합니다. $ ls --help 시스템은 Path(경로)를 통해 입력한 프로그램을 찾을 수 있으며 환경의 모든 경로를 볼 수 있습니다. 변수$ mv hello.txt hello2.txt프로그램 이름을 입력하면(예: echo) 쉘은 시스템의 모든 경로에 있는 디렉토리에서 프로그램을 검색합니다. 프로그램이 있는 경로를 확인할 수 있습니다. 🎜$ cp hello2.txt hello.txt🎜추가: 프로그램(명령)의 매개변수와 관련하여 - 뒤에 단일 문자를 사용하고 -- 뒤에 단어를 사용합니다. 예를 들어 -a, --all입니다. 🎜🎜2.2 디렉터리🎜🎜 프로그램은 기본적으로 현재 디렉터리에서 실행됩니다. 다음은 일반적으로 사용되는 디렉터리 작업입니다.🎜 명령 소개🎜 pwd (작업 디렉터리 인쇄)🎜 현재 디렉터리 경로 인쇄🎜🎜 ls🎜 현재 디렉터리의 파일 나열, 사용 -l 매개변수는 더 자세한 정보를 표시합니다🎜🎜 cd🎜 디렉토리를 지정된 디렉토리로 전환합니다. cd -를 사용하세요. 반환하려면 방금 있었던 디렉터리를 사용하면 두 디렉터리 사이를 쉽게 전환할 수 있습니다. .는 현재 디렉터리를 나타내고, ..는 상위 디렉터리를 나타내고, ~는 사용자 디렉터리를 나타내고, /의 시작 부분을 나타냅니다. code>는 루트 디렉터리를 나타냅니다. 🎜🎜🎜🎜通过--help参数,可以查看某个命令的用法,例如$ ls --help想一想:ls -l列出的目录列表及其信息,如何解读? 为了对文件进行相应的操作,必须拥有整个路径的权限。下面是一些和文件操作有关的命令介绍。 2.3 文件 2.3.1 简单文件操作 你可以使用mv命令给文件重命名,即使它是move(移动)的意思。假设你在当前的目录下已经有个文件hello.txt,那么你可以使用命令$ mv hello.txt hello2.txt将它重命名为hello2.txt。cp命令可以复制文件,它的意思是copy (很显然),你可以接着刚才的命令使用$ cp hello2.txt hello.txt那么你的hello.txt文件又回来了!现在你有了两个相同内容的文件,却有着不一样的名字。但估计你会觉得这有些多余,但好在你可以使用命令rm删掉其中一个,就像下面这样$ rm hello2.txt好了,现在我们又回到了刚刚开始的样子,但我们刚刚的操作已经在终端留下了杂乱的信息,使用clear命令清除它们!$ clear如果你想新建文件,可以使用touch命令,比如新建一个空hello2.txt文件$ touch hello2.txt有时你会感觉命令的名字有些奇怪,为什么创建文件要是touch?其实它就像前面的mv命令,重命名仅仅对它的一种使用方式,而它能做的不止于此,它其实可以将文件移动到你计算机的任何一个地方! touch是一个时间戳命令,当操作的文件不存在时就会自动新建一个文件——而不是它本身只有新建文件的功能。当你感到疑惑时可以使用touch --help看看帮助文档。而我使用echo命令同样达到新建文件的目的$ echo '' > hello3.txt它将新建一个空文件hello3.txt 。你可能看着这些linux命令就像回到了高中背单词的时候,同一个单词有着相互略微联系的多种用法——也确实如此,单词是语言的基础。 至于刚刚命令中的>>符号,相信大家一看就懂,我们后面也将会进一步介绍。 2.3.2 重定向 你可以使用重定向来将程序的输出保存到文件中,而不是直接显示在屏幕上。这里有个流的概念,每个程序都有自己的输入流与输出流,程序从自己的输入流中读取数据,并将运行结果写入到输出流中。而程序默认从键盘输入获取数据,并将运行结果写到屏幕上,我们将键盘输入称为标准输入流,将屏幕称为标准输出流。而重定向将助你获得修改程序输入、输出方向的能力——而不总是键盘和屏幕。 echo命令将输入流中的数据传递到输出流,但我现在不想输出到屏幕,我要将输入的内容保存到文件里,那么可以使用>——重定向输出流。$ echo hello > hello.txt 想一想:为什么echo 5c5a8058c4ec53745d781e9d23512638重定向的输出流是覆盖模式,对应到文件操作中,就是先清空文件中原有的内容,然后写入新内容。如果你是想在原来的基础上添加一些内容,那么>>很适合你,它将以追加模式写入新内容。$ echo world >> hello.txt $ cat hello.txt hello world 命令 介绍 1425b567f32074e1fba21625d3c7885e 重定向输出流,以覆盖模式写入 >> 重定向输出流,以追加模式写入 2.4 管道 一个程序的输出可以保存到文件里,也可以直接传递给另一个程序。管道符号 | 的作用就是将左侧程序的输出直接传递作为右侧程序的输入。 tail命令通过-n参数,可以输出它输入中的最后n行。要仅显示ls -l /命令结果的最后两行,可以使用以下命令$ 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/tee命令可以将输入同时输出到屏幕和指定的文件中,那么加上管道你可以像下面这样$ echo linux1234 | tee hello.txt linux1234