在安装VirtualBox以后,建立虚拟机的过程当中,类型为Linux,但在版本里找不到64-bit的Ubuntu。html
在网上查找了一些资料以后,我发现是本身的电脑没有开启虚拟化,应该要进入BIOS打开虚拟化。这里真的要吐槽一下win10,我找了不少的方法教程,才终于找到了进入BIOS的方法。这应该也和各个电脑的设置有关系吧。linux
打开虚拟化以后,就能够顺利的设置为64位的Ubuntu了。
shell
在安装Ubuntu时,按照教程中的连接,结果,这个下载连接是错误的,只要在百度里找到正确的官网连接就能够了。
ubuntu
主要介绍了操做系统的基本概念, Linux 的历史,Linux 与 Windows 的区别等入门知识。
在这一章,我看到Linux的整个发展过程是无数电脑天才们的不断努力来推进的,具备不少的优点。vim
对比Windows,它的优点也是明显的安全
无偿使用bash
安全性高app
效率高less
可定制性iphone
应用范畴广
春节期间,我正好也去看了一部电影——唐人街探案2,其中一个片断更是将Linux系统吹得神乎其神,可以学习Linux也是很开心。
如下整理的一些知识:
一般咱们在使用 Linux 时,并非直接与系统打交道,而是经过一个叫作 Shell 的中间程序来完成的。
Linux 操做系统下的 Shell 既是用户交互的界面,也是控制系统的脚本语言。
Ubuntu 终端默认使用的是 bash。
建立文件touch file
进入目录cd /etc/
查看当前目录pwd
经常使用快捷键
按键 | 做用 |
---|---|
Tab | 命令补全 |
Ctrl+c | 强行终止当前程序 |
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 中的任意单一字符 如:[0-9] [a-z] |
{string1,string2,...} 匹配 string1 或 string2 (或更多)其一字符串
{c1..c2}| 匹配 c1-c2 中所有字符 如{1..10}
banner主要程序
安装
$ sudo apt-get update $ sudo apt-get install sysvbanner
打印
$ banner shiyanlou
字体改变
$ printerbanner -w 50 A
本章做业:
$ who am i
$ who mom likes
参数 | 说明 |
---|---|
-a | 打印能打印的所有 |
-d | 打印死掉的进程 |
-m | 同am i,mom likes |
-q | 打印当前登陆用户数及用户名 |
-u | 打印当前登陆用户登陆信息 |
-r | 打印运行等级 |
$ sudo adduser lilei
$ su -l lilei
exit
或Ctrl+d
查看本身属于哪些用户组
1.groups命令$ groups shiyanlou
2.查看/etc/group/文件$ cat /etc/group | sort
过滤信息$ cat /etc/group | grep -E "shiyanlou"
将其余用户加入sudo用户组
$ su shiyanlou $ groups lilei $ sudo usermod -G sudo lilei $ groups lilei
$ sudo deluser lilei --remove-home
$ cd /home/lilei $ ls iphone6 $ sudo chown shiyanlou iphone6
$ chmod 700 iphone6
$ chmod go-rw iphone6
本章做业
$ cd ..
$ cd ~
$ pwd
touch
命令mkdir
命令,使用-p
同时建立父目录,例$ mkdir -p father/son/grandson
cp
命令,例$ cp test father/son/grandson
cp
加上-r
或-R
,例$ cp -r father family
rm
,强制删除-f
rm
命令加上-r
或-R
mv
,例$ mkdir Documents $ mv file1 Documents
$ 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
cat
,tac
,nl
more
,less
$ file /bin/ls
$ vimtutor
本章做业
$ declare tmp
$ tmp=shiyanlou
$ echo $tmp
与环境变量相关的命令:set
,env
,export
命 令 | 说 明 |
---|---|
set | 显示当前 Shell 全部变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量。 |
env | 显示与当前用户相关的环境变量,还可让命令在指定环境中运行。 |
export | 显示从 Shell 中导出成环境变量的变量,也能经过它将自定义变量导出为环境变量。 |
永久生效
Linux变量分为,永久的和临时的。
/etc/bashrc
存放shell变量
/etc/profile
环境变量,永久生效
$ echo $PATH
$ gedit hello_shell.sh
$ chmod 755 hello_shell.sh
$ ./hello_shell.sh
$ gedit hello_world.c
$ gcc -o hello_world hello_world.c
$ mkdir mybin $ mv hello_shell.sh hello_world mybin/
添加自定义路径到'PATH'环境变量
添加自定义路径$ PATH=$PATH:/home/shiyanlou/mybin
$ echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc
变量设置方式 | 说明 |
---|---|
${变量名#匹配字串} | 从头向后开始匹配,删除符合匹配字串的最短数据 |
${变量名##匹配字串} | 从头向后开始匹配,删除符合匹配字串的最长数据 |
${变量名%匹配字串} | 从尾向前开始匹配,删除符合匹配字串的最短数据 |
${变量名%%匹配字串} | 从尾向前开始匹配,删除符合匹配字串的最长数据 |
${变量名/旧的字串/新的字串} | 将符合旧字串的第一个字串替换为新的字串 |
${变量名//旧的字串/新的字串} | 将符合旧字串的所有字串替换为新的字串 |
$ unset temp
source
命令,例 $ source .zshrc
source
命令的别名.
,例 $ source .zshrc
whereis
简单快捷,例 $ whereis who
locate
快而全,例 $ locate /etc/sh
、$ locate /usr/share/\*.jpg
which
小而精,例 $ which man
find
精而细,例 $ sudo find /etc/ -name interfaces
参数 | 说明 |
---|---|
-atime | 最后访问时间 |
-ctime | 最后修改文件内容的时间 |
-mtime | 最后修改文件属性的时间 |
本章做业
文件后缀名 | 说明 |
---|---|
*.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 程序压缩的文件 |
$ zip -r -q -o shiyanlou.zip /home/shiyanlou $ du -h shiyanlou.zip $ file shiyanlou.zip
$ 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 -h -d 0 *.zip ~ | sort
$ zip -r -l -e -o shiyanlou_encryption.zip /home/shiyanlou
$ unzip shiyanlou.zip
$ unzip -q shiyanlou.zip -d ziptest
不解压查看压缩包内容$ unzip -l shiyanlou.zi
unzip -O GBK 中文压缩文件.zip
$ 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 x shiyanlou.rar
$ mkdir tmp $ unrar e shiyanlou.rar tmp/
$ tar -cf shiyanlou.tar ~
$ mkdir tardir $ tar -xf shiyanlou.tar -C tardir
$ tar -tf shiyanlou.tar
$ tar -cphf etc.tar /etc
$ tar -czf shiyanlou.tar.gz ~
$ tar -xzf shiyanlou.tar.gz
压缩文件格式 | 参数 |
---|---|
*.tar.gz | -z |
*.tar.xz | -J |
*tar.bz2 | -j |
df
命令,加上-h
更易读du
命令查看目录容量参数 | 做用 |
---|---|
du -h | 同--human-readable 以K,M,G为单位,提升信息的可读性。 |
$ du -h -d | 指定查看目录的深度 |
du -a | 同--all 显示目录中全部文件的大小。 |
du -s | 同--summarize 仅显示总计,只列出最后加总的值。 |
建立虚拟磁盘
建立虚拟镜像文件
$ dd if=/dev/zero of=virtual.img bs=1M count=256 $ du -h virtual.img
$ sudo mkfs.ext4 virtual.img
$ sudo mount
mount [options] [source] [directory]
mount [-o [操做选项]] [-t 文件系统类型] [-w|--rw|--ro] [文件系统源] [挂载点]
$ mount -o loop -t ext4 virtual.img /mnt # 也能够省略挂载类型,不少时候 mount 会自动识别 # 以只读方式挂载 $ mount -o loop --ro virtual.img /mnt # 或者mount -o loop,ro virtual.img /mnt
$ sudo umount /mnt
$ sudo fdisk -l
$ sudo fdisk virtual.img
p
查看结果losetop
命令$ sudo losetup /dev/loop0 virtual.img
$ sudo losetup -d /dev/loop0
kpartx
工具$ sudo apt-get install kpartx $ sudo kpartx -av /dev/loop0 # 取消映射 $ sudo kpartx -dv /dev/loop0
$ mkdir -p /media/virtualdisk_{1..3} # 挂载磁盘分区 $ sudo mount /dev/mapper/loop0p1 /media/virtualdisk_1 $ sudo mount /dev/mapper/loop0p5 /media/virtualdisk_2 $ sudo mount /dev/mapper/loop0p6 /media/virtualdisk_3 # 卸载磁盘分区 $ sudo umount /dev/mapper/loop0p1 $ sudo umount /dev/mapper/loop0p5 $ sudo umount /dev/mapper/loop0p6
$ df -h
命令检查结果本章做业
type
命令区份内建命令和外部命令type exit type service
help ls
ls --help
man命令(没有内建与外部命令的区分)——man ls
章节数 | 说明 |
---|---|
1 | Standard commands (标准命令) |
2 | System calls (系统调用) |
3 | Library functions (库函数) |
4 | Special devices (设备说明) |
5 | File formats (文件格式) |
6 | Games and toys (游戏和娱乐) |
7 | Miscellaneous (杂项) |
8 | Administrative Commands (管理员命令) |
9 | 其余(Linux特定的), 用来存放内核例行程序的文档。 |
info命令(更为全面)——info ls