linux安装
由于以前稍微关注过虚拟机相关知识,所以大致知道虚拟机软件的相关知识。目前我已知的普遍使用的虚拟机软件是VMware Workstation(下文简称VM),VirtualBox(下文简称VB)。其余的可能很多人用但是我没用过就不提了。
我也在VM和VB之间做过比较。VB开源,免费,且安装后体积较小,操作简单适合新手;VM功能强大,可以随时调整虚拟机的配置,完全隔离并保护主机与虚拟机的文件等,但是占用空间较大,且不免费需要破解(虽然破解不难但是本着支持正版维护版权,且后期遇到一些问题还是改用适合新手的VB)。
我下载了两个ubuntu系统——17.04,16.04.3 LTS。ubuntu每半年发布一个新系统,然后就放弃该系统的维护。LTS版本意思为Long Term Support,长期支持版本,有五年的支持期至2021年。我的虚拟机程序也下载了VMware Workstation 14pro和VirtualBox5.2.6版本。起初我使用的是VM和ubuntu17.04版本,但是安装后遇到一系列问题——首先是VM虚拟机不知是对ubuntu还是所有系统,显示窗口极小无法全屏需要下载安装VMware Tools后才可以全屏显示。然后我的17.04系统对所有需要安装的东西都无法安装提示找不到包,询问过学长后建议我换源,但是在换源文档替换代码时十分的卡,有时可以把虚拟机卡到死机(我电脑配置为i7-6700HQ,16G RAM,128G SSD+1T HDD,CPU和内存分出一半给虚拟机,硬盘35G),之后我选择重装系统,成功后VMware Tools无论如何安装后无法生效,换源换了阿里源,各大学的源也无济于事,且网上17.04版本的相关支持也是非常的少不如16.04的多,且LTS是长期支持版本,所以第二次就换成了VB和ubuntu16.04.3 LTS。上述问题自然解决。总结可能是自己不会用VM,且网上教程教程比较杂乱设置参数出现问题,安装系统时电脑还在使用别的程序导致系统安装不完整所致。
在使用虚拟机是也别强调一定要在虚拟机系统完全关机后才能关闭虚拟机软件从而关闭主机,否则虚拟机强制关闭可能会会导致ubuntu系统下次开机进入修复模式(grub ),第一次接触并不是很懂,安装网上教程多次尝试后界面出现很多*字符和乱码,迫不得已将已经安装好各种内容的系统重装。目前各项功能正常。
linux安装软件大多是在终端输入命令apt-get命令获取,需注意命令的正确性。能用补全尽量补全。
在配置虚拟机资源分配时,内存不宜超过主机的一半,其余资源也别分配太高。linux对配置要求不很高,分出过多资源导致主机卡顿,运行在主机上的虚拟机软件势必会卡顿。
linux学习
别出心裁的Linux命令学习法总结
操作系统操作系统为你完成所有“硬件相关、应用无关”的工作,以给你方便、效率、安全。操作系统的功能我总结为两点:管家婆和服务生:
管家婆:通过进程、虚拟内存和文件三个重要抽象管理计算机的CPU、内存、I/O设备。
服务生:为用户提供shell,为程序员提供系统调用。
Linux学习应用的一个特点是通过命令行进行使用,命令行的好处主要是可以批处理并自动化,还有些功能GUI无法完成。
linux基本快捷键:
- CTRL+ALT+T:打开终端;
- CTRL+SHIFT+T:新建标签页
- ALT+数字N:终端中切换到第N个标签页
- Tab:终端中命令补全
- 上下键盘:切换命令历史
- CTRL+C:中断程序运行。
Linux系统中,我们经常会用man命令来帮助查看这个命令的具体用法,man是很强大的,但是英语不好的同学用man用起来可能不那么顺手,自然而然的就出现了cheat命令,cheat命令就是通过简单的实例告诉你一个命令的具体使用方法。
和查找相关的核心命令还有find,locate,grep,whereis,which等,其中:
find查找一个文件在系统中的什么位置,locate是神速版本的find(Windows下有个神器Everything和locate功能类似)。可以通过cheat find学习find命令。
grep 可以对文件全文检索,比如你接手一个C语言项目,里面有上百个C源文件,想找找main函数在那个文件中,你可以通过grep -n main *.c,快速找到main在哪个C文件中并指出在第几行。grep支持正则表达式,正则表达式也是一个重要的元知识。可以通过cheat grep学习grep命令。上面还提到,
whereis,which告诉你使用的命令工具装在什么地方。Linxu初学者会不习惯Linux的文件系统,C盘呢?D盘呢?用apt-get install安装程序好象也不用我们选择安装位置,程序装在哪了?比如:我们在Linux下上网使用firefox浏览器,大家可以使用whereis firefox或更精确的使用which firefox来看看结果。
apt-cache可以在使用apt-get install安装一个程序时先找找软件源的库里有没有这个程序,有才可以安装。比如老师推荐了一个调试工具ddd,你可以用apt-cache search ddd查查有没有这个程序。
linux入门
根据实验总结一下linux常用命令:- 管理员权限:sudo su
- 恢复用户:su XXX
- 创建一个文件file,touch file
- 进入一个目录,cd是一个命令
cd /etc/ - 查看当前所在目录
pwd - ls 列出文件
- 查看用户输入
who am i
或者
who mom likes - 创建用户
sudo adduser XXX - 命令切换登录用户:
su -l XXX - 查看用户组 使用 groups 命令
groups XXX 或者 查看 /etc/group 文件 - 删除用户:
sudo deluser lilei --remove-home - 变更文件所有者:sudo chown shiyanlou iphone6
- 修改权限:
法一: chmod 700 iphone6(二进制数表示)
法二: chmod go-rw iphone6(加减赋值操作) - 新建目录:mkdir mydir
- 复制文件: cp test(文件名) father/son/grandson(文件夹名)
- 复制目录:cp -r father family(要成功复制目录需要加上 -r 或者 -R 参数,表示递归复制,就是说有点“株连九族”的意思:)
- 删除文件:rm test
- 强制删除:rm -f test
- 删除目录:rm -r family
- 移动文件:mv file1(文件夹1名) Documents(文件夹2名)
- 重命名文件:mv file1(文件夹1名) myfile(文件夹2名)
- 批量重命名:使用通配符批量创建 5 个文件:
$ touch file{1..5}.txt - 批量将这 5 个后缀为 .txt 的文本文件重命名为以 .c 为后缀的文件:
$ rename ‘s/.txt/.c/‘ *.txt - 批量将这 5 个文件,文件名改为大写:
$ rename ‘y/a-z/A-Z/‘ *.c - 查看 PATH 环境变量的内容:$ echo $PATH
- 让环境变量立即生效:$ unset temp
zip 压缩打包程序
使用 zip 打包文件夹:
$ zip -r -q -o shiyanlou.zip /home/shiyanlou
$ du -h shiyanlou.zip
$ file shiyanlou.zip
设置压缩级别为 9 和 1(9 最大,1 最小),重新打包:
$ zip -r -9 -q -o shiyanlou_9.zip /home/shiyanlou -x ~/.zip
$ zip -r -1 -q -o shiyanlou_1.zip /home/shiyanlou -x ~/.zip
我们再用 du 命令分别查看默认压缩级别、最低、最高压缩级别及未压缩的文件的大小:
$ du -h -d 0 *.zip ~ | sort
- 创建一个 tar 包:
$ tar -cf shiyanlou.tar 解压 *.tar.gz 文件:$ tar -xzf shiyanlou.tar.gz
linux实验
实验三
who的其他命令参数
查看文件权限
我们之前已经很多次用到 ls 命令了,如你所见,我们用它来列出并显示当前目录下的文件,当然这是在不带任何参数的情况下,它能做的当然不止这么多,现在我们就要用它来查看文件权限。
使用较长格式列出文件:
你可能除了知道最后面那一项是文件名之外,其它项就不太清楚了,那么到底是什么意思呢:
可能你还是不太明白,比如第一项文件类型和权限那一堆东西具体指什么,链接又是什么,何为最后修改时间,下面一一道来:
作业:
实验四
linux目录结构:
目录路径:
进入上一级目录:
$ cd ..
进入你的 home 目录:
$ cd ~
或者 cd /home/<你的用户名>
使用 pwd 获取当前路径:
$ pwd
相对路径与绝对路径:
绝对路径
$ cd /usr/local/bin
相对路径
$ cd ../../usr/local/bin
linux文件基本操作
新建目录:
创建名为“ mydir ”的空目录:
$ mkdir mydir
使用 -p 参数,同时创建父目录(如果不存在该父目录),如下我们同时创建一个多级目录:
$ mkdir -p father/son/grandson
复制
要成功复制目录需要加上 -r 或者 -R 参数,表示递归复制:
$ cp -r father family
删除
使用 rm(remove files or directories)命令删除一个文件:
$ rm test
强制删除
$ rm -f test
删除目录:
跟复制目录一样,要删除一个目录,也需要加上 -r 或 -R 参数:
$ rm -r family
移动文件
使用 mv(move or rename files)命令移动文件(剪切)。将文件“ file1 ”移动到 Documents 目录:
mv 源目录文件 目的目录:
$ mkdir Documents
$ mv file1 Documents
重命名文件
mv 旧的文件名 新的文件名:
$ mv file1 myfile
批量重命名
使用通配符批量创建 5 个文件:
$ touch file{1..5}.txt
批量将这 5 个后缀为 .txt 的文本文件重命名为以 .c 为后缀的文件:
$ rename ‘s/.txt/.c/‘ *.txt
批量将这 5 个文件,文件名改为大写:
$ rename ‘y/a-z/A-Z/‘ *.c
查看文件
比如我们要查看之前从 /etc 目录下拷贝来的 passwd 文件:
$ cat passwd
可以加上 -n 参数显示行号:
$ cat -n passwd
作业:
实验五
环境变量
使用 declare 命令创建一个变量名为 tmp 的变量:
$ declare tmp
使用 = 号赋值运算符,将变量 tmp 赋值为 shiyanlou:
$ tmp=shiyanlou
读取变量的值,使用 echo 命令和 $ 符号:
$ echo $tmp
环境变量
变量修改
搜索文件
搜索相关的命令常用的有 whereis,which,find 和 locate 。
- whereis 简单快速
$whereis who
- locate 快而全
,如查找 /etc 下所有以 sh 开头的文件:
$ locate /etc/sh
查找 /usr/share/ 下所有 jpg 文件:
$ locate /usr/share/*.jpg
注意要添加 * 号前面的反斜杠转义,否则会无法找到。
如果想只统计数目可以加上 -c 参数,-i 参数可以忽略大小写进行查找,whereis 的 -b、-m、-s 同样可以使用。
- which 小而精
which 本身是 Shell 内建的一个命令,我们通常使用 which 来确定是否安装了某个指定的软件,因为它只从 PATH 环境变量指定的路径中去搜索命令:
$ which man
- find 精而细
这条命令表示去 /etc/ 目录下面 ,搜索名字叫做 interfaces 的文件或者目录。这是 find 命令最常见的格式,千万记住 find 的第一个参数是要搜索的地方:
$ sudo find /etc/ -name interfaces
作业:
实验六
文件打包后缀名说明:
使用zip打压缩包
zip 压缩打包程序
$ zip -r -q -o shiyanlou.zip /home/shiyanlou
$ du -h shiyanlou.zip
$ file shiyanlou.zip
使用 unzip 命令解压缩 zip 文件
将 shiyanlou.zip 解压到当前目录:
$ unzip shiyanlou.zip
使用安静模式,将文件解压到指定目录:
$ unzip -q shiyanlou.zip -d ziptest
rar 打包压缩命令
安装 rar 和 unrar 工具:
$ sudo apt-get update
$ sudo apt-get install rar unrar
从指定文件或目录创建压缩包或添加文件到压缩包:
$ rm *.rar
$ rar a shiyanlou.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 包:
$ tar -cf shiyanlou.tar ~
解包一个文件(-x 参数)到指定路径的已存在目录(-C 参数):
$ mkdir tardir
$ tar -xf shiyanlou.tar -C tardir
只查看不解包文件 -t 参数:
$ tar -tf shiyanlou.tar
保留文件属性和跟随链接(符号链接或软链接),有时候我们使用 tar 备份文件当你在其他主机还原时希望保留文件的属性(-p 参数)和备份链接指向的源文件而不是链接本身(-h 参数):
$ tar -cphf etc.tar /etc
我们只需要在创建 tar 文件的基础上添加 -z 参数,使用 gzip 来压缩文件:
$ tar -czf shiyanlou.tar.gz ~
解压 *.tar.gz 文件:
$ tar -xzf shiyanlou.tar.gz
总结:
作业:
目前学的比较明白的大概就到这里,后续的我会继续学习理解。这算是最花功夫的一片博客了,不仅需要汇总学习知识还要着手实验实践。相信保持这个劲头可以学好这门课。