Ubutu下的Shell操作

news2024/12/24 22:11:23

前言

在学习Ubuntu系统时,Shell操作是必不可少的知识。本篇文章是记录我学习Linux系统时,Ubutu下的Shell操作,希望我的分享对大家有所帮助!

目录

前言

一、什么时是Shell

二、Shell的基本操作

三、常用的Shell命令

1、目录信息查看命令ls

2、目录切换命令cd 

3、当前路径显示命令 pwd

4、系统信息查看命令 uname

5、清屏命令 clear

6、 切换用户执行身份命令 sudo

7、 添加用户命令 adduser

8、删除用户命令 deluser

9、切换用户命令 su

10、显示文件内容命令 cat

11、显示和配置网络属性命令 ifconfig

12、系统帮助命令 man

13、 系统重启命令 reboot

14、系统关闭命令 poweroff

 15、软件安装命令 install

四、结语 


一、什么时是Shell

在我学习Linux的时候,经常会看到Shell这种操作,为了弄明白它到底是什么,我上网查阅了很多资料,但是得到的都是各种高深的专业解释。一时半会儿搞得头晕。慢慢地我于是有了自己的理解——

所谓的Shell操作,其实就是敲命令!国外人才会洋里洋气地叫其Shell。所以,当我再次看到Shell操作时,我头脑李想起来的就是:在终端敲命令!净多个Shell命令按照一定的格式放在一个文本里,那么这个文本就是所谓的Shell脚本!

从一些资料里得知:严格来讲,Shell是一个应用程序,它负责接受用户输入的命令。然后根据用户的命令做出相应的动作。

更重要的是,Shell负责将应用层或者用户输入的命令传递给系统内核,由操作系统内核来完成相应的工作。最后将结果反馈给应用层或者用户。

上面这段话很重要,希望读者仔细揣摩!!!

二、Shell的基本操作

Shell既然是敲命令,那敲出的命令肯定是有一定的格式的。Shell命令的格式如下:

comand         -options         [ argument ]

我对上面的命令格式解释一下:

1、comand:Shell命令名称;

2、options:选项,同一种命令可能有不同的选项,不同的选项对应着不同的功能;

3、argument:Shell命令是可以带参数的,也可以不带参数运行;

举个简单的例子:

同样以命令“ls”为例,下面“ls”命令的三种不同格式其结果也不同:

这三种命令的运行结果是不同的:

在图中“ls”命令用来打印出当前目录下的所有文件和文件夹,而“ls -l”同样是打印出当前目录下的所有文件和文件夹,但是此命令会列出所有文件和文件夹的详细信息,比如文件大小、拥有者、创建日期等等。最有一个“ls /usr”是用来打印出目录“/usr”下的所有文件和文件夹。

Shell 命令是支持自动补全功能的,因为 Shell 命令非常多,如果不作自动补全的话就需要
用户去记忆这些命令的全部字母。
使用自动补全功能以后我们只需要输入命令的前面一部分字母,然后按下 TAB 键,如果只有一个命令匹配的话就会自动补全这个命令剩下的字母。如果有多个命令匹配的话系统就会发出报警声音,此时在按下一次 TAB 键就会列出所有匹配的命令,比如我们输入字母“if”,然后按下 TAB 键,结果如图所示:

从图中可以看出,以“if”开头的命令有 5 个,我们以“ifconfig”为例,此命令是用来查看网卡信息的,我们重新输入“ifc”然后在按一下 TAB 键,就会自动补全出“ifconfig”命令,因为以“ifc”开头的命令只有一个,结果如图所示:

 三、常用的Shell命令

我们做嵌入式开发用的最多就是 Shell 命令, Shell 命令是所有的 Linux 系统发行版所通用
的,并不是说我在 Ubuntu 下学会了 Shell 命令,换另外一个 Linux 发行版操作系统以后就没用了(不同的发行版 Linux 系统可能会自定义一些命令)。下面我先来介绍一些 Shell 下常用的命令:

1、目录信息查看命令ls

文件浏览时Linux终端下的最基本的操作了。Shell下的文件浏览命令格式如下:

ls    [ 选项 ]    [ 路径 ]

ls命令主要用于显示指定目录下的内容,列出指定目录下包含的所有文件及子目录,它的主要参数有:

-a    显示所有文件以及子目录,包括以“ . ”开头的隐藏文件。

-l     显示文件的详细信息,你如文件的形态、权限、所有者、大小等信息。

-t     将文件的创建信息排序列出。

-A    和-a 一样,但是不列出“.” (当前目录)和“..” (父目录)。

-R    递归列出所有文件,包括子目录中的文件。

Shell 命令里面的参数是可以组合在一起用的,比如组合“-al”就是显示所有文件的详细信息,包括以“.”开头的隐藏文件, ls 命令使用如图所示:
 

2、目录切换命令cd 

要想在 Shell 中切换到其它的目录,使用的命令是 cd,命令格式如下:
cd     [ 路径 ]

路径就是我们要进入的目录路径,比如下面所示操作:

举个简单的例子: 比如我们要进入到目录“/usr”下去,并且查看“/usr”下有什么文件,操作如图所示:

我们先使用命令“cd /usr”进入到“/usr”目录下,然后使用“ls”命令显示“/usr”目录下的所有文件。仔细观察图可以看到,当我们切换到其它目录以后在符号“$”前面就会以蓝色的字体显示出当前目录名字,如图所示:

3、当前路径显示命令 pwd

pwd 命令用来显示当前工作目录的绝对路径,不需要任何的参数,使用如图所示:

4、系统信息查看命令 uname

要查看当前系统信息,可以使用命令 uname,命令格式如下:
uname     [ 选项 ]

[ 选项 ]的参数可以是: 

-r      列出当前系统的具体内核版本号

-s     列出系统内核名称

-o     列出系统信息

使用实列: 

5、清屏命令 clear

clear 命令用于清除终端上的所有内容,只留下一行提示符。

6、 切换用户执行身份命令 sudo

Ubuntu(Linux)是一个允许多用户的操作系统,其中权限最大的就是超级用户 root,有时候
我们执行一些操作的时候是需要用 root 用户身份才能执行,比如安装软件。通过 sudo 命令可以使我们暂时将身份切换到 root 用户。当使用 sudo 命令的时候是需要输入密码的,这里要注意输入密码的时候是没有任何提示的!命令格式如下:

sudo     [ 选项 ]      [ 命令 ]

选项的主要参数是: 

-h        显示帮助信息

-l         列出当前用户可执行与不可执行的命令

-p        改变询问密码的提示符

假如我们现在要创建一个新的用户 test,创建新用户的命令为“adduser”,创建新用户的权
限只有 root 用户才有,我们在装系统的时候创建的那个用户是没有这个权限的,比如我的
“zxf”用户。所以创建新用户的话需要使用“sudo”命令以 root 用户执行“adduser”这个命令,如图所示:
 

7、 添加用户命令 adduser

上面使用sudo命令时已经了解过“adduser”指令,此命令需要用户使用root身份去进行。命令格式如下:

adduser    [ 参数 ]   [ 用户名 ]

常用的参数如下:

-system                           添加一个系统用户

-hme DIR                         DIR表示用户的主目录路径

-uid ID                              ID表示用户的uid

-ingroup GRP                  表示用户所属的组名

8、删除用户命令 deluser

前面讲了添加用户的命令,那肯定也有删除用户的命令,删除用户使用命令“deluser”,命
令参数如下:

geluser     [ 参数 ]   [ 用户名 ]

主要参数有: 

-system                   当删除用户时一个系统用户时才能删除

-remove-home        删除用户的主目录

-remove-all-files     删除与用户有关的所有文件      

-backup                   备份用户信息

命令“deluser”也需要使用“sudo”来以 “root” 用户运行,这里删除之前创建的用户test为例:

9、切换用户命令 su

前面在讲解命令“sudo”的时候说过,“sudo”是以 root 用户身份执行一个命令,并没有更改当前的用户身份,所有需要 root 身份执行的命令都必须在前面加上“sudo”。命令“su”可以直接将当前用户切换为 root 用户,切换到 root 用户以后就可以尽情的进行任何操作了!因为你已经获得了系统最高权限,在 root 用户下,所有的命令都可以无障碍执行,不需要在前面加上“sudo”,“su”命令格式如下:

su        [ 选项 ]   [ 用户名 ]

常用参数如下:

-c -command                 执行指定的命令,执行完毕以后恢复原用户身份。
-login                              改变用户身份,同时改变工作目录和PATH环境变量。
-m                                   改变用户身份的时候不改变环境变量
-h                                     显示帮助信息
以切换到root用户为例,使用如图所示:

在图中,先使用命令“sudo su”切换到 root 用户, su 命令不写明用户名的话默认切换到 root 用户。然后输入密码,密码正确的话就会切换到 root 用户,可以看到切换到 root 用户以后提示符的“@”符号前面的用户名变成了“root”,表示当前的用户是 root 用户。并且以“#”结束。
注意!!由于 root 用户权限太大,稍微不注意就可能删除掉系统文件,导致系统奔溃,因此
强烈建议大家,不要以root 用户运行 Ubuntu。当要用到root 身份执行某些命令的时候使用“sudo”命令即可。
要切换回原来的用户,使用命令“sudo su 用户名”即可。

10、显示文件内容命令 cat

查看文件内容是最常见的操作了,在 windows 下可以直接使用记事本查看一个文本文件内
容, linux 下也有类似记事本的软件,叫做 gedit,找到一个文本文件,双击打开,默认使用的就是 gedit,如图所示:

我们现在讲解的是 Shell 命令,那么 Shell 下有没有办法读取文件的内容呢?肯定有的,那
就是命令“cat”,命令格式如下:

cat          [ 选项 ]           [ 文件 ] 

主要参数如下: 

-n                       由1开始对所有输出的行进行编号。

-b                       和-n类似,但是不对空白行编号。
-S                       当遇到连续两个行以上空白行的话就合并为一个行空白行。

比如我们以查看文件“/etc/environment”的内容为例,结果如图所示:

11、显示和配置网络属性命令 ifconfig

ifconfig 是一个跟网络属性配置和显示密切相关的命令,通过此命令我们可以查看当前网络属性,也可以通过此命令配置网络属性,比如设置网络 IP 地址等等,此命令格式如下:
ifconfig      interface    options | address

主要的参数如下: 

interface               网络接口名称,比如eth0等。
up                          开启网络设备。
down                     关闭网络设备。
add                        IP地址,设置网络IP地址。

netmask add         子网掩码。

12、系统帮助命令 man

Ubuntu 系统中有很多命令,这些命令都有不同的格式,不同的格式对应不同的功能,要完
全记住这些命令和格式几乎是不可能的,必须有一个帮助手册,当我们需要了解一个命令的详细信息的时候查阅这个帮助手册就行了。 Ubuntu 提供了一个命令来帮助用户完成这个功能,那就是“man”命令,通过“man”命令可以查看其它命令的语法格式、主要功能、主要参数说明等。“man”的命令格式如下:

man  [ 命令名 ]

打开“ifconfig”这个命令的详细说明

13、 系统重启命令 reboot

通过点击 Ubuntu 主界面右上角的齿轮按钮来选择关机或者重启系统,同样的我们也可以
使用 Shell 命令“reboot”来重启系统,直接输入命令“reboot”然后点击回车键即可,如图所示:

14、系统关闭命令 poweroff

使用命令“reboot”可以重启系统,使用命令“poweroff”就可以关闭系统,在终端中输入命令“poweroff”然后按下回车键即可关闭 Ubuntu 系统,如图所示:

15、软件安装命令 install

截至目前,我们都没有讲过 Ubuntu 下如何安装软件,因为 Ubuntu 安装软件不像 Windows下那样,直接双击.exe 文件就开始安装了。 Ubuntu 下很多软件是需要先自行下载源码,下载源码以后自行编译,编译完成以后使用命令“intsall”来安装。当然 Ubuntu下也有其它的软件安装方法,但是用的最多的就是自行编译源码然后安装,尤其是嵌入式Linux开发。命令"install”格式如下:

“install”命令是将文件(通常是编译后的文件)复制到目的位置,在前三种形式中,将源文件复制到目标文件或将多个源文件复制到一个已存在的目录中同时设置其所有权和权限模式。在第四种形式会创建指定的目录。命令“install”通常和命令“apt-get”组合在一起使用的,关于“apt-get”命令大家可以看我后面更新的内容。

四、结语 

以上就是 Shell 最基本一些命令,记录至此,相信我的分享会给你带来帮助!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1404899.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++提高编程——STL:string容器、vector容器

本专栏记录C学习过程包括C基础以及数据结构和算法,其中第一部分计划时间一个月,主要跟着黑马视频教程,学习路线如下,不定时更新,欢迎关注。 当前章节处于: ---------第1阶段-C基础入门 ---------第2阶段实战…

机器学习:什么是监督学习和无监督学习

目录 一、监督学习 (一)回归 (二)分类 二、无监督学习 聚类 一、监督学习 介绍:监督学习是指学习输入到输出(x->y)映射的机器学习算法,监督即理解为:已知正确答案…

React三大属性

我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 知…

【C++修行之道】STL(初识pair、vector)

目录 一、pair 1.1pair的定义和结构 1.2pair的嵌套 1.3pair自带排序规则 1.4代码示例 二、vector 2.1vector的定义和特性 2.2vector的初始化 一维初始化: 2.3vector的常用函数 2.4vector排序去重 排序: 去重: 示例: 一、pair …

Redis(六)

1、Redis的缓存淘汰策略 1.1、内存配置 首先查看Redis最大的占用内存,打开redis配置文件,设置maxmemory参数,maxmemory是bytes字节类型,注意转换。 打开配置文件发现没有配置,那么默认是多少的内存,是这样…

[pytorch入门] 3. torchvision中的transforms

torchvision中的transforms 是transforms.py工具箱,含有totensor、resize等工具 用于将特定格式的图片转换为想要的图片的结果,即用于图片变换 用法 在transforms中选择一个类创建对象,使用这个对象选择相应方法进行处理 能够选择的类 列…

MAXWELL

MAXWELL 一、maxwell是什么 maxwell 官网地址:http://maxwells-daemon.io/ 因为官网是纯英文的,倒是不难懂,但总觉得写的略粗糙(也可能笔者英文水平确实拉胯,有待提高)。所以还是自己百度了一下。 当my…

实战:加密传输数据解密

前言 下面将分享一些实际的渗透测试经验,帮助你应对在测试中遇到的数据包内容加密的情况。我们将以实战为主,技巧为辅,进入逆向的大门。 技巧 开局先讲一下技巧,掌握好了技巧,方便逆向的时候可以更加快速的找到关键…

hpa自动伸缩

1、定义:hpa全称horizontal pod autoscaling(pod的水平自动伸缩),这是k8s自带的模块。pod占用CPU的比率到达一定阀值会触发伸缩机制(根据CPU使用率自动伸缩) replication controller副本控制器&#xff0c…

TortoiseSVN源码安装与迁移全攻略

一、前言 随着版本控制系统的普及,越来越多的开发者和团队开始使用SVN(Subversion)来管理代码。本文将详细介绍TortoiseSVN的源码安装及迁移过程,帮助您轻松掌握这一版本控制工具。 二、TortoiseSVN源码安装 依赖环境安装&…

写给不耐烦程序员的 JavaScript 指南(五)

第七部分:集合 原文:exploringjs.com/impatient-js/pt_collections.html 译者:飞龙 协议:CC BY-NC-SA 4.0 下一步:30 同步迭代 三十、同步迭代 原文:exploringjs.com/impatient-js/ch_sync-iteration.htm…

SRC实战 | EDU通用漏洞分享

又是没事干的一天,写一下之前挖的两个通用漏洞。 1.信息搜集 首先就是信息搜集,挖edu没账号怎么办呢?sg不行,咱就找能自己注册的站。 Hunter:web.title”XX大学”&&web.body”注册” Fofa:host”…

11-数组-二维区域和检索 - 矩阵不可变

这是数组的第11篇算法,力扣链接。 给定一个二维矩阵 matrix,以下类型的多个请求: 计算其子矩形范围内元素的总和,该子矩阵的 左上角 为 (row1, col1) ,右下角 为 (row2, col2) 。 实现 NumMatrix 类: NumMa…

低代码开发中的Nacos配置:跨平台跳转的解决方案

在当今低代码开发的时代,平台的易用性和灵活性非常重要。右上角平台跳转作为用户界面中常见的交互元素,对于提高用户体验具有举足轻重的地位。然而,有时候我们会遇到跳转失效的情况,这无疑给用户带来了困扰。本文以JVS低代码平台为…

谷歌 2024 新年目标曝光:一边做地表最强 AI,一边裁更多员工丨 RTE 开发者日报 Vol.132

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

【软考中级】3天擦线过软考中级-软件设计师

前提:已有数据结构、操作系统、计算机网络、数据库基础 (风险系数较高,请谨慎参考) 贴一个成绩单hhhh 弯路:很早之前有看过一遍网上的软考课程,也记录了一些笔记,然而听完还是啥都记不住。 推…

【Linux工具篇】软件包管理器yum

目录 什么是软件包 什么是yum Linux系统的生态 yum的相关操作 如何搜索软件 如何安装软件 如何卸载软件 关于rzsz rz&window->Linux sz&Linux->windows wget&scp&Linux<->Linux yum本地配置 如何配置&#xff1f; 有趣好玩的Linux …

移动开发行业——鸿蒙OS NEXT开出繁花

1月18日&#xff0c;华为宣布HarmonyOS NEXT开发者预览版开放申请&#xff0c;根据官方注解&#xff0c;这个版本的鸿蒙系统有个更通俗易懂的名字——“星河版”&#xff0c;也被称为“纯血”鸿蒙。 根据官方解释&#xff0c;之所以取名星河版&#xff0c;寓意鸿蒙OS NEXT就像…

拉脱维亚市场开发攻略,带你走进“波罗的海之珠”

拉脱维亚是东欧的一个发达资本主义国家&#xff0c;也是欧盟成员国&#xff0c;是一个开放型经济体&#xff0c;经济增长率也是在欧盟排前列。中国是拉脱维亚除了欧盟以外第二大贸易国&#xff0c;拉脱维亚经济发达&#xff0c;市场稳定&#xff0c;市场潜力还是非常不错的&…

IP地址和端口

1. IP地址&#xff1a; 简介&#xff1a; IP 协议是为计算机网络相互连接进行通信而设计的协议。在因特网中&#xff0c;它是能使连接到网上的所 有计算机网络实现相互通信的一套规则&#xff0c;规定了计算机在因特网上进行通信时应当遵守的规则。任 何厂家生产的计算机系统…