您的位置:首页 > 运维架构 > Linux

20165211 预备作业3 Linux安装与学习

2018-02-25 08:25 295 查看

20165211 预备作业3 Linux安装与学习

1. Linux安装

涉及软件:VirtualBox,Ubuntu
参考教程:基于VirtualBox安装Ubuntu图文教程
安装过程的问题

在安装VirtualBox之后,创建虚拟机的过程中,类型为Linux,但在版本里找不到64-bit的Ubuntu。


在网上查找了一些资料之后,我发现是自己的电脑没有开启虚拟化,应该要进入BIOS打开虚拟化。这里真的要吐槽一下win10,我找了很多的方法教程,才终于找到了进入BIOS的方法。这应该也和各个电脑的设置有关系吧。

打开虚拟化之后,就可以顺利的设置为64位的Ubuntu了。



在安装Ubuntu时,按照教程中的链接,结果,这个下载链接是错误的,只要在百度里找到正确的官网链接就可以了。



Linux学习

第一章 Linux简介

主要介绍了操作系统的基本概念, Linux 的历史,Linux 与 Windows 的区别等入门知识。



在这一章,我看到Linux的整个发展过程是无数电脑天才们的不断努力来推动的,具有很多的优势。

对比Windows,它的优势也是明显的

免费使用

安全性高

效率高

可定制性

应用范畴广

春节期间,我正好也去看了一部电影——唐人街探案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


who命令

参数说明
-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


本章作业





第四章 Linux目录结构及文件基本操作

Linux目录与Windows目录的区别

Linux以目录为主,Windows以存储介质为主

FHS标准



目录路径

进入上一级目录
$ cd ..


进入你的home目录
$ cd ~


使用pwd获取当前目录
$ pwd


绝对路径:以根" / "目录为起点的完整路径,以你所要到的目录为终点

相对路径:以当前目录 . 为起点,以你所要到的目录为终点

Linux文件的基本操作

新建空白文档
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
环境变量,永久生效

命令的查找路径和顺序

查看path环境变量
$ echo $PATH


创建一个shell脚本文件
$ gedit hello_shell.sh


为文件添加可执行权限
$ chmod 755 hello_shell.sh


执行脚本
$ ./hello_shell.sh


创建一个C语言“hello world”程序
$ gedit hello_world.c


保存后使用 gcc 生成可执行文件
$ 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最后修改文件属性的时间
本章作业



第六章 文件打包和压缩

常用压缩包文件格式

文件后缀名说明
*.zipzip 程序打包压缩的文件
*.rarrar 程序压缩的文件
*.7z7zip 程序压缩的文件
*.tartar 程序打包,未压缩的文件
*.gzgzip 程序(GNU zip)压缩的文件
*.xzxz 程序压缩的文件
*.bz2bzip2 程序压缩的文件
*.tar.gztar 打包,gzip 程序压缩的文件
*.tar.xztar 打包,xz 程序压缩的文件
*tar.bz2tar 打包,bzip2 程序压缩的文件
*.tar.7ztar 打包,7z 程序压缩的文件
zip

使用zip打包文件夹,例:

$ 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包

$ 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


rar

安装工具

$ 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(最常用)

创建tar包

$ tar -cf shiyanlou.tar ~


解包一个文件到指定目录

$ mkdir tardir
$ tar -xf shiyanlou.tar -C tardir


只查看不解包文件

$ tar -tf shiyanlou.tar


保留文件属性和跟随链接

$ tar -cphf etc.tar /etc


gzip压缩文件

$ tar -czf shiyanlou.tar.gz ~


解压*.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
命令检查结果

本章作业



第八章 Linux下的帮助命令

内建命令与外部命令

内建命令:shell程序的一部分,包含一些简单的Linux系统命令,不需要创建子进程,执行速度比外部命令快

外部命令:Linux系统中的实用程序部分,包含的程序量很大,命令执行过程由shell程序控制

type
命令区分内建命令和外部命令

type exit
type service




help命令

bash中内置有该命令

准备:


内建命令
help ls


外部命令
ls --help


man命令(没有内建与外部命令的区分)——
man ls


章节数说明
1Standard commands (标准命令)
2System calls (系统调用)
3Library functions (库函数)
4Special devices (设备说明)
5File formats (文件格式)
6Games and toys (游戏和娱乐)
7Miscellaneous (杂项)
8Administrative Commands (管理员命令)
9其他(Linux特定的), 用来存放内核例行程序的文档。
info命令(更为全面)——
info ls
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: