zoukankan      html  css  js  c++  java
  • 20165322 预备作业3 Linux安装及学习

    Linux安装及学习

    安装部分

    由于是第一次接触虚拟机知识,之前也没什么了解,我选择完全按照老师教程里的安装vbox虚拟机。
    虚拟机安装的过程很顺利,不做详细讲解。

    出现的问题

    • 在启动我新建的虚拟电脑时出现了问题。问题显示如下

    我在百度以后得到了学姐的帮助。进入BIOS,选择Configuration中的Intel Uirtual Technology,将Disabled改为Enabled 后保存。

    • 我在安装增强功能时显示安装失败。问题显示如下

    在查找资料挣扎了很久之后...好吧,发现是我一开始新建虚拟电脑时粗心,将版本选成了32bit,我的主机系统是64bit,这造成了冲突。重新建立虚拟电脑就顺利解决了。

    收获

    第一次独立安装虚拟机和系统,在一开始知识照着老师的教程一步一步做,在遇到问题后,我努力自己尝试解决,并没有急于立刻求助别人,在思考过程中,我逐渐理解了虚拟机和系统之间的关系(在此之前真的是一只电脑小白)除此之外,和win不同的系统操作方法也让我感到新颖,Linux不像win好上手易于理解,相对更直观地把每一步操作都显示出代码,清楚地展现在我眼前。假期间我还根据百度自己调出了win里的终端,修改了不知道为啥自己跳脱的无线网设置。

    学习部分

    一、学习别出心裁的Linux命令学习法

    • Linux的构架:硬件、内核、系统调用、壳(shell)、库函数、应用。

    • Ubuntu快捷键
      Ctrl+Alt+T:打开终端;
      Ctrl+Shift+T:新建标签页;
      Alt+数字+N:跳转标签页;
      Tab:补全终端命令,在C语言编程中也常用;
      上键:切换历史命令;
      Ctrl+C:中断程序;

    • Linux命令
      命令格式:command [options] [arguments]

    • man命令
      manual(手册、指南),可以使用man man命令查看帮助,其中man -k用于搜索关键字,根据相匹配数字来查找所需内容。接着可以用man -f查看命令基本功能。

    • cheat命令
      看起来就很有趣,但是...好吧,看了老师的讲解一头雾水,还是老实安装动手实操。
      安装的时候提示我无法获得锁/var/lib/dpkg/lock-open(11:资源暂时不可用),大概是我瞎玩耍的时候什么命令执行了一半?orz..输入指令sudo rm/var/lib/dpkg/lock强行终止就可以了,希望不要留下什么后遗症。

    • 其他核心命令
      find查找文件路径
      locate神速版本find
      grep对文件全文检索
      whereis,which查找命令工具装在什么地方.

    二、Linux系统简介

    • 构成部分(见上部分)、历史简介、主要人物

    • Linux为开源自由软件,部分软件质量和体验欠缺。安全性比Windows更高。操作入门难,但效率极高。

    • 关于学习Linux:现阶段还处在一个新鲜的尝试和接触阶段,尚不清楚自己要用它来做什么。不过我非常认同老师说的打好基础的重要性,把概念结合实际操作理解透彻了再想应用,我认为更稳妥。

    三、基本概念和操作

    • 终端的概念:本质上是对应着 Linux 上的 /dev/tty 设备,默认提供了 6 个纯命令行界面的终端,在物理机系统上你可以通过使用[Ctrl]+[Alt]+[F1]~[F6]进行切换,通过按下[Ctrl]+[Alt]+[F7]来切换回图形界面。

    • shell壳:他是我们与系统交流的中间程序,也是控制系统的脚本语言。

    • 命令行操作touch创建文件、cd进入一个目录、pwd查看当前所在目录,其他命令可参看Linux命令大全

    • 重要快捷键
      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中的任意单一字符
      {string1,string2...}:匹配string1或string2(...)其一字符串
      {c1,c2,...}:匹配c1-c2中的全部字符

    四、用户及文件权限管理

    • 查看用户:输入whoami回车,输出第一列为当前伪终端用户名,第二列的pts/数字表示打开的伪终端序号,第三列则表示当前伪终端的启动时间。

    • who命令
      -a:打印能打印的全部
      -d:打印死掉的进程
      -m:和am i,mom likes相同
      -q:打印当前登录用户数和用户名
      -u:打印当前登录用户登录信息
      -r:打印运行等级

    • 创建用户

    在 Linux 系统里, root 账户拥有整个系统至高无上的权利,比如 新建/添加 用户。

    这时就需要sudo这个命令。 
    
    新建一个用户:```$ sudo adduser 用户名```   
    添加用户到系统并默认为新用户创建 home 目录:
    ```$ ls /home``` 
    切换新建用户:```$ su -l 用户名```   
    之后输入密码...退出用户和退出终端方法一致。
    
    • 用户组
      使用groups命令,显示为用户名:用户组或者使用cat命令,直接查看/etc/group文件。用户需要加入sudo组才能获得root权限,操作如下:

      $ su shiyanlou # 此处需要输入shiyanlou用户密码
      $ groups lilei
      $ sudo usermod -G sudo lilei
      $ groups lilei
      
    • 删除用户$ sudo deluser 用户--remove-home

    • 查看文件权限
      文件类型:Linux 里面一切皆文件。
      文件权限:一个目录同时具有读权限执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件。

    • ls命令的常用用法:
      ls:列出并显示当前目录下的文件
      -A:显示除了 .(当前目录)和 ..(上一级目录)之外的所有文件,包括隐藏文件(Linux 下以 . 开头的文件为隐藏文件)。
      -Al:查看某一个目录的完整属性
      -dl<目录名>:显示所有文件大小
      -AsSh:其中小s为显示文件大小,大 S 为按文件大小排序,可用man知道如何按其它方式排序

    • 变更文件所有者$sudo chown <新所有者> <文件名>

    • 修改文件权限

      • 方式一:二进制数字表示

        rwx对应拥有者,所属用户组,其他用户
        $ chmod 数字 文件名

      • 方式二:加减赋值操作
        go 还有 u 分别表示 group、others 和 user,+-分别表示增加和去掉相应的权限
        $ chmod go-rw 文件名

    • adduseruseradd区别

      useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要你输入、确定等一系列操作。

    五、Linux 目录结构及文件基本操作

    • FHS标准

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

    • 目标路径
      windows里磁盘、文件夹也有路径。在Linux中,使用 cd 命令可以切换目录。- 表示上一次所在目录, 通常表示当前用户的 home 目录。

      • 绝对路径
        以根" / "目录为起点的完整路径,以你所要到的目录为终点。这与windows我们下载软件时选择路径类似。
      • 相对路径
        以当前目录 . 为起点,以你所要到的目录为终点.使用 pwd 命令可以获取当前所在路径(绝对路径)。
    • 新建文件
      新建空白文件,因为在其它目录没有权限,所以需要先 cd ~ 切换回用户的 /home/用户名 目录

    • 新建目录
      使用 mkdir(make directories)命令可以创建一个空目录,也可同时指定创建目录的权限属性。使用 -p 参数,同时创建父目录(如果不存在该父目录),如下我们同时创建一个多级目录(这在安装软件、配置安装路径时非常有用)。效果为$ mkdir -p father/son/grandson

    • 复制文件:
      使用 cp(copy)命令复制一个文件到指定目录。$ cp test(文件名) father/son/grandson(路径)

    • 复制目录
      要成功复制目录需要加上 -r 或者 -R 参数,表示递归复制。$ cp -r father family

    • 删除文件:
      使用 rm命令删除一个文件,用 -f可以强制删除参数。

    • 删除目录:
      要成功删除目录需要加上 -r 或者 -R 参数。

    • 移动文件:
      使用mv命令移动文件(剪切)。mv 源目录文件 目的目录

    • 重命名文件:
      mv 旧的文件名 新的文件名rename批量重命名

    • 查看文件:
      cat:正序显示打印文件内容到标准输出(终端),加上 -n 参数显示行号
      tac:倒序打印文件内容到标准输出(终端)
      nl:添加行号并打印,比cat -n 更专业的行号打印命令

      • 使用 moreless 命令分页查看文件
        用于阅读文件。打开后默认只显示一屏内容,终端底部显示当前阅读的进度。可以使用 Enter 键向下滚动一行,使用 Space 键向下滚动一屏,按下 h 显示帮助,q 退出。
      • 使用 headtail 命令查看文件
        只查看文件的头几行(默认为 10 行,不足 10 行则显示全部)和尾几行。
    • 查看文件类型:使用 file 命令查看文件的类型

    六、环境变量与文件查找

    • 变量
      declare:创建一个变量
      =:赋值运算符
      echo&$:读取变量的值,$ 符号用于表示引用一个变量的值
      变量名:并不是任何形式的变量名都是可用的,变量名只能是英文字母、数字或者下划线,且不能以数字作为开头

    • 环境变量

      • 判定环境变量:在当前进程的子进程有效则为环境变量,否则不是。
      • 三种环境变量相关的命令:
        set:显示当前 Shell 所有变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量。
        env:显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。
        export:显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量。
      • 环境变量永久生效
        /etc/bashrc/etc/profile ,它们分别存放的是 shell 变量和环境变量。如果想要添加一个永久生效的环境变量,只需要打开 /etc/profile,在最后加上你想添加的环境变量就好啦。
    • 添加自定义路径到“ PATH ”环境变量
      一定要使用绝对路径添加自定义路径到 PATH 环境变量:$PATH=$PATH:/home/shiyanlou/mybin
      >>: 表示将标准输出以追加的方式重定向到一个文件中
      > : 是以覆盖的方式重定向到一个文件中

    • 变量修改

    • 变量删除:使用 unset 命令删除一个环境变量

    • 让环境变量立即生效:

      • $ source .zshrc(配置文件)
      • $ . ./.zshrc(后面的文件必须指定完整的绝对或相对路径名)
    • 搜索文件
      whereis简单快速: 直接从数据库中查询,只能搜索二进制文件(-b),man 帮助文件(-m)和源代码文件(-s)。
      locate快而全: 手动执行一次 updatedb 命令,用于更新它的查找对象——“ /var/lib/mlocate/mlocate.db ”数据库,它可以用来查找指定目录下的不同文件类型。
      which小而精: 通常使用 which 来确定是否安装了某个指定的软件,因为它只从 PATH 环境变量指定的路径中去搜索命令
      find精而细: 它不但可以通过文件类型、文件名进行查找而且可以根据文件的属性(如文件的时间戳,文件的权限等)进行搜索。find 的第一个参数是要搜索的地方:$ sudo find /etc/ -name 文件或目录

    注意 find 命令的路径是作为第一个参数的, 基本命令格式为 find [path] [option] [action] 。

    • 与时间相关的命令参数:
      -atime:最后访问时间
      -ctime:最后修改文件内容的时间
      -mtime:最后修改文件属性的时间

      • 与这些参数相关的天数命令(以 -mtime 参数举例)
        -mtime n:n 为数字,表示为在 n 天之前的“一天之内”修改过的文件
        -mtime +n:列出在 n 天之前(不包含 n 天本身)被修改过的文件
        -mtime -n:列出在 n 天之内(包含 n 天本身)被修改过的文件
        -newer file:file 为一个已存在的文件,列出比 file 还要新的文件名
    • 列出 home 目录中,当天(24 小时之内)有改动的文件:
      $ find ~ -mtime 0

    • 列出用户家目录下比 Code 文件夹新的文件:
      $ find ~ -newer /home/shiyanlou/Code

    七、文件打包与压缩

    • 常见常用的压缩包文件格式
      *.zip: zip 程序打包压缩的文件
      *.rar: rar 程序压缩的文件
      *.7z: 7zip 程序压缩的文件
      *.tar: tar 程序打包,未压缩的文件
      *.gz: gzip 程序(GNU zip)压缩的文件
      *.xz: xz 程序压缩的文件
      *.bz2: bzip2 程序压缩的文件
      *.tar.gz: tar 打包,gzip 程序压缩的文件
      *.tar.xz: tar 打包,xz 程序压缩的文件
      *tar.bz2: tar 打包,bzip2 程序压缩的文件
      *.tar.7z: tar 打包,7z 程序压缩的文件

    • 一些参数
      -r: 表示递归打包包含子目录的全部内容
      -q: 表示为安静模式
      -o: 表示输出文件,需在其后紧跟打包输出文件名
      -O: 解压时可以指定编码类型unzip -O GBK 中文压缩文件.zip
      du: 分别查看默认压缩级别、最低、最高压缩级别及未压缩的文件的大小 $ du -h -d 0 *.zip ~ | sort(其中-h意为表达为人们可读的方式-d意为所查看文件的深度)
      -x:排除我们上一次创建的 zip 文件,否则又会被打包进这一次的压缩文件中。 $ zip -r -9 -q -o shiyanlou_9.zip /home/shiyanlou -x ~/*.zip设置压缩级别为 9 和 1(9 最大,1 最小)只能使用绝对路径
      -e: 创建加密压缩包
      -l: 将 LF 转换为 CR+LF,排除在 Windows 系统上打开看起来是没有换行的问题

    • zip压缩打包程序
      打包 :zip 打包输出文件名.zip 被打包目录 (目录请加 -r 参数)

    • zip解压缩
      解包:unzip something.zip(解压sth.到当前目录)

    • rar 打包压缩命令

      • rar 的命令参数没有 -,如果加上会报错
      • 从指定压缩包文件中删除某个文件:$ rar d shiyanlou.rar .zshrc
      • 查看不解压文件:$ rar l shiyanlou.rar
      • 使用 unrar 解压 rar 文件:$ unrar x shiyanlou.rar(全路径解压);$ mkdir tmp $ unrar e shiyanlou.rar tmp/(去掉路径解压)
    • tar 打包工具

      • 打包:tar -zcvf something.tar something
      • 解包:tar -zxvf something.tar
      • 指定路径:-C 参数
        压缩文件格式: 参数
        *.tar.gz : -z
        *.tar.xz : -J
        *tar.bz2 : -j
      • 一些参数:
        -c:创建一个 tar 包文件
        -f:用于指定创建的文件名,注意文件名必须紧跟在 -f 参数之后
        -p:保留绝对路径符
        解包一个文件(-x 参数)到指定路径的已存在目录(-C 参数):$ tar -xf shiyanlou.tar -C tardir
        只查看不解包文件 -t 参数:$ tar -tf shiyanlou.tar

    八、文件系统操作与磁盘管理

    • 查看磁盘的容量

      • df: 查看磁盘的容量
      • 增强可读性用参数-h: $ df -h
    • 查看目录的容量

      • du: 查看目录的容量

      • 增强可读性用参数-h

      • 指定查看目录的深度-d:

      • 常用参数:
        -a: 同--all 显示目录中所有文件的大小
        -s: 同--summarize 仅显示总计,只列出最后加总的值

    • 创建虚拟磁盘

      • dd命令:用于转换和复制文件,也可以读取文件或写入到这些文件。它的命令行选项格式为选项=值.可以用选项if(input file,输入文件)和of(output file,输出文件)改变标准输入和输出。

      • 使用 dd 命令创建虚拟镜像文件:
        从/dev/zero设备创建一个容量为 256M 的空文件:
        $ dd if=/dev/zero of=virtual.img bs=1M count=256

      • 使用 mkfs 命令格式化磁盘
        将我们的磁盘镜像格式化为ext4文件系统:
        $ sudo mkfs.ext4 virtual.img(磁盘)
        Linux支持的文件系统:

      • 使用 mount 命令挂载磁盘到目录树
        mount: mount 指令是告诉操作系统,对应的文件系统已经准备好,可以使用了,而该文件系统会对应到一个特定的点(称为挂载点)。挂载好的文件、目录、设备以及特殊文件即可提供用户使用。
        mount命令的一般格式如下:
        mount [options] [source] [directory]
        一些常用操作:
        mount [-o [操作选项]] [-t 文件系统类型] [-w|--rw|--ro] [文件系统源] [挂载点]

      • 使用 umount 命令卸载已挂载磁盘
        $ sudo umount /mnt

      • 使用 fdisk 为磁盘分区
        进入磁盘分区模式:
        $ sudo fdisk virtual.img

    九、Linux下的帮助命令

    • 内建命令与外部命令

      • 得到这样的结果说明是内建命令,正如上文所说内建命令都是在 bash 源码中的 builtins 的.def中
        xxx is a shell builtin
      • 得到这样的结果说明是外部命令,正如上文所说,外部命令在/usr/bin or /usr/sbin等等中
        xxx is /usr/sbin/xxx
      • 若是得到alias的结果,说明该指令为命令别名所设定的名称
        xxx is an alias for xx --xxx
    • help命令

      • ubuntu 的环境base内置有help命令,可以直接使用
      • help 命令是用于显示 shell 内建命令的简要帮助信息,但是只能用于显示内建命令的帮助信息
      • ls --help:外部命令的话基本上都有一个参数--help
    • man命令

      • 通过查看系统文档中的 man 也可以得到程序的更多相关信息和 Linux 的更多特性
      • 打开手册之后我们可以通过 pgup 与 pgdn 或者上下键来上下翻看,可以按 q 退出当前页面
      • man手册章节
    • info命令
      man 和 info 就像两个集合,它们有一个交集部分,但与 man 相比,info 工具可显示更完整的 GNU 工具信息。

  • 相关阅读:
    c语言程序设计(学生成绩管理系统)————提供给计算机系c语言初学者参考
    C语言之指针排序
    C语言之冒泡法一
    C语言之统计字符
    C语言之while输出菱形
    C语言之do_while输出菱形
    C语言之素数的判断
    C语言之输出菱形
    基于RT-THREAD的定时鱼缸喂食器设计
    dx/dy=1/y’求其二阶导
  • 原文地址:https://www.cnblogs.com/wangyaojia/p/8460608.html
Copyright © 2011-2022 走看看