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 工具信息。

20165322 预备作业3 Linux安装及学习的更多相关文章

  1. 20165226 预备作业3 Linux安装及学习

    20165226 预备作业3 Linux安装及学习 Linux安装 一.下载安装VirtualBox 1.首先在官网下载,点开基于VirtualBox虚拟机安装Ubuntu图文教程 找到版本进行下载安 ...

  2. 20165230 预备作业3 Linux安装及学习

    20165230 预备作业3 Linux安装及学习 安装Linux操作系统 通过学习实践基于VirtualBox虚拟机安装Ubuntu图文教程,开始了虚拟机的安装,根据教程按着步骤一步一步的完成. 遇 ...

  3. 20165327 预备作业3 Linux安装及学习

    20165327 预备作业3 Linux安装及学习 一.学习基于VirtualBox虚拟机安装Ubuntu图文教程,在自己笔记本上安装Linux操作系统,注意尽量选用最新版本的VirtualBox和U ...

  4. 20165303 预备作业3 Linux安装及学习

    =20165303 预备作业3 Linux安装及学习 安装虚拟机 按照http://www.cnblogs.com/rocedu/p/6012545.html步骤进行逐步操作,安装虚拟机. 遇到的问题 ...

  5. 20165315 预备作业3 Linux安装及学习

    20165315 预备作业3 Linux安装及学习 一.在自己笔记本上安装Linux操作系统 因为对操作电脑的不熟悉,我在第一项任务上就花费了一定的时间,在安装过程有如下问题: 我的电脑是苹果公司的M ...

  6. 20165310 预备作业3 Linux安装及学习

    预备作业3 Linux安装及学习 安装虚拟机 之前在win7系统下通过EasyBCD安装过Ubuntu虚拟机,这次阅读<基于VirtualBox虚拟机安装Ubuntu图文教程>又学习到了一 ...

  7. 20165211 预备作业3 Linux安装与学习

    20165211 预备作业3 Linux安装与学习 1. Linux安装 涉及软件:VirtualBox,Ubuntu 参考教程:基于VirtualBox安装Ubuntu图文教程 安装过程的问题 在安 ...

  8. 20165227朱越 预备作业3 Linux安装及学习

    预备作业3 Linux安装及学习 Linux的安装 虚拟机的安装远没有想象中的那样容易,下载还没有出现什么问题,当我安装的时候,第一个问题出现在创建虚拟机时选择安装的虚拟机版本和类型的时候的错误 当时 ...

  9. 20165333 预备作业3 Linux安装及学习

    预备作业3 Linux安装及学习 Linux系统安装 在老师的教程帮助下成功的完成了虚拟机的安装,但安装过程中也遇到了一些问题.在下载ubuntu时,总是下载失败,在求助同学后,在中文版官网的网址,才 ...

随机推荐

  1. numpy.reshape使用条件

    np.array中的元素的个数,需要和转换的类型各个维度的乘积相等.如:\(6=2*3=1*2*3\) 另外,可以发现参数的对应关系为shape(num_dims, num_rows, num_col ...

  2. 阿里Tree-based Deep Match(TDM) 学习笔记

    阅读文献:https://zhuanlan.zhihu.com/p/35030348 参考文献:https://www.leiphone.com/news/201803/nlG3d4sZnRvgAqg ...

  3. oracle 单实例DG(切换篇三)

    一,开篇 此篇操作承接上文,必须完成DG实例搭建完成方可有执行以下内容的实例 二,切换物理备库 one. oracle01库命令 select switchover_status from v$dat ...

  4. (转)Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步

    Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步原文:http://www.summerspacestation.com/linux%E4%B8%8B%E9%80 ...

  5. webservice 注解介绍

    JAX-WS 注释 “基于 XML 的 Web Service 的 Java API”(JAX-WS)通过使用注释来指定与 Web Service 实现相关联的元数据以及简化 Web Service ...

  6. 023-将表单序列化为json对象

    使用jQuery将表单序列化为json对象,其中serializeJson方法的名字任意,serializeArray()这个jQuery提供的方法.this指的就是谁调用了这个方法. $.fn.se ...

  7. C#异步执行带有返回值和参数的方法,且获取返回值

    很多时候需要用到这些小知识点,做做笔记一起成长 下面是需要异步执行的方法 //获取所有的邮件 private List<EmailModel> GetEmailOnlyCount(POP3 ...

  8. HAProxy advanced Redis health check---ref

    http://blog.exceliance.fr/2014/01/02/haproxy-advanced-redis-health-check/ HAProxy advanced Redis hea ...

  9. 表单提交前的confirm验证提示

    今天要做一个修改提交前的提示,点击修改按钮进行提示,然后根据confirm的结果来决定是否提交;发现平时很常见的一个功能,自己不会.所以只能去晚上找资料了; 举例如下: <form action ...

  10. 如何用webgl(three.js)搭建一个3D库房,3D密集架,3D档案室,-第二课

    闲话少叙,我们接着第一课继续讲(http://www.cnblogs.com/yeyunfei/p/7899613.html),很久没有做技术分享了.很多人问第二课有没有,我也是抽空写一下第二课. 第 ...