ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

虚拟机的状态-mkdir-主提示符-PS1-shell脚本

2022-02-06 22:03:23  阅读:248  来源: 互联网

标签:shell mkdir 虚拟机 lihua 用户 192 Linux root localhost


目录

一、虚拟机的状态

二、mkdir深入

三、【小知识】为什么服务器喜欢安装的时候使用CLI界面

        3.1 基础知识

        3.2【缘由(答案)】

        3.3具体示例

        【拓展】安迪比尔原则

四、主提示符

         4.1 PS1

        【拓展】如何知道PS1的内容?

        【man bash 的使用】

        4.2 echo

        4.3 Linux里的shell编程(bash)定义变量:

        4.4 新建用户

        4.4.1 新建用户

        4.4.2 使用新建用户登录

        4.4.3 切换用户

        4.5 [root@localhost ~]#

        4.6 简单了解内核(kernel)

        4.7 主机名

        4.7.1 查看主机名

        4.7.2 修改主机名(临时,重启系统后失效)

五、拓展知识

        5.1 文件的后缀名问题

        5.2 家目录( ~ )和根目录( / )的区别

六、shell脚本

        6.1【示例】

        6.1.1 for循环的语法结构


一、虚拟机的状态

1.关机:虚拟机不再运行,关闭系统。如果需要使用Linux系统,就要开机,开机需要启动时间

2.挂起:(常用)虚拟机暂停在某个状态,可以快速恢复到暂停状态,节省了开机启动的时间。

两种状态下,xshell均无法连接

二、mkdir深入

只有同时新建多个文件夹时使用花括号{},若只有一个文件夹的情况下使用花括号{},花括号{}会变成文件名

【示例】

 

-p :选项,一次性创建所有文件夹(目录)

[root@192 lianxi]# mkdir -p /wulin/{wudang/{zhangsanfeng},huashan/linghuchong,shaolin/xuzhu,mingjiao/{zhangwuji,chenyouliang}}

[root@192 lianxi]# tree /wulin
/wulin
├── huashan
│   └── linghuchong
├── mingjiao
│   ├── chenyouliang
│   └── zhangwuji
├── shaolin
│   └── xuzhu
└── wudang
    └── {zhangsanfeng}

9 directories, 0 files
[root@192 lianxi]#

三、【小知识】为什么服务器喜欢安装的时候使用CLI界面

        3.1 基础知识

CLI :command line interface 命令行界面 ==》专业的Linux学习方法==》服务器

GUI :graphic user interface 用户图形界面 ==》用于办公电脑==》Ubuntu

        3.2【缘由(答案)】

资源消耗:cpu的使用

                内存的使用

CLI:系统消耗更加少的cpu和内存==》安装好的==》服务器“省吃俭用给用户提供更好的服务

GUI:运行时需要开启更多的程序,消耗的cpu和内存更多

        3.3具体示例

Windows xp、win7、win10 ==》系统的升级对硬件要求越来越高

手机越用越卡==(因为)==》背后的程序越来越大,功能越来越多,需要有更好的cpu和更大的内存

        【拓展】安迪比尔原则

安迪-比尔定理:安迪-比尔定理 (Andy and Bill's Law)是对IT产业中软件和硬件升级换代关系的一个概括。原话是 "Andy gives, Bill takes away.(安迪提供什么,比尔拿走什么。)" 安迪指英特尔前CEO安迪·格鲁夫,比尔指微软前任CEO比尔·盖茨,这句话的意思是,硬件提高的性能,很快被软件消耗掉了。

四、主提示符

         4.1 PS1

PS1 即为 prompt symbol 1 第一提示符,是Linux预定义的变量

预定义:操作系统提前(预先)定义好的,不需要使用者再去定义的

自定义:自己定义


[root@192 ~]# set|grep PS1
PS1='[\u@\h \W]\$ '
[root@192 ~]# echo $PS1
[\u@\h \W]\$

[\u@\h \W]\$

[ ]只是符号,没有特殊含义,只是看起来在一个范围

  • \u 表示引用我们当前登录linux的用户名 user
  • @ 只是分割符号
  • \h 表示引用我们的Linux系统的主机名 hostname
  • \w 表示当前所在的路径的文件夹的名字 working 工作目录=当前目录
  • \$ 表示用户的提示符是#还是使用$

        如果是root 就使用# 如果是普通用户就使用$

  • \t 表示引用当前Linux系统里的时间 time
[root@192 ~]# PS1='[\h@\u \W]\$'  修改PS1的值,立即生效
[192@root ~]#
[192@root ~]#PS1='[\h@\u@\t \W]\$'
[192@root@17:17:37 ~]#

【注】修改变量时,最好使用单引号

        【拓展】如何知道PS1的内容?

man bash  #查看bash命令的手册(使用指南、使用说明书)

bash是一个终端程序的名字,我们输入命令ls,bash会帮我们去执行,执行完成后会将结果显示给我们。

面向最终的用户,相当于最后的末端,下面没有东西。

        面向最终用户的端口==>接口(界面)==>人

进程:正在进行的程序

人==>命令==>bash==>查找命令并执行==>Linux内核

        【man bash 的使用】

1.输入/PS1 即为查找PS1字符串

2.按n 表示下一个

按N 表示上一个 | next

3.按q退出 quit

4.按回车,是逐行向下走

        4.2 echo

是Linux里输出内容的命令,类似于python里的print,c语言里的printf

[root@192 ~]# echo "hello,world"
hello,world

        4.3 Linux里的shell编程(bash)定义变量:


[root@192 ~]# sg="lihua" 
[root@192 ~]# mn="xiaoyan"
[root@192 ~]# echo $mn
xiaohong

  • sg 为变量名
  • = 赋值符号❗左右不能空格
  • "lihua" 为字符串,字符串习惯用双引号或单引号括起来,赋值内容无空格时可不加引号,有空格时必加引号
  • $ 接变量名即为引用这个变量的值
  • 后面的赋值会替换前面的赋值

        4.4 新建用户

        4.4.1 新建用户

useradd lihua新建普通用户 lihua

passwd lihua 给用户lihua设置密码(密码不可见)(提示密码太简单时,再输入一次相同的密码即可)

[root@192 ~]# useradd lihua
[root@192 ~]# passwd lihua
更改用户 lihua 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@192 ~]#


        4.4.2 使用新建用户登录

        【Linux是一个多用户多任务的操作系统:可以多人同时登录,同时操作】

1.使用ip add查看ip地址

2.在xshell里新建连接,登录lihua

3.exit 注销用户。关闭用户开启的所有程序,不会关闭系统。

        4.4.3 切换用户

  • su 切换用户
  • - 是一个选项:使用lihua的环境变量,不使用上一个用户的变量

[root@192 ~]# su - lihua
上一次登录:五 1月 28 20:39:52 CST 2022从 192.168.255.1pts/1 上
[lihua@192 ~]$

  • 普通用户进入系统后,也可以使用很多命令

[lihua@192 ~]$ mkdir li
[lihua@192 ~]$ ls
li
[lihua@192 ~]$ ip add
  • 使用exit登出
[lihua@192 ~]$ exit
登出
[root@192 ~]#
  • 也可从普通用户登录到root,但是会是一个新的root用户,用户之间并无关联

        可以类比于浏览器打开多个窗口,窗口之间并无关联

 

        4.5 [root@localhost ~]#

  • root 表示当前登录的用户是root用户,root用户是Linux里的超级管理员
  • @ 只是一个符号,起到分割符的作用,隔开2个信息
  • localhost 表示当前Linux系统的主机名
  • ~ 表示当前我们所在的位置是用户的家目录 ~等于家目录

        家目录:用户登录Linux系统就会进入的文件夹,这个文件夹就是这个用户的家目录

        root用户的家目录在/root

        普通用户的家目录在/home目录下 与用户名同名

【示例:普通用户的家目录】
[lihua@192 ~]$ pwd
/home/lihua
[lihua@192 ~]$ cd /
[lihua@192 /]$ cd home
[lihua@192 home]$ ls
lihua
[lihua@192 home]$ cd lihua/
[lihua@192 ~]$

        4.6 简单了解内核(kernel)

Linux操作系统=内核+其他的软件

内核(kernel):是Linux内部最核心的软件,是linus(利纳斯)用c语言编写。

        1.对cpu进行管理

        2.对内存进行分配管理

        3.对文件系统进行管理

        4.对进程进行管理

        5.对其他的硬件进行管理

        4.7 主机名

        4.7.1 查看主机名

[root@192 ~]# hostname
192

        4.7.2 修改主机名(临时,重启系统后失效)

【注】修改主机名需要切换用户,查看新的效果;或重新连接到Linux系统也可以


[root@192 ~]# hostname localhost  临时修改主机名为localhost
[root@192 ~]# su - root   切换用户到root
上一次登录:日 2月  6 20:19:48 CST 2022pts/0 上
[root@localhost ~]# hostname
localhost

五、拓展知识

        5.1 文件的后缀名问题

touch 新建空文件

        一般新建文件时会加上后缀名,便于区分,但也可不加

file + 文件名 查看文件类型


[root@localhost ~]# ls
anaconda-ks.cfg  lianxi  lihua
[root@localhost ~]# file lihua
lihua: empty   空文件
[root@localhost ~]# file lianxi/
lianxi/: directory   文件夹/目录
[root@localhost ~]# file anaconda-ks.cfg
anaconda-ks.cfg: ASCII text  文本文件,里面有内容(空文件加入内容)

[root@localhost ~]# \ls     取消ls查看文件夹内容时显示不同的颜色
anaconda-ks.cfg  lianxi  lihua

        5.2 家目录( ~ )和根目录( / )的区别

 

        linux系统:树目录结构==>倒立的树

1.根目录包含root用户的家目录,root用户的家目录(root)在根目录下

        注:不要混淆root用户的家目录和根目录

2.普通用户的家目录(在home文件夹下,和用户名同名)

六、shell脚本

        shell脚本文件:是一个文件,里面有很多的Linux命令,并且运行这个文件,会执行这个文件里的所有命令

        脚本:按照人的意愿去实现一系列功能的程序。里面有Linux命令。

        6.1【示例】

编写:新建10个用户并且设置密码lihua123

使用:vim编辑器去写

        需求分析:

                新建用户==》useradd

                        li1 li2 .. li10

                        for循环

                设置密码==》passwd

第一步:设置脚本名字 create_user.sh (.sh的文件是shell脚本)

第二步:创建新脚本 vim create_user.sh

第三步:执行脚本 bash create_user.sh

[root@localhost lianxi]# vim create_user.sh
[root@localhost lianxi]# cat create_user.sh
for i in {1..10}
do
        #新建用户
        useradd li$i
        #给用户设置密码为lihua123,利用管道符号|
        echo lihua123|passwd li$i --stdin
done
[root@localhost lianxi]# ls
create_user.sh
[root@localhost lianxi]# bash create_user.sh
更改用户 li1 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 li2 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 li3 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 li4 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 li5 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 li6 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 li7 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 li8 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 li9 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 li10 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost lianxi]# id li1
uid=1001(li1) gid=1001(li1) 组=1001(li1)
[root@localhost lianxi]# id li10
uid=1010(li10) gid=1010(li10) 组=1010(li10)

        6.1.1 for循环的语法结构

for i in {1..10}
do
        命令
done
  • for 是固定的命令
  • i 为变量名
  • in 是固定语句
  • {1..10} 表示从1到10的集合 1,2,3,4,5,6,7,8,9,10
  • {10..100} 表示从10到100的集合

【注】花括号内部不能空格,点两个点

  • do和done是固定语法

        do

                命令

        done

标签:shell,mkdir,虚拟机,lihua,用户,192,Linux,root,localhost
来源: https://blog.csdn.net/qq_51275515/article/details/122802026

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有