安装虚拟机&Linux命令学习

安装虚拟机&Linux命令学习

基于VirtualBox虚拟机安装Ubuntu

1.下载安装VirtualBox

根据自己电脑(32位操作系统)的实际情况,我在网上找了相应的VirtualBox版本进行下载和安装。

出现的问题

  1. 版本下错。第一次尝试在官方网站上下载了64位的版本,下载安装时发现与电脑不兼容。
  2. 下载地址出错。我在网上找的适合电脑的版本,用迅雷下载时,默认下载到了F盘,安装过程中显示如下错误:安装虚拟机&Linux命令学习

我将软件移到了警告中的地址 C:\Program Files\Oracle\VirtualBox 中,重新进行安装。

3. 安装后在打开软件时弹出获取VirtualBox COM对象失败的提示

安装虚拟机&Linux命令学习

我在百度上搜索这种情况的解决办法,在VirtualBox吧中找到一种方法:开始-运行-打开-Regedit中修改注册表

HKEY_CLASSES_ROOT\CLSID\{00020420-0000-0000-C000-000000000046}-InprocServer32
HKEY_CLASSES_ROOT\CLSID\{00020424-0000-0000-C000-000000000046}-InprocServer32

C:\Windows\system32\oleaut32.dll

后成功将软件打开。

2.Ubuntu的安装与配置

经过 创建虚拟机-安装Ubuntu系统软件-安装VirtualBox虚拟机增强功能-分配共享数据空间等操作,完成Ubuntu的安装和配置。我的电脑是4GB,设置了1GB的虚拟内存。安装虚拟机&Linux命令学习

出现的问题

  1. 打开终端快捷键的延迟性。在按下Ctrl+Alt+T后不能迅速弹出终端窗口,多次尝试后发现弹出窗口有时会有延迟,需要等一下,不然会一次性弹出多个终端窗口。
  2. 希望能在虚拟机中建一个共享文件夹,实现主机和虚拟机的双向共享。
  3. 命令不同于c语言,空格也是命令的一部分,而且是经常出错的一部分。

Linux命令的学习

通过学习别出心裁的Linux命令学习法,总结出以下几点:

  1. 首先是界面,Linux不但为用户提供了桌面环境,在桌面上可以用鼠标操作,还兼顾完全的命令行操作,通过安装增强功能,可以与主机共享文件,共享剪贴板的内容,相当于又一台虚拟电脑。
  2. 其次是掌握一些Ubuntu方便的快捷键,除了上面提到的Ctrl+Alt+T打开终端外,例如Tab可以在输入命令的开头时补全命令,避免输入错误;恢复之前输入过的命令;Ctrl+C可以终止当前程序。
  3. 此外还简单了解几种基本命令,如:Linux命令、man命令、cheat命令,

    其中安装cheat过程如下:

    之后又尝试了cheat findcheat grep虽然还不会使用,但对命令行有了初步的认识。

Linux基础入门

按照课程要求学习了实验楼Linux基础入门的前5节,后面的内容还会继续学习。

  • 基本概念与操作
    • UNIX/Linux本身是没有图形界面的,它是运行在 Linux 系统之上的一套软件。
    • 通常在使用Linux时,并不直接与系统打交道,而是通过一个叫做 Shell 的中间程序来完成的。
    • Ctrl+C可以强行终止当前程序但不会使终端退出。
    • 创建和搜索文件
      • 用touch命令创建文件,可同时创建多个文件。
      • $ ls *.txt可以搜索以txt结尾的任一文件。
    • Shell的常用通配符
    • man命令调用某个命令的说明和使用方式man <command_name>,如man man;加上数字后可看特定区段中命令的man页面,如man 1 ls显示ls一般命令
    • banner输出图形字符命令安装虚拟机&Linux命令学习

这节课包括之前的安装过程给我的感受是Linux安装软件也需要命令,这和我们习惯的windows大不相同。安装虚拟机&Linux命令学习

  • 用户及文件权限管理
    • linux命令:command [options] [arguments]//命令 选项 参数例如ls -a . 其中-a是选项,.是参数

    • 查看用户

      • who命令
        • who am i是当前伪终端的用户名,whoami是当前登陆用户的用户名安装虚拟机&Linux命令学习
    • 创建用户

      • sudo命令
        • sudo adduser <user>可以创建新用户
        • sudo <cmd>以特权级别运行cmd命令,需要当前用户属于sudo组,且需要输入当前用户密码
      • su命令
        • su <user>切换到用户user
        • su - <user>切换到用户user的同时环境变量也会变成user的
      • exitCtrl+D退出当前用户
    • 查看用户组

      • groups命令
      • 查看/etc/group文件
        • 格式为group_name:password:GID:user_list例如:shiyanlou:x:5000:其中'x'表示密码不可见
    • 将用户添加至sudo用户组

    • 删除用户

    • Linux文件类型与权限

      • 文件类型
        • 'd' 目录
        • 'l' 软链接
        • 'b' 块设置
        • 'c' 字符设置
        • 's' socket
        • 'p' 管道
        • '-' 普通文件
      • 文件权限
        • 'r' 允许读权限
        • 'w' 允许写权限
        • 'x' 允许执行权限
        • 一个目录同时具有读权限和执行权限才可以打开并查看内部文件
        • 一个目录要有写权限才允许在其中创建其它文件
      • ls命令的常用参数
        • -l :列出长数据串,包含文件的属性与权限数据等
        • -A :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来
        • -d :仅列出目录本身,而不是列出目录的文件数据
        • -h :将文件容量以较易读的方式(GB,kB等)列出来
        • -R :连同子目录的内容一起列出(递归列出),该目录下的所有文件都会显示出来
        • -s :显示文件大小
        • -S :按文件大小排序
        • 这些参数也可以组合运用,例如:ls -AsSh显示所有文件大小并以普通人能看懂的方式呈现
      • 变更文件所有者
      • 修改文件权限
        • chmod命令参数
          • -R 进行递归的持续更改,即连同子目录下的所有文件都会更改
        • 二进制表示:每个文件的三组权限(拥有者,所属用户组,其他用户)对应一个'rwx',该位权利有对应1。$ chmod 700 text表示text只对我可见
        • 加减赋值:'g''o''u'分别表示group,others,user,'+''-'分别表示增加和去掉相应权限。
  • Linux 目录结构及文件基本操作
    • Linux目录结构:虽然本质上无论是目录结构还是操作系统内核都是存储在磁盘上的,但从逻辑上来说 Linux 的磁盘是“挂在”(挂载在)目录上的,每一个目录不仅能使用本地磁盘分区的文件系统,也可以使用网络上的文件系统。
    • cd命令:它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径
      • '.' 当前目录
      • '..' 上一级目录
      • '-' 上一次所在目录
      • '~' 当前用户的home目录
    • Linux文件基本操作
      • 新建
        • touch 创建空文件
        • mkdir 创建空目录
          • mkdir -p可同时闯将一个多级目录
      • 复制
        • cp 复制空文件
        • cp -r复制目录
      • 删除rm
        • -f强制删除参数
      • 移动mv 源目录文件 目的目录
      • 重命名文件mv 旧文件名 新文件名
      • 查看
        • cat 正序,加上-n参数显示行号
        • tac 倒序
        • nl命令参数
          • -b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式)
          • -b t:只列出非空行的编号并列出(默认为这种方式)
          • -n ln:在行号字段最左端显示
          • -n rn:在行号字段最右边显示,且不加 0
          • -n rz:在行号字段最右边显示,且加 0
        • 查看文件类型
          • file命令:判断接在file命令后的文件的基本数据
  • 环境变量与文件查找
    • 变量
      • 创建 declare 变量名,注意变量名只能是英文字母,数字或者下划线,且不能以数字作为开头
      • 赋值 =
      • 读取 echo $变量名
    • 环境变量(在当前进程的子进程仍有效)
      • set 显示当前 Shell 所有环境变量

      • env 显示与当前用户相关的环境变量

      • export 显示从 Shell 中导出成环境变量的变量

      • 为了与普通变量区分,通常我们习惯将环境变量名设为大写

      • 添加自定义路径到“PATH”环境变量

        • $ PATH=$PATH:/home/shiyanlou/mybin注意使用绝对路径
        • >>表示将标准输出以追加方式重定向到一个文件中$ echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc
      • 修改

        安装虚拟机&Linux命令学习

      • 删除 unset

      • 立即生效source.. ./.zshrc

    • 文件查找
查找命令 优点与局限
whereis 简单快速,只能搜索二进制文件(-b),man帮助文件(-m)和源代码文件(-s)
which 小而精,看是否安装指定软件,只从PATH环境变量指定的路径中去搜索命令
find 精而细
locate 快而全,刚添加的文件可能找不到,需执行一次updatedb命令

find命令

find [PATH] [option] [action]

结合实验楼和网上众多博客总结如下:

与时间相关的命令参数:

  • -atime 最后到访时间
  • -ctime 创建时间
  • -mtime 最后修改时间

与用户或用户组名有关的参数:

  • -user name 列出文件所有者为name的文件
  • -group name 列出文件所属用户组为name的文件
  • -uid n 列出文件所有者为用户ID为n的文件
  • -gid n 列出文件所属用户组为用户组ID为n的文件

与文件权限及名称有关的参数:

  • -name filename :找出文件名为filename的文件
  • -size [+-]SIZE :找出比SIZE还要大(+)或小(-)的文件
  • -tpye TYPE :查找文件的类型为TYPE的文件,TYPE的主要有:一般文件(f),设备文件(b、c)

    、目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p);
  • -perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755;
  • -perm -mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示
  • -perm +mode :查找文件权限包含任一mode的权限的文件,mode用数字表示

小结

通过实验楼的学习,我对Linux操作系统有了一个初步认识,虽然对很多抽象的命令都不是很理解,但是我会在接下来的学习中,多操作,多实践,进一步感受命令的神奇之处。

上一篇:2 GPS utility methods


下一篇:轮询、select、 epoll