Linux学习记录

别出心裁的Linux命令学习法学习总结

(由于我的电脑是Mac,Linux安装省略)

操作系统的功能:

  • 管家婆服务生
  • 博客中对于这两个词含义的解释为
  • 管家婆:通过进程、虚拟内存和文件三个重要抽象管理计算机的CPU、内存、I/O设备。
  • 服务生:为用户提供shell,为程序员提供系统调用。

命令行的好处

主要是可以批处理并自动化,还有些功能GUI无法完成

由于我的电脑操作系统为MacOS,所以我自己总结出了快捷键的使用:

  • Alt+Ctrl+T :打开终端(由于Mac没有打开终端的快捷键,所以我自己设置为与Ubuntu统一的快捷键。Mac如何设置打开终端的快捷键 )
  • Command+T :新建标签页
  • Command + { 或 Command + Shift + [ :切换标签页
  • Tab :命令、文件名等自动补全功能。
  • Ctrl+R :快速检索使用过的历史命令
  • Ctrl+C :中断终端中正在执行的任务。

Linux基础入门

实验1 Linux 系统简介

  • Linux是什么?

Linux 就是一个操作系统。Linux 主要是系统调用内核那两层。当然直观地看,我们使用的操作系统还包含一些在其上运行的应用程序,比如文本编辑器、浏览器、电子邮件等。

  • Shell是什么?

命令行解释器。

实验2 基本概念及操作

  • Terminal是什么?

终端模拟器的程序。

  • Shell的详细解释

可以接受用户输入命令的程序。

  • 输入和输出

输入

touch file创建一个名为file的文件

cd /etc/ 进入一个目录

pwd查看当前所在目录

输出

输出会返回你想要的结果,比如你要看什么文件,就会返回文件的内容。如果只是执行,执行失败会告诉你哪里错了,如果施行成功那么会没有输出,因为linux的哲学就是:没有结果就是最好的结果

  • 问题1:实验过程中,输入$ tail,为什么接下来输入什么都没有任何反应?
  • 问题2:输入$ find /,为什么会不停地跳出很多乱七八糟的东西?
  • 快捷键总结
按键 作用
Ctrl+d 键盘输入结束或退出终端
Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行
Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg
Ctrl+a 将光标移至输入行头,相当于Home
Ctrl+e 将光标移至输入行末,相当于End
Ctrl+k 删除从光标所在位置到行末
Alt+Backspace 向前删除一个单词
Shift+PgUp 将终端显示向上滚动
Shift+PgDn 将终端显示向下滚动
  • 通配符: 指星号(*)和问号(?)

当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正字符。

  • Shell常用通配符
字符 含义
* 匹配 0 或多个字符
? 匹配任意一个字符
[list] 匹配 list 中的任意单一字符
[!list] 匹配 除list 中的任意单一字符以外的字符
[c1-c2] 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z]
{string1,string2,...} 匹配 string1 或 string2 (或更多)其一字符串
{c1..c2} 匹配 c1-c2 中全部字符 如{1..10}
  • 问题3: ls的具体用法是什么?

    (在教材中有时写在一个命令词以前,有时写在之后,有些混淆)

    解答:通过实验3的学习,了解了ls的用法:

    1、用它列出并显示当前目录下的文件

    2、查看文件权限。

    • ls -l:使用较长格式列出文件。
    • ls -A:显示除了 .(当前目录)和 ..(上一级目录)之外的所有文件,包括隐藏文件(Linux 下以 . 开头的文件为隐藏文件)。
    • ls -dl<目录名>:查看某一个目录的完整属性,而不是显示目录里面的文件属性.
    • ls -AsSh:显示所有文件大小,并以普通人类能看懂的方式呈现。其中小 s 为显示文件大小,大 S 为按文件大小排序。
  • -w参数指定打印宽度,因为我们的环境在屏幕中显示比较小,必须要加上宽度限制。例:$ printerbanner -w 50 A,"50"是上限宽度限制。

实验3 用户及文件权限管理

  • 问题4:为什么输入命令行$ who -r之后,没有输出任何内容,并没有输出运行等级?运行等级又是什么?
  • 问题5:给新用户设置密码时,为何不能输入一串数字密码?
  • | sort表示将读取的文本进行一个字典排序再输出
  • 关于文件类型,这里有一句话必须牢记:

Linux里面一切皆文件

文件中的软链接文件相当于Windows中的快捷方式。

  • 一个目录同时具有读权限和执行权限才可以打开并查看内部文件而一个目录要有写权限才允许在其中创建其他文件,这是因为目录文件实际保存着该目录里面的文件的列表等信息。

  • 修改文件权限,每个文件的三组权限(拥有者,所属用户组,其他用户,记住这个顺序是一定的)

    方法一:二进制数字表示



    chomd 700 iphone67指拥有者,即我自己可以、写、执行权限,00指所属用户组和其他用户无任何权限。

    方法二:加减赋值操作

    g、o 还有 u 分别表示 group、others 和 user,+ 和 - 分别表示增加和去掉相应的权限。

    chmod go-rw iphone6指所属用户组和其他用户去掉读、写权限。

  • adduser 和 useradd 的区别是什么?

答:useradd 只创建用户,创建完了用 passwd lilei 去设置新用户的密码。adduser 会创建用户,创建目录,创建密码(提示你设置),做这一系列的操作。其实 useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要你输入、确定等一系列操作。

实验4 Linux 目录结构及文件基本操作

  • FHS标准

  • 目录的四种交互作用的形态

  • 路径

    • 绝对路径:

    以根" / "目录为起点的完整路径,以你所要到的目录为终点,表现形式如:/usr/local/bin,表示根目录下的usr目录中的local 目录中的bin目录。

    • 相对路径:以当前目录. 为起点,以你所要到的目录为终点

    usr/local/bin (这里假设你当前目录为根目录)。你可能注意到,我们表示相对路径实际并没有加上表示当前目录的那个 . ,而是直接以目录名开头,因为这个usr 目录为 / 目录下的子目录,是可以省略这个 . 的(以后会讲到一个类似不能省略的情况);如果是当前目录的上一级目录,则需要使用..,比如你当前目录为home 目录,根目录就应该表示为../../ ,表示上一级目录(home 目录)的上一级目录( / 目录)。

  • 新建空白文件使用touch

    新建目录使用mkdir,若要新建多级目录则须在mkdir之后添加-p

  • 复制文件到目录,使用cp

    复制目录,则须在cp后加-r

  • 删除文件使用rm,但如果删除一些只读权限的文件时,会有删除提示,若想强制删除,则在rm之后添加-f

    删除目录在rm之后添加-r

-移动文件使用mv 源文件目录 目的目录

  • 重命名文件使用mv 旧文件名 新文件名

    批量重命名使用rename

  • 查看文件

1、使用cat快速查看文件

2、使用nl命令查看文件

-b : 指定添加行号的方式,主要有两种:

-b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式)
-b t:只列出非空行的编号并列出(默认为这种方式)

-n : 设置行号的样式,主要有三种:

-n ln:在行号字段最左端显示
-n rn:在行号字段最右边显示,且不加 0
-n rz:在行号字段最右边显示,且加 0

-w : 行号字段占用的位数(默认为 6 位)

3、使用more命令分页查看文件

可以使用 Enter 键向下滚动一行,使用 Space 键向下滚动一屏。

4、使用tail命令查看文件

- 因为系统新增加一个用户,会将用户的信息添加到 `passwd`文件的最后,那么这时候我们就可以使用 `tail` 命令了。
- 若想只看一行,在`tail`之后加上`-n`再加上数字`1`就是查看一行文件。
- `-f`可以不停的读取某个文件的内容,实现动态查看,达到监视的目的。
  • 查看文件类型

与Windows不同的是,Linux中的文件不是通过看后缀来查看文件类型的,而是利用file命令。

实验5 环境变量与文件查找