Linux安装及学习
一、VirtualBox和Ubuntu的安装
我安装的是VirtualBox 5.2.6和Ubuntu 16.04 LTS,安装过程按照老师博客中的步骤依次进行,出现了以下几个问题。
Q:在创建虚拟机,选择虚拟机系统版本时,选项中没有Ubuntu (64-bit)。
A:在上网查询后发现,需要CPU允许硬件虚拟化,需要进入Bios,选择Configuration中的Intel Uirtual Technology,将Disabled改为Enabled 后保存。
Q:分配共享数据空间过程中,由于命令没有输出,在设置完成后,发现目录下文件不能共享。
A:在仔细检查过我的命令与娄老师的命令后发现,在“sudo mount -t vboxsf rocshare /mnt/shared" 中没有将rocshare改成我自己的共享文件。发现这个问题后,我将正确的命令又执行了一遍,最终达到了共享的目的。
收获###
这是我第一次独立在电脑上安装系统,刚开始感觉会很难,但按照老师的教程一步一步做,有问题时尽量自己尝试解决,并借鉴同学们在蓝墨云班课中的提问,最终完成虚拟机和系统的安装。我起初对虚拟机几乎一无所知,只是根据教程一步步完成,输入命令时也并不知道有什么用处,在经过实验楼的学习后,我对Linux新颖的操作方法很好奇,也学会了一些基本的命令。
二、Linux命令学习
Linux中命令格式为:
command [options] [arguments] //中括号代表是可选的,即有些命令不需要选项也不需要参数
其中选项
(option)是调整命令执行行为的开关,选项不同决定了命令的显示结果不同,参数
(arugment)是指命令的作用对象。
快捷键
Ctrl+Alt+T
:打开终端。
Ctrl+Alt+F1~F7
:切换终端。
Ctrl+Shift+T
:新建标签页。
Ctrl+C
:中断程序。
Ctrl+d
:键盘输入结束或输出终端。
Ctrl+s
:暂停当前程序,按任意键恢复运行。
Ctrl+z
:将当前程序放在后台运行。
fg
:后台运行程序恢复前台。
Ctrl+a
:光标移至输入行头,相当于Home
。
Ctrl+e
:光标移至输入行末,相当于End
。
Ctrl+k
:删除从光标所在位置到行末。
Alt+Backspace
:向前删除一个单词。
Shift+PgUp
:将终端显示向上滚动。
Shift+PgDn
:将终端显示向下滚动。
Alt+数字+N
:跳转标签页。
Tab
:补全终端命令,在C语言编程中也常用。
上键
:切换历史命令。
通配符
*
:匹配0或多个字符。
?
:匹配任意一个字符。
[list]
:匹配list中的任意单一字符,需用逗号隔开。
[!list]
:匹配除list中任意单一字符以外的字符,!后面的应加括号(),括号内用逗号隔开。
[c1-c2]
:匹配c1-c2中任意单一字符。
{string1,string2,...}
:匹配 string1 或 string2 或...中的其一字符串。
{c1..c2}
:匹配全部字符。
用户
who
:查看用户。
相关参数:
-a
:打印能打印的全部。
-d
:打印死掉的进程。
-m
:和am i,mom likes相同。
-q
:打印当前登录用户数和用户名。
-u
:打印当前登录用户登录信息。
-r
:打印运行等级。
sudo
:以特权级别执行命令(root权限)。
sudo adduser 用户名
:新建用户。
su
:切换用户。
exit
:退出用户或终端,同Ctrl+d
。
groups
:查看用户组,也可通过查看/etc/group
文件。
usermod
:给用户添加用户组,其中可以使用sudo usermod -G sudo 用户名
将用户添加到sudo用户组。
deluser
:删除用户。
文件操作
ls
:通过不同的参数可以查看文件的权限、大小、文件名等等属性。
相关参数:
-A
:显示除了 .(当前目录)和 ..(上一级目录)之外的所有文件,包括隐藏文件(Linux 下以 . 开头的文件为隐藏文件)。
-Al
:查看某一个目录的完整属性。
-dl
:<目录名>:显示所有文件大小。
-AsSh
:其中小s为显示文件大小,大 S 为按文件大小排序,可用man知道如何按其它方式排序。
chown
:改变文件拥有者,sudo chown <新所有者> <文件名>
。
chmod
:更改文件权限
二进制数字表示:chmod 数字 文件名
。
加减赋值操作:g
、o
还有 u
分别表示 group、others 和 user,+
和-
分别表示增加和去掉相应的权限例:chmod go-rw 文件名
。
touch
:创建文件。
cp
:复制文件,cp 文件名 路径
。
rm
:删除,参数-f
可以强制删除参数。
mv
:移动文件:mv 源目录文件 目的目录
,重命名文件:mv 旧的文件名 新的文件名
。
rename
:批量重命名。
cat
:正序显示打印文件内容到标准输出(终端),加上 -n
参数显示行号
tac
:倒序打印文件内容到标准输出(终端)
nl
:添加行号并打印,比cat -n
更专业的行号打印命令
more
,less
:分页查看。
head
,tail
: 查看文件的头几行(默认为 10 行,不足 10 行则显示全部)和尾几行。
file
:查看文件类型。
目录
cd
:进入某个目录。
pwd
: 获得绝对路径。
.
:当前目录。
..
:上级目录。
-
:上一次所在目录。
~
:当前用户的home。
mkdir
:创建目录。
cp
:加参数r或R复制指定目录,cp 文件名 路径
。
rm
:加参数r或R删除指定目录。
文件搜索
whereis
:简单快速, 直接从数据库中查询,只能搜索二进制文件(-b),man 帮助文件(-m)和源代码文件(-s)。
locate
:快而全,手动执行一次 updatedb 命令,用于更新它的查找对象——“ /var/lib/mlocate/mlocate.db ”数据库,它可以用来查找指定目录下的不同文件类型。
which
:小而精,通常使用 which 来确定是否安装了某个指定的软件,因为它只从 PATH 环境变量指定的路径中去搜索命令
find
:精而细,它不但可以通过文件类型、文件名进行查找而且可以根据文件的属性(如文件的时间戳,文件的权限等)进行搜索。find 的第一个参数是要搜索的地方: 基本命令格式为 find [path] [option] [action]
,例如:sudo find /etc/ -name 文件或目录
。
- 与时间相关的命令参数:
-atime
:最后访问时间
-ctime
:最后修改文件内容的时间
-mtime
:最后修改文件属性的时间 - 与这些参数相关的天数命令(以 -mtime 参数举例)
-mtime n
:n 为数字,表示为在 n 天之前的“一天之内”修改过的文件
-mtime +n
:列出在 n 天之前(不包含 n 天本身)被修改过的文件
-mtime -n
:列出在 n 天之内(包含 n 天本身)被修改过的文件
-newer file
:file 为一个已存在的文件,列出比 file 还要新的文件名
文件打包与压缩
du
:查看文件的大小,压缩文件的压缩级别。
zip
:压缩打包文件。
相关参数:
-r
:表示递归打包包含子目录的全部内容。
-q
: 表示为安静模式。
-o
: 表示输出文件,需在其后紧跟打包输出文件名。
-O
: 解压时可以指定编码类型unzip -O GBK 中文压缩文件.zip。
unzip
:解压缩zip文件。
tar
:打包但不压缩(不加参数)。
相关参数:
-c
:打包。
-x
:解包。
-f
:接文件名。
-z
:用gzip工具压缩。
-J
:用xz工具压缩。
-j
:用bzip2工具压缩。
变量
declare
:创建变量,用=
对变量进行赋值。
$
:引用变量的值。
set
:打印当前 Shell 所有变量。
env
:打印当前用户相关的环境变量,还可以让命令在指定环境中运行,范围小于set。
export
:打印导出成环境变量的变量,也能通过它将自定义变量导出为环境变量范围比env更小。
PATH=$PATH:用户名
:添加自定义路径(一定要使用绝对路径)到“ PATH ”环境变量。
>>
: 表示将标准输出以追加的方式重定向到一个文件中。
>
: 是以覆盖的方式重定向到一个文件中。
unset
:删除变量。
source
:使环境变量立即生效。
磁盘
df
: 查看磁盘的容量,用参数-h
增强可读性。
du
: 查看目录的容量。
相关参数:
-d
:指定查看目录的深度。
-a
:同--all 显示目录中所有文件的大小。
-s
:同--summarize 仅显示总计,只列出最后加总的值。
dd
:转换和复制文件,也可以读取文件或写入到这些文件。格式为:选项=值
。选项if
和of
可以改变标准输入和输出。
mkfs
:格式化磁盘。
mount
:挂载磁盘。
unmount
:卸载磁盘。
fdisk
:为磁盘分区。
帮助
help
:显示内建命令简要的帮助信息。对于外部命令可使用--help
参数。
man
:显示手册中的帮助信息。
info
:比man命令更为详细的GNU信息。
cheat
:即“小抄”,简洁地提供比man更容易理解的解释与相应的例子,但是需要安装。