安装虚拟机&Linux命令学习
基于VirtualBox虚拟机安装Ubuntu
1.下载安装VirtualBox
根据自己电脑(32位操作系统)的实际情况,我在网上找了相应的VirtualBox版本进行下载和安装。
出现的问题
- 版本下错。第一次尝试在官方网站上下载了64位的版本,下载安装时发现与电脑不兼容。
- 下载地址出错。我在网上找的适合电脑的版本,用迅雷下载时,默认下载到了F盘,安装过程中显示如下错误:
我将软件移到了警告中的地址 C:\Program Files\Oracle\VirtualBox
中,重新进行安装。
3. 安装后在打开软件时弹出获取VirtualBox COM对象失败的提示
我在百度上搜索这种情况的解决办法,在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的虚拟内存。
出现的问题
- 打开终端快捷键的延迟性。在按下
Ctrl+Alt+T
后不能迅速弹出终端窗口,多次尝试后发现弹出窗口有时会有延迟,需要等一下,不然会一次性弹出多个终端窗口。 - 希望能在虚拟机中建一个共享文件夹,实现主机和虚拟机的双向共享。
- 命令不同于c语言,空格也是命令的一部分,而且是经常出错的一部分。
Linux命令的学习
通过学习别出心裁的Linux命令学习法,总结出以下几点:
- 首先是界面,Linux不但为用户提供了桌面环境,在桌面上可以用鼠标操作,还兼顾完全的命令行操作,通过安装增强功能,可以与主机共享文件,共享剪贴板的内容,相当于又一台虚拟电脑。
- 其次是掌握一些Ubuntu方便的快捷键,除了上面提到的
Ctrl+Alt+T
打开终端外,例如Tab
可以在输入命令的开头时补全命令,避免输入错误;↑
恢复之前输入过的命令;Ctrl+C
可以终止当前程序。 - 此外还简单了解几种基本命令,如:Linux命令、man命令、cheat命令,
其中安装cheat过程如下:
之后又尝试了cheat find
和cheat 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安装软件也需要命令,这和我们习惯的windows大不相同。
- 用户及文件权限管理
linux命令:
command [options] [arguments]//命令 选项 参数
例如ls -a .
其中-a
是选项,.
是参数-
查看用户
-
who
命令-
who am i
是当前伪终端的用户名,whoami
是当前登陆用户的用户名
-
-
-
创建用户
- sudo命令
-
sudo adduser <user>
可以创建新用户 -
sudo <cmd>
以特权级别运行cmd命令,需要当前用户属于sudo组,且需要输入当前用户密码
-
- su命令
-
su <user>
切换到用户user -
su - <user>
切换到用户user的同时环境变量也会变成user的
-
- 用
exit
或Ctrl+D
退出当前用户
- sudo命令
-
查看用户组
- 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命令后的文件的基本数据
-
- cat 正序,加上
- 新建
- 环境变量与文件查找
- 变量
- 创建
declare 变量名
,注意变量名只能是英文字母,数字或者下划线,且不能以数字作为开头 - 赋值
=
- 读取
echo $变量名
- 创建
- 环境变量(在当前进程的子进程仍有效)
set 显示当前 Shell 所有环境变量
env 显示与当前用户相关的环境变量
export 显示从 Shell 中导出成环境变量的变量
为了与普通变量区分,通常我们习惯将环境变量名设为大写
-
添加自定义路径到“PATH”环境变量
-
$ PATH=$PATH:/home/shiyanlou/mybin
注意使用绝对路径 -
>>
表示将标准输出以追加方式重定向到一个文件中$ echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc
-
修改
删除
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操作系统有了一个初步认识,虽然对很多抽象的命令都不是很理解,但是我会在接下来的学习中,多操作,多实践,进一步感受命令的神奇之处。