linux系统初学者记录

  • 基础知识和常用命令

  1. man man 操作是调出Linux系统的手册相关命令。
  2. ls 操作是显示当前目录下的文件和目录。
  3. touch 命令创建一个新的空白文件。
  4. cp 命令copy的简称通过复制文件到指定文件夹内的一条命令。
  5. cd 命令切换目录到需要去的目录。
  6. mv 命令将文件和目录移动到另一个位置或重新命名。
  7. rm 命令是删除文件的命令。
  8. mkdir 是创建目录的命令,-p是同时创建多个目录。
  9. rmdir 只删除空目录,删除非空目录,先用rm删除目录  里面的文件,再删除目录。
  10. file 命令确定文件文本信息和字符编码。
  11. cat命令显示文件中的所有数据。
  12. tail 显示文件的最后十行。
  13. head 显示文件前十行。
  • shell命令进阶

  1. ps 检测电脑上的进程。
  2. top 实时监测电脑上的进程。
  3. kill 结束电脑上的进程。
  4. mount 挂在媒体。
  5. df 查看所有已挂载的使用情况。
  6. du 查看特定目录下的磁盘使用情况。
  7. sort 把数字当作字符执行标准的字符排序。
  8. grep 在输入或指定的文件中查找包含匹配的指定模式的字符。
  9. gzip 压缩你指定的文件。
  10. tar 将文件写入磁盘设备上进行归档的。还可以解压压缩文件。
  • shell理解

  1. 用于登录某个虚拟控制器终端或在GUI中运行终端仿真器时所启动的交互shell叫做父shell
  2. /bin/bash命令会创建一个新的shell程序,这个程序被称为子shell。
  3. ps-forest命令可以展示这些子shell之间的嵌套结构。
  4. 在命令之间加;可以在一行中指定一系列命令。
  5. 将命令放在一个括号里面,,可以生成一个子shell来执行对应命令。
  6. echo $BASH_SUBSHELL可以知道是否生成了子shell。返回0没有,1或其他数

有子shell。

  1. 后台模式:运行命令在处理命令的同时让出CLI,以供他用。可以通过在命令末尾加入&进入后台。将sleep放入后台后,可以用ps命令显示各种进程,也可以用jobs命令来显示后台作业信息。
  2. 非内建(外部)命令:有时候也被称为文件系统命令,是存在于bash shell之外的程序。ps就是一个外部命令。可以使用which和type命令找到它。
  3. 内建命令:已经和shell编译成了一体,作为shell工具的组成部分存在。cd和exit命令都是内建命令。
  4. history 显示使用过的命令。!!执行上次命令。!加编号     执行该编号命令。

 四、环境变量

    1. 环境变量(environment variable)是其值在程序外部设置的变量,通常通过操作系统或微 服务内置的功能设置。环境变量由名称/值对组成 (VARIABLE_NAME=value)
    2. 系统环境变量基本上都是使用全大写字母,以区别于普通用户的环境变量。
    3. 全局环境变量对于shell会话和所有生成的子shell都是可见的。
    4. 局部变量则只对创建它们的shell可见。
    5. 查看全局变量,可以使用env或printenv命令。
    6. 要显示个别变量,可以使用printenv。也可以使用echo显示变量的值,但需要

    在变量前加上一个$符号。

    1. 用bash命令生成一个子shell后,echo $HOME 显示环境变量的当前值,这个

    值和父shell中的一模一样。

    1. set 显示某个特定进程设置的所有的环境变量。
    2. =  给变量赋值,想要赋值一段话,则需要引号将这句话括起来。
    3. export 将局部变量导出到全局变量。
    4. unset 加变量名可以删除已经存在的环境变量。不用变量名前加$。
  1. PATH环境变量定义了用于进行命令和程序查找的目录。
  2. 索引值要用 方括号括起来。(环境变量数组的索引值都是从零开始。) 要显示整个数组变量,可用星号作为通配符放在索引值的位置。
  3. unset命令删除数组中的某个值或整个数组。
  • Linux系统权限

  1. /etc/shadow可以展示用户信息。
  2. useradd命令使用系统的默认值以及命令行参数来设置用户账户。可以创建新用户。
  3. useradd -m username 能自动在每个新用户的HOME目录里放置默认的系统文件 (/etc/skel下的文件)。
  4. userdel可以从系统中删除用户。
  5. usermod可以从系统中修改用户。参数大部分跟useradd命令的参数一样(比如,-c修改备注字段,-e修改过期日 期,-g修改默认的登录组)。
  6.   passwd 可以改当前登录用户的密码,root用户可以使用 passwd username 修改任意用户密码。
  7.   chpasswd命令能从标准输入自动读取登录名和密码对(由冒号分割)列表, 给密码加密,然后为用户账户设置。也可以使用重定向命令,将含有 userid:passwd对的文件重定向给该命令。
  8.   可以使用 grep USERNAME /etc/group或tail /etc/group查看用户组信息。
  9.   groupadd命令可在系统上创建新组,在创建新组时,默认没有用户被分配到该组。可以用usermod -G会把这个新组 添加到指定用户账户的组列表里。 -g选项,指定的组名会替换掉该账户的默认组。 -G选项则将该组添加到用户的属组的列表里,不会影响默认组。
  10.   groupmod –g 命令可以修改已有组的GID。 groupmod –n命令可以修改已有组的组名。
  1. ls –l 命令可以用来查看Linux系统上的文件、目录和设备的权限。
  2. umask命令用来显示和设置所创建文件和目录的默认权限。
  3. chmod命令用来改变文件和目录的安全性设置。格式如下: chmod options mode file (mode参数可以使用八进制模式或符号模式进行安全性设置。 options的-R选项可以让权限的改变递归地作用到文件和子目录。)
  • 使用vim编辑器

  1.   vi 打开一个文本在该文本里面按i即可进入插入模式,想要退出按esc在打个冒号再打wq即可保存退出,打q!不保存退出。
  2. PageDown(或Ctrl+F):下翻一屏。
  3. PageUp(或Ctrl+B):上翻一屏。
  4. G:移到缓冲区的最后一行。
  5. num G:移动到缓冲区中的第num行。
  6. gg:移到缓冲区的第一行。
  7. 命令行模式:命令行模式提供了一个交 互式命令行。
  8. q:如果未修改缓冲区数据,退出。
  9. q!:取消所有对缓冲区数据的修改并强制退出。
  10. w filename:将文件保存到另一个文件中。
  11. wq:将缓冲区数据保存到文件中并退出。
  12. wq ! :将缓冲区数据保存到文件中并强制退出。
  13. 替换命令的格式是: :s/old/new/
  14. :s/old/new/g:一行命令替换所有old。
  15. :n,ms/old/new/g:替换行号n和m之间所有old。
  16. :%s/old/new/g:替换整个文件中的所有old。
  17. :%s/old/new/gc:替换整个文件中的所有old,但在每次出现时提示。
  • 构建基本脚本

  1.   想要创建一个脚本文件我们首先需要进入文件,在文件第一行打出#!/bin/bash
  2. 第二行可以对该文件进行注释。
  3. 然后可以添加echo来告诉脚本用户正在做什么。
  4.   在脚本中,可以在环境变量前面加上$来使用这些环境变量。如果你要显示一个美元符号,则需要在美元符号前面加上一个反斜线。
  5.   bash shell用大于号(>)将命令的输出发送到一个文件中。如果输出文件已经存在了, >会用新的文件数据覆盖已有文件。 如果不想覆盖文件原有内容,而是想要将命令的输出追加到已有文件中,可以用双 大于号(>>)来追加数据。
  6.   输入重定向将文件的内容重定向到命令,而非将命令的输出重定向到文件。 输入重定向符号是小于号,wc命令可以对对数据中的文本进行计数。默认情况下,它会输出3个值:wc命令可以对对数据中的文本进行计数。默认情况下,它会输出3个值。
  • 构建结构化命令

  1. 在bashshell中if语句可以返回TRUE和FALSE。当if返回TRUE时我们可以用then来急需进行下一步操作。
  2. 当需要进行除了then以外的操作时,可以用else添加其他操作
  3. 如果else中还有if-then的嵌套那么可以用elif来替代。
  4. Test命令可以提供在不同if-then测试不同条件的途径。当test里面命令成立,那么就会正常执行if-then。反之则不会执行if-then。
  5. test命令可以判断三类条件: 数值比较 字符串比较 文件比较
  6. 双括号命令(( expression ))允许你在比较过程中使用高级数学表达式。
  7. 双方括号命令[[ expression ]]使用了test命令中采用的标准字符串比较。
  8. case命令采用列表格式来检查单个变量的多个值。需要再写出所有的elif语句来不 停地检查同一个变量的值了。
  • 更多的结构化命令

  1. for循环语句通过创建一个遍历一系列值的循环,每次迭代都使用 其中一个值来执行已定义好的一组命令。
  2. while命令某种意义上是if-then语句和for循环的混杂体。while命令允许定义一个要测试的命令,然后循环执行一组命令,只要定义的测试 命令返回的是退出状态码0。它会在每次迭代的一开始测试test命令。 在test命令返回非零退出状态码时,while命令会停止执行那组命令。
  3. until命令要求你指定一个通常返回非零退出状态码的测试命令。 只有测试命令的退出状态码不为0,bash shell才会执行循环中列出的命令。
  4. break命令 :试跳出当前正在执行的循环.
  5. continue命令:提前中止某次循环中的命令,但并不会完全终止整个循环。

接下来是一道题:

使用 vi/vim编辑器编写一个shell脚本实现下列功能:

① 使用read命令从命令行获取姓名输入;

② 判断该姓名是否是系统用户;

③ 如果是系统用户,输出根据系统时间判断的"早上好/下午好/晚上好,用户名“;

④ 如果不是系统用户,询问是否为该用户创建账户并执行相应的操作;

⑤ 在第二行使用备注的形式标明你的学号和姓名。

完成脚本后,输入一个系统用户和非系统用户分别进行展示。以截图的形式提交脚本和运行结果。

 

 

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值