码迷,mamicode.com
首页 > 系统相关 > 详细

20165327 预备作业3 Linux安装及学习

时间:2018-02-25 19:01:51      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:修改权限   服务   程序   find   默认   stdin   特点   shell   linu   

20165327 预备作业3 Linux安装及学习

一、学习基于VirtualBox虚拟机安装Ubuntu图文教程,在自己笔记本上安装Linux操作系统,注意尽量选用最新版本的VirtualBox和Ubuntu

虚拟机的安装还比较顺利可能是笔记本自身原因因此只装了32位系统
只是在安装 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命令(最详细)

部分课后小作业效果图

技术分享图片
技术分享图片

20165327 预备作业3 Linux安装及学习

标签:修改权限   服务   程序   find   默认   stdin   特点   shell   linu   

原文地址:https://www.cnblogs.com/yjtblog/p/8469992.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!