预备作业:课程基础

作业一

你对专业的认识和期望是什么?

信息管理与信息系统是一门综合管理学和计算机科学的交叉学科,主要学习利用计算机技术进行信息的管理,我个人理解本专业更偏向工科,侧重于计算机技术的学习。在专业课程的学习中,我希望积累扎实的管理学理论基础和计算机应用技术,学习更多的计算机知识,如网络空间安全和软件工程方面等。希望学完这门课程可以做出一些有趣的小程序、小游戏。

上学期C语言总代码量大概多少行,本学期实践10000行代码,你觉得这个负担大吗?

学习c语言大概打了9000行代码。10000代码应该能完成。

你的C语言学习怎么样?如果学的还行,你认为从C语言学习中比较好的经验是什么?如果学的不好,那么你学的不好的原因是什么?

学的还行。经验有两点,一是多练,积累一定的练习量可以使解题思路更加清晰,二是归纳总结,总结算法思路有助于解决复杂的题目。上学期没看课外参考书,仅学了些基础知识,要改进。

作业二

安装Vmware Ubuntu 的问题解决

1.ubuntu窗口显示过小

解决过程:在安装Vmware工具里选择安装Vmware Tools,下载完成后,把VMwareTools…tar.gz提取到虚拟机桌面,桌面出现vmware-tools-distrib目录。在终端输入sudo su命令,输入用户密码进入root用户。 执行vmware-install.pl命令,根据提示输入yes/no直到出现enjoy字样,重启虚拟机即安装完成。在虚拟机上放工具栏“查看”中可以自己调节窗口大小。

2.Ubuntu系统磁盘空间不足

解决过程:在安装vmware tools过程中发现初始分配的磁盘空间不足,根据博客,先在虚拟机上进行磁盘的扩展,增加最大虚拟磁盘大小。打开虚拟机在终端输入sudo apt-get install gparted命令安装gparted,运行sudo gparted,重新进行磁盘分区。重启以后用df命令检查分区是否成功。

Linux命令学习笔记及问题解决

一、命令与选项

指令主体 (空)[选项]
(空) [操作对象]

1.banner:输出图形字符

$ sudo apt-get update
sudo apt-get install sysvbanner(安装)
$ banner lengchong
$ printerbanner -w(制定打印宽度参数) 50A
另外还有toilet figlet

2. ls:查看文件夹下内容(list)

  • .开头文件为隐藏文件
  • . 表示当前目录 .. 表示上一级目录
  • 选项:-a显示隐藏文件,-l列表显示文件详细情况,-h配合-l使用,人性化显示文件大小
  • 选项可叠加使用,无顺序要求,例如:-lh-lha

3.pwd:查看当前文件夹(print work directory)

4. cd[目录名]:切换文件夹(change directory)

  • cdcd~ :返回/home/lengchong
  • cd . :不变
  • cd .. : 返回上一级
  • cd - :在最近两次文件夹来回切换
  • 绝对路径与相对路径:相对路径指当前工作路径(./),相对路径下的文件夹可以直接通过文件夹名切换;绝对路径是从根目录开始的路径(/),按照绝对路径使用cd指令可以准确切换任何位置的文件夹。

5.touch[文件名]:创建还未存在的文件

6.mkdir[目录名]:创建目录(make directory)

  • p选项:递归创建目录。例:mkdir -p father/son/grandson

7.rm[文件名]:删除文件(remove)

  • 说明:rm删除文件不可恢复,不要用于系统文件
  • 选项:-f(force)强制删除文件,不论文件是否存在;-r 一次性删除多个目录,用于删文件夹,例如:rm -r *可删除所有文件。

8.cp:拷贝文件(copy)

  • cp [源文件名] [目标文件]
  • 选项:-i 显示覆盖前提示;-r 复制文件夹。

9. mv:移动/重命名(move)

  • mv [源目录文件] [目的目录]
  • -i覆盖前提示

* 指令 --helpman 指令 查看帮助信息

* 通配符:

  • * 代替任意多个字符
  • 代替任意一个字符
  • [-]:匹配一组单字符或连字符分隔范围内的字符
  • {..}:匹配字符串和范围

* 终端实用技巧:

Tab自动补全;上下键切换历史命令;clear清空终端界面;ctrl + shift + =放大终端。

二、用户及权限管理

用户管理

  • 查看用户:who am iwho mom likes
    • 出现 lengchong pts/0:lengchong是用户名,pts表示伪终端,是打开多个终端产生的,数字表示伪终端序号。
    • who 命令其他参数:-a 打印全部;-d 打印已死进程;-q 打印当前登陆用户数及用户名;-r 打印运行等级。
  • 创建用户
    • root权限能添加/删除用户
    • susu-sudo
      • su <user> :切换用户
      • sudo adduser user:新建用户
      • sudo passwd user:设置用户密码
      • exit:退出当前用户
  • 用户组(一组用户的集合)
    • groups命令:查看用户归属
    • root权限用户在etc/sudoers.d目录下创建user文件
    • cat /etc/group | sort:查看etc文件
      • cat读取指定文件内容并打印
  • 将其他用户加入sudo组
    • 不要对sudoers文件进行操作
    • sudo usermod -G sudo [用户名] :赋予用户得root权限,需root权限用户操作。
    • 新建用户并加入用户组:sudo useradd -G [用户组][用户名]
  • 删除用户:sudo deluser user

文件权限

  • 查看文件权限(ls)
    • r可读 w可写 x可执行
    • d目录 l软连接(相当于windows快捷方式) b块设备 c字符设备 s网络套接字 p管道 -普通文件
  • 变更文件所有者:sudo chown [用户名] [目标文件](change owner)
  • 修改文件权限:
    1.二进制表示:
    三组权限顺序一定(拥有者、所属用户组、其他用户 )
    例:r w x →1 * 2的平方+1 * 2+1
    chmod 600 [文件名]表示其他用户不可读该文件
    2.加减操作:
    g、o 还有 u 表示 group、others 、 user,+、-表示增加或去掉权限。
    例:chmod go-rw [文件名](change mode)

三、目录结构及文件操作

目录结构

  • Linux系统的特点 :开放性(开源)、多用户、多任务、良好的用户界面、优异的性能和稳定性。
  • Linux与Windows的区别:
    • 目录与存储介质:Windows以盘符及分区进行文件管理,除系统文件外其他文件可以随意方置;Linux是树形目录结构,磁盘挂载在目录下,每个目录可使用本地或网上的文件系统。
  • FHS标准(filesystem hierarchy standard):
    • / 下的各个目录应该放置什么文件数据:
      例:/etc 放置设置文件;bin/sbin放可执行文件。
    • 定义 /usr /var的子目录:
      例:/var/log 放置系统日志文件;/etc/share 放置共享数据。
  • 路径:
    • 绝对路径:以根/目录为起点的完整路径,以目的目录为终点。
    • 相对路径:以当前目录为起点,以目的目录为终点。

文件操作

  • 新建
    • 新建空白文件:touch [文件名]
    • 新建目录: mkdir [目录名] (-p递归创建目录)
  • 复制
    • 复制文件:cp [源文件] [指定目录]
    • 复制目录:-r [源目录] [指定目录]
  • 删除
    • 删除文件:rm [源文件] (-f 强制删除)
    • 删除目录:rm -r [源目录]
  • 移动/重命名
    • 移动文件:mv [源文件] [目的目录]
    • 重命名:
      • 重命名文件:mv [旧文件名] [新文件名]
      • 批量重命名:rename + 正则表达式
      • 例:rename 's/\.txt/\.c/' *.txt 表示把 .txt 结尾文件改成 .c 结尾文件。
  • 查看文件
    • 打印文件内容并输出:cat(正序)、tac(倒序)
      • 加上-n显示行号
    • 分页查看文件:moreless
    • 只查看文件开头:headtail(加上 -n 1 只显示第一行;tail -f [文件名] 可以不停读取文件内容,动态查看,实时监控)
  • 查看文件类型:file [文件名]
  • 编辑文件:使用vim编辑器

vim编辑器的使用

  • 移动h光标:h(左移)、j(下行)、k(上行)、l(右移)。
  • vim的进入与退出 :
    • 进入:vim 文件名 <回车>
    • 退出:<esc> :wq!<回车> 保存改动(q!丢弃改动)
  • 文本编辑
    • 删除:x 键删除光标所在字符;dw 从光标删下一单词起始;d& 从光标删至行末;dd 删除整行。
      • 简短动作列表:
        w -从当前光标到下一单词起始处
        e -从当前光标到一个单词末尾
        & -从当前光标到行末
    • 插入:正常模式下(<esc键恢复),i键插入文本
    • 添加:A键添加文本
  • 计数制定动作(在动作前输入重复次数):
    例:2w -向前两个单词;3e -向前至第三个单词末尾;0 -移至行首;d2w - 删除两个单词。
  • 撤销:u键撤销上一次操作;ctrl+R取消撤销的命令。
  • 置入:p键将最近一次删除的内容置入光标后。
  • 替换:r键用字符替换光标所在位置字符。(单字符操作)
  • 更改:ce键更改至一个单词末尾;cwc&参考动作列表。
  • 定位及文件状态:G键跳转至文件最后一行;gg跳转至文件第一行;行号+G跳转至制定行;ctrl +g显示当前光标所在位置。
  • 搜索 /字符串 <回车>
  • 复制粘贴:使用v进入可视模式把待复制片段标亮,再用y提取高亮部分,到目标地点使用p粘贴置入。

四、环境变量与文件查找

环境变量

  • 变量
    • 定义:计算机中用于记录一个数值(数值、字符、字符串)的符号。
    • 创建及赋值:declare预声明或即用即创建。使用=号赋值运算符。(变量与=间不能有空格)
    • 读取变量的值:echo $temp ($用于引用变量)。
    • 删除变量:unset [变量名]
  • 环境变量
    • 变量可分成两种:Shell变量和环境变量。
      • 环境变量可视为全局变量,与当前shell无关,是系统中固定存在的变量。
      • shell变量视为局部变量,只对当前shell有效。
      • 本地变量,当前shell变量与环境变量的总和。
    • 相关命令:
      • set打印当前所有本地变量
      • env 显示当前所有环境变量
      • export可修改已存在的环境变量的值或将shell变量转化为环境变量
    • 按生存周期分类:
      • 永久:需要修改配置文件,变量永久生效
      • 临时:使用 export 命令行声明,关闭 shell 失效。
    • 两个重要文件:
      • /etc/bashrc:存放shell变量。
      • /etc/profile:存放环境变量。在该文件下添加环境变量可永久生效。
  • 命令的查找途径及顺序
    • 环境变量PATH中保存了 Shell中执行的命令的搜索路径。
    • 创建shell脚本文件:touch a.sh gedit a.sh 添加可执行权限chmod 755 a.sh 执行脚本./a.sh
    • 创建c语言程序:gedit hello.c 保存后使用gcc生成可执行文件 $ gcc -o hello hello.c
  • 添加自定义路径到PATH
    • 使用绝对路径更改PATH,即可在任意目录执行命令,但只在当前shell有效:$ PATH=$PATH:/home/shiyanlou/mybin(:是分隔符)
    • 将命令途径添加至系统配置文件(zsh - .zshrc ; bash - .bashrc):$ echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc
      • >>是将标准输出定向追加,>是覆盖。
  • 变量修改
    • ${变量名#匹配字串}:从头往后删除匹配的最短字串${变量名##匹配字串}:删去最长字串
    • ${变量名%匹配字串}:从后往前删除匹配的最短字串${变量名%%匹配字串}:从后往前删除匹配的最长字串
    • ${变量名/旧的字串/新的字串}:将符合旧字串的第一个字串替换为新的字串;${变量名//旧的字串/新的字串}:将符合的全部字串替换。
  • 让环境变量立即生效
    • source .zshrc
    • source别称 . 使用 . ./.zshrc(必须是绝对路径)

文件搜索

  • whereis [文件名] 只搜二进制、源代码、帮助文件。
  • locate [目录] /[文件名]locate [文件名]在目录及其子目录下递归查找;-n限定查找个数。
  • which [文件名] 只从PATH路径搜索,用于确认软件是否安装
  • sudo find <指定目录> <指定条件> <指定动作>
    • sudo find [目录] -name/-atime(最后访问时间)/-ctime(最后修改内容时间)/-mtime(最后修改属性时间)/-newer file(比file还新的文件名) [文件名/时间等]

更多:cmatrix 数字雨(-C red 变红)libaa-bin 火炉

本章问题:

  • echo命令能干啥?

打印字符串,显示转义字符、变量,显示结果定向至文件等
--《linux:echo命令示例

  • zsh是啥?

是一个Linux用户很少使用的shell,大多数Linux产品默认使用bash shell。

五、文件打包与解压缩

zip

  • 打包 zip -r -q -o something.zip something
    • 目录加-r;安静打印加-q;输出文件名加-o
    • -n(1-9):表示压缩级别,1最快压缩但文件最大。
    • du -h -d 0 *.zip ~ | sort 查看压缩级别及文件大小
  • 解包unzip something.zip
    • 指定路径加-d [文件名]-l查看压缩包内容。

tar

  • 打包tar -cf somthing.zip
  • 解包tar -xf somthing something.zip
  • 指定路径:-C参数

六、文件系统操作与磁盘管理

基本操作

  • df 查看磁盘容量
    • -h(human-readable) 以kB、GB显示容量
  • du 查看目录容量
    • -h 以KB、GB显示容量
    • -a 显示目录中全部文件大小
    • -s 只显示容量总和
    • -d 限定显示深度
      • 0 - 一级目录 1 - 二级目录
    • du -am | sort -nr | head -n 10 找出当前目录下占内存最多的前10个文件

创建虚拟磁盘

  • dd 命令
    • dd [选项] = 值 :用于转换和复制文件
    • 默认读取标准输入,写入标准输出。可用if(input file)和of(output file)改变,bs指定块大小(可自带单位),count指定块个数。
    • 数据转化示例:conv=ucase 改为大写输出
    • 创建空白文件dd if=/dev/zero of=/dev/virtual.img bs=1M count=256
  • mkfs(make a linux filesystem)
    • 格式化文件sudo mkfs.[文件格式] [文件名]
  • mount
    • mount [-o [操作选项]] [-t 文件系统类型] [-w|--rw|--ro] [源文件] [挂载点]
    • 挂载磁盘mount -o loop -t ext4 vitual.img /mnt
  • umount 或直接删除磁盘文件卸载磁盘
  • 磁盘分区fdisk
    • fdisk命令参数介绍
      • p、打印分区表。
      • n、新建一个新分区。
      • d、删除一个分区。
      • q、退出不保存。
      • w、把分区写进分区表,保存并退出。
  • lostup 建立镜像和回环设备的关联

本章问题

  • loop设备?

Loop设备是一种块设备,指向一个文件块或者另一种块设备。可以将另外一种文件系统的镜像文件保存到一个文件中,再将一个Loop设备指向该文件,紧接着通过mount挂载该loop设备到主文件系统的一个目录下,就可以正常访问该镜像中的内容,就像访问一个文件系统一样。
loop设备是一种伪设备,和一个文件进行连接后给用户提供了一个替代块特殊文件的接口。

--《linux的dev目录系列之设备详解--loop详解

  • 理解:Linux系统下一个硬件对应一个文件,光盘映像之类的文件可以不通过刻录光驱读取,而是将文件链接至loop这个伪设备上,就可以使用mount读取。

七、Linux下的帮助命令

内建命令与外部命令

  • 内部命令:系统运行时就加载在内存中,执行快。
  • 外部命令:功能强大,存放在/bin等文件中。
  • type 命令区分:
    • 内部:xxx is a shell builtin
    • 外部:xxx is /usr/bin/xxx

帮助命令

  • help
    • help [命令] 显示内建命令帮助
    • [命令] --help 可显示外部命令帮助
  • man
    • man [命令]help更详细
  • info
  • info [命令] 比man更详细
  • cheat [命令] 补充了使用实例

学习感想

  • 命令太多不能死记硬背,还是要理解记忆,并在实际应用中加深印象,掌握更多用法。比较偏门的命令可以临时查找,背常用的就好。
  • Tab 挺好用的,命令和文件名忘了都可以用它。
  • 目前还不知道学linux来干啥,有一点茫然....
posted @ 2019-09-04 23:24  冷冲  阅读(371)  评论(2编辑  收藏  举报