20165327 预备作业3 Linux安装及学习
一、学习基于VirtualBox虚拟机安装Ubuntu图文教程,在自己笔记本上安装Linux操作系统,注意尽量选用最新版本的VirtualBox和Ubuntu
虚拟机的安装还比较顺利,安装系统时候出了一点问题。
只是在安装 ubuntu时候出现了一点问题,所以实验都是在实验楼的环境里完成的
如下图 回学校后解决
二、通过实践学习别出心裁的Linux命令学习法,掌握Linux命令的学习方法
首先解开我心里面的疑惑,Linux是什么?是一种操作系统!
另外Linux学习应用的一个特点是通过命令行进行使用。
操作系统操作系统为你完成所有“硬件相关、应用无关”的工作,以给你方便、效率、安全。操作系统的功能我总结为两点:管家婆和服务生:
管家婆:通过进程、虚拟内存和文件三个重要抽象管理计算机的CPU、内存、I/O设备。
服务生:为用户提供shell,为程序员提供系统调用。
三、实践学习Linux 基础入门(新版)课程,掌握常用的Linux命令,重点是3/4/5/6/7/8节。
(一)Linux系统的简介
(二)基本概念及操作
(三)用户及文件权限管理
1、查看用户
输入命令:
$ who am i
或者
$ who mom likes
- who命令其他常用参数:
-a打印能打印的全部
-d打印死掉的进程
-m同am i,mom likes
-q打印当前登录用户数及用户名
-u打印当前登录用户登录信息
-r打印运行等级
2、创建用户
su< user> (注:中间没有空格,暂时没有解决的基本语法问题,下同)可以切换到用户 user
sudo < cmd> 可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组
su - < user>命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量
$ ls /home这个命令不但可以添加用户到系统,同时也会默认为新用户创建 home 目录
使用如下命令切换登录用户:
$ su -l lilei
$ sudo adduser lilei
3、在 Linux里面如何知道自己属于哪些用户组呢?
方法一:使用 groups 命令
$ groups shiyanlou
方法二:查看/etc/group文件
$ cat /etc/group | sort
使用命令过滤掉一些你不想看到的结果:
$ cat /etc/group | grep -E "shiyanlou"
4、用 shiyanlou 用户执行 sudo 命令将 lilei 添加到 sudo 用户组,让它也可以使用 sudo 命令获得 root 权限:
$ su shiyanlou
$ groups lilei
$ sudo usermod -G sudo lilei
$ groups lilei
5、删除用户
$ sudo deluser lilei --remove-home
变更文件所有者
$ touch iphone6
可见文件所有者是 lilei
现在,换回到 shiyanlou 用户身份,使用以下命令变更文件所有者为 shiyanlou :
$ cd /home/lilei
$ ls iphone6
$ sudo chown shiyanlou iphone6
$ ll iphone6
6、修改文件权限
方式一:二进制数字表示
为了演示,先在文件里加点内容:
$ echo "echo \"hello shiyanlou\"" > iphone6
然后修改权限:
$ chmod 700 iphone6
现在,其他用户已经不能读这个iphone6文件了
(四) Linux 目录结构
1、FHS 标准
$ sudo apt-get update
$ sudo apt-get install tree
$ tree /
2、目录路径
使用 cd 命令可以切换目录,在 Linux 里面使用. 表示当前目录,.. 表示上一级目录(以 . 开头的文件都是隐藏文件,所以这两个目录必然也是隐藏的,可以使用 ls -a 命令查看隐藏文件),- 表示上一次所在目录,~ 通常表示当前用户的 home 目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。
进入上一级目录:
$ cd ..
进入 home 目录:
$ cd ~
使用 pwd 获取当前路径:
$ pwd
3、新建空白文件
$ touch test
新建目录
创建名为“ mydir ”的空目录:
$ mkdir mydir
使用-p 参数同时创建父目录(如果不存在该父目录):
$ mkdir -p father/son/grandson
4、复制文件
$ cp test father/son/grandson
复制目录
$ cp -r father family
5、删除文件
$ rm test
强制删除文件:
$ rm -f test
删除目录
$ rm -r family
6、移动文件
将文件“ file1 ”移动到 Documents 目录:
$ mkdir Documents
$ mv file1 Documents
7、重命名文件
将文件“ file1 ”重命名为“ myfile ”:
$ mv file1 myfile
8、批量重命名
使用通配符批量创建 5 个文件:
$ touch file{1..5}.txt
批量将这 5 个后缀为 .txt 的文本文件重命名为以 .c 为后缀的文件:
$ rename 's/\.txt/\.c/' *.txt
批量将这 5 个文件,文件名改为大写:
$ rename 'y/a-z/A-Z/' *.c
9、查看文件
使用 cat,tac 和 nl 命令查看文件(其中 cat 为正序显示,tac 为倒序显示)
比如查看passwd 文件:
$ cat passwd
可以加上 -n 参数显示行号:
$ cat -n passwd
使用 head 和 tail 命令查看文件
$ tail /etc/passwd
只看一行:
$ tail -n 1 /etc/passwd
查看文件类型:
$ file /bin/ls
(五) 环境变量与文件查找
1、创建一个变量
$ declare tmp
使用 "=" 号赋值运算符,将变量 tmp 赋值为 shiyanlou:
$ tmp=shiyanlou
读取变量的值,使用 echo 命令和 $ 符号:
$ echo $tmp
2、环境变量
创建一个 Shell 脚本文件:
$ gedit hello_shell.sh
在脚本中添加如下内容,保存并退出:
#!/bin/bash
for ((i=0; i<10; i++));do
echo "hello shell"
done
exit 0
为文件添加可执行权限:
$ chmod 755 hello_shell.sh
执行脚本:
$ ./hello_shell.sh
创建一个 C 语言“ hello world ”程序:
$ gedit hello_world.c
#include <stdio.h>
int main(void)
{
printf("hello world!\n");
return 0;
}
保存后使用 gcc 生成可执行文件:
$ gcc -o hello_world hello_world.c
在 shiyanlou 家目录创建一个 mybin 目录,并将上述 hello_shell.sh 和 hello_world文件移动到其中:
$ mkdir mybin
$ mv hello_shell.sh hello_world mybin/
现在可以在 mybin 目录中分别运行刚刚创建的两个程序:
$ cd mybin
$ ./hello_shell.sh
$ ./hello_world
3、变量删除
$ unset temp
4、搜索文件
whereis 简单快速:
$whereis who
locate 快而全:
$ locate /etc/sh
查找/usr/share/下所有 jpg 文件:
$ locate /usr/share/\*.jpg
which 小而精:
$ which man
find 精而细:
$ sudo find /etc/ -name interfaces
(六)文件打包与压缩
1、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
创建加密 zip 包
使用 -e 参数可以创建加密压缩包:
$ zip -r -e -o shiyanlou_encryption.zip /home/shiyanlou
2、使用 unzip 命令解压缩 zip 文件
将 shiyanlou.zip 解压到当前目录:
$ unzip shiyanlou.zip
使用安静模式,将文件解压到指定目录:
$ unzip -q shiyanlou.zip -d ziptest
3、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/
4、tar 打包工具
创建一个 tar 包:
$ tar -cf shiyanlou.tar ~
解包一个文件(-x 参数)到指定路径的已存在目录(-C 参数):
$ mkdir tardir
$ tar -xf shiyanlou.tar -C tardir
只查看不解包文件 -t参数:
$ tar -tf shiyanlou.tar
保留文件属性和跟随链接:
$ tar -cphf etc.tar /etc
创建不同的压缩格式的文件:
在创建 tar 文件的基础上添加 -z参数,使用 gzip 来压缩文件:
$ tar -czf shiyanlou.tar.gz ~
解压 *.tar.gz 文件:
$ tar -xzf shiyanlou.tar.gz
- 总结zip 命令和tar命令
** zip**
打包 :zip something.zip something (目录请加 -r 参数)
解包:unzip something.zip
指定路径:-d 参数
** tar**
打包:tar -zcvf something.tar something
解包:tar -zxvf something.tar
指定路径:-C 参数
(七) 文件系统操作与磁盘管理
1、基本操作
df命令查看磁盘的容量
du命令查看目录的容量
加上-h参数,以更易读的方式展示$ du –h
-d参数指定查看目录的深度
2、简单的磁盘管理
使用dd命令创建虚拟镜像文件
转换成大写再写入文件
$ dd if=/dev/stdin of=test bs=10 count=1 conv=ucase
使用mkfs命令格式化磁盘
使用mount命令挂在磁盘到目录树
使用umount命令卸载已挂载磁盘
使用fdisk为磁盘分区
使用losetup命令建立镜像与回环设备的关联
(八)Linux下的帮助命令
1、内建命令与外部命令
使用type命令来区分命令是内建的还是外部的
$ type exit
或者
$ type service
2、帮助命令的使用
help命令
Help命令用于显示 shell 内建命令的简要帮助信息。如果是外部命令的话基本上都有一个参数—help$ ls -- help
man命令
得到的内容比用 help 更多更详细,而且 man 没有内建与外部命令的区分。
info命令
要是觉得man显示的信息都还不够,满足不了需求,那试试info命令(最详细)
部分课后小作业效果图