预备作业:课程基础
作业一
你对专业的认识和期望是什么?
信息管理与信息系统是一门综合管理学和计算机科学的交叉学科,主要学习利用计算机技术进行信息的管理,我个人理解本专业更偏向工科,侧重于计算机技术的学习。在专业课程的学习中,我希望积累扎实的管理学理论基础和计算机应用技术,学习更多的计算机知识,如网络空间安全和软件工程方面等。希望学完这门课程可以做出一些有趣的小程序、小游戏。
上学期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)
cd或cd~:返回/home/lengchongcd .:不变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覆盖前提示
* 指令 --help或man 指令 查看帮助信息
* 通配符:
*代替任意多个字符?代替任意一个字符[-]:匹配一组单字符或连字符分隔范围内的字符{..}:匹配字符串和范围
* 终端实用技巧:
Tab自动补全;上下键切换历史命令;clear清空终端界面;ctrl + shift + =放大终端。
二、用户及权限管理
用户管理
- 查看用户:
who am i或who mom likes- 出现
lengchong pts/0:lengchong是用户名,pts表示伪终端,是打开多个终端产生的,数字表示伪终端序号。 - who 命令其他参数:
-a打印全部;-d打印已死进程;-q打印当前登陆用户数及用户名;-r 打印运行等级。
- 出现
- 创建用户
- root权限能添加/删除用户
su、su-与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显示行号
- 加上
- 分页查看文件:
more和less - 只查看文件开头:
head和tail(加上-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键更改至一个单词末尾;cw、c&参考动作列表。 - 定位及文件状态:
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:存放环境变量。在该文件下添加环境变量可永久生效。
- 变量可分成两种:Shell变量和环境变量。
- 命令的查找途径及顺序
- 环境变量PATH中保存了 Shell中执行的命令的搜索路径。
- 创建shell脚本文件:
touch a.shgedit 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>>是将标准输出定向追加,>是覆盖。
- 使用绝对路径更改PATH,即可在任意目录执行命令,但只在当前shell有效:
- 变量修改
${变量名#匹配字串}:从头往后删除匹配的最短字串;${变量名##匹配字串}:删去最长字串。${变量名%匹配字串}:从后往前删除匹配的最短字串;${变量名%%匹配字串}:从后往前删除匹配的最长字串。${变量名/旧的字串/新的字串}:将符合旧字串的第一个字串替换为新的字串;${变量名//旧的字串/新的字串}:将符合的全部字串替换。
- 让环境变量立即生效
source .zshrcsource别称.使用. ./.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.[文件格式] [文件名]
- 格式化文件:
mountmount [-o [操作选项]] [-t 文件系统类型] [-w|--rw|--ro] [源文件] [挂载点]- 挂载磁盘:
mount -o loop -t ext4 vitual.img /mnt
umount或直接删除磁盘文件卸载磁盘- 磁盘分区:
fdiskfdisk命令参数介绍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
- 内部:
帮助命令
helphelp [命令]显示内建命令帮助[命令] --help可显示外部命令帮助
manman [命令]比help更详细
info
info [命令]比man更详细
cheat [命令]补充了使用实例
学习感想
- 命令太多不能死记硬背,还是要理解记忆,并在实际应用中加深印象,掌握更多用法。比较偏门的命令可以临时查找,背常用的就好。
- Tab 挺好用的,命令和文件名忘了都可以用它。
- 目前还不知道学linux来干啥,有一点茫然....

浙公网安备 33010602011771号