前言
本文建立在您已经安装好linux环境后,本文会向您介绍Shell的一些常用指令
什么是linux
Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发
布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统,并在全球范围内得到了广泛的使用和支持。Linux具有稳定、安全、灵活和可定制的特点,被广泛应用于个人计算机、服务器、移动设备和嵌入式系统等领域。(关于linux的发展历史还有许多,这里不一一列出)
Linux的主要组成部分:
内核(Kernel):Linux内核是操作系统的核心部分,负责管理硬件设备、内存管理、进程管理、文件系统等底层功能。它提供了与硬件交互的接口,使得应用程序可以在硬件上运行。
Shell:Shell是用户与操作系统交互的接口,可以通过命令行界面(如Bash、Zsh等)或图形界面(如GNOME、KDE等)来操作和管理系统。Shell提供了一系列命令和脚本语言,用于执行各种操作和管理任务。
文件系统(File System):Linux支持多种文件系统,如Ext4、XFS、Btrfs等。文件系统负责管理文件和目录的存储、组织和访问,提供了对文件的读写、复制、删除等操作。
应用程序和工具:Linux操作系统拥有丰富的开源应用程序和工具,如文本编辑器(如Vim、Emacs)、办公套件(如LibreOffice)、图形处理工具(如GIMP)、网络工具(如Firefox、Chrome)、编程工具(如GCC、Python)等。这些应用程序和工具可以满足不同用户的需求。
图形界面(Graphical User Interface,GUI):Linux提供了多种图形界面,如GNOME、KDE、Xfce等,使得用户可以通过图形化方式操作和管理系统,而不仅仅依赖于命令行界面。
Shell
首先先向您介绍Shell(用户与操作系统交互的接口)
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。
而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?
从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
将使用者的命令翻译给核心(kernel)处理。
同时,将核心的处理结果翻译给使用者。
对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。
帮助理解:如果说你是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的且有让你心动的MM小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫它王婆,它对应我们常使用的bash
基础命令行操作
添加新用户
adduser + (用户名) 输入密码:passwd +(用户名)在此之前,先看几个概念
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
/ :根目录是整个文件系统的顶级目录,用符号/表示。它是文件系统中所有其他目录和文件的起点。
/user目录是存放用户相关文件的位置,该目录下包含了用户的主目录,个人设置,文档,下载文件等。具体来说,/user目录下的/user/bin存放用户可执行的命令,/user/lib存放共享库文件
/bin:目录是存放二进制可执行文件的位置
/etc:存放系统配置文件的位置,该目录存放着许多重要的配置文件
/dev目录是存放设备文件的位置。设备文件是用来与硬件设备进行交互的借口,包括磁盘驱动器。串口。usb设备、打印机等。
cd
cd . . : 返回上级目录 cd /home/litao/linux/ : 绝对路径 例如:进入dir2目录下的MyFile目录里的dir目录
. .表示上级目录,表示在目前目录中的上级目录中的day02
例如:当前我们处于dir2目录下的MyFile目录中的dir1目录下
我们想要到MyFile目录下的dir目录中
一般地我们进入用户家目录存放相关文件
(tips:su + 用户名,切换到普通用户,下一篇文章会涉及)
pwd
作用: 显示当前用户所在目录touch
用法:touch + 文件名 作用:创建文件mkdir
用法:mkdir + 目录名 作用:创建目录tips:可以根据第一列的文件属性,d就是目录,-就是普通文件
(关于文件属性,下一篇文章会涉及)
rmdir指令与rm指令
用法:
rmdir [-p] [dirName]
-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
rm [-f-i-r-v] [dirName/dir]
-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
mv
用法:mv [选项] 源文件或目录 目标文件或目录作用:mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录
1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
cp
语法:cp [选项] 源文件或目录 目标文件或目录 功能: 复制文件或目录说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,
则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存
在的目录,则会出现错误信息
常用选项:
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链
接,则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
将test1文件copy到dir2目录下
将整个MyFile目录copy到dir2目录下
cat
语法:cat [选项] [文件] 功能: 查看目标文件的内容常用选项:
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
more
语法:more [选项] [文件] 功能:more命令,功能类似 cat常用选项:
-n 对输出的所有行编号
q 退出more
less
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!
除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
语法: less [参数] 文件
功能:
less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前
不会加载整个文件。
head
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的
开头至标准输出中,而 tail 想当然尔就是看档案的结尾。
语法: head [参数]… [文件]…
功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
选项
-n<行数> 显示的行数
输出重定向 >
tips : echo打印
将echo本应打印在显示屏上的内容输入到文件中(输入前会先清空原文件内容)
追加重定向 >>
tail
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.
语法: tail[必要参数][选择参数][文件]
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项:
-f 循环读取
-n<行数> 显示行数
|管道
以下是一个test.txt文件里的内容
要求输出最后倒数五行的前三行
我们可以通过管道 | 来完成这件事
相当于 输出 | 输入( | 前输出到 | 后处理)
uniq去重
用法:uniq + 文件名
作用:对相邻的信息进行压缩
sort
用法:sort + 文件名 作用: 对文件进行排序wc - l
用法:wc -l +文件名 作用:统计一个文件的行数find
Linux下find命令在目录结构中搜索文件,并执行指定的操作。
Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
语法: find pathname -options
man
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man
语法: man [选项] 命令
小结
本文主要介绍了关于Shell的一些基础指令,关于linux更加深入的内容将会在接下来介绍。如果文本存在疏漏或错误的地方,还请您能够指出。