step2 . day1 Linux和C语言的高级应用

经过了十来天的基础知识补习,自觉收获很多,在指针和二级指针即函数的应用上有了更深的理解,也完成了很多之前没能完成或者相同原理的代码段。

经过一个小测验,感觉基础基本扎实,修整一天,继续开始step2学习,争取在下周前完成自己心心念念的俄罗斯方块游戏。

今天继续学习Linux系统的应用,通过软件包管理机制的学习,也算解决了两个问题

1.dpkg status database is locked by another process

解决方案:①sudo rm /var/lib/dpkg/lock

     ②sudo dpkg --configure -a

感觉这个问题的出现就是我第一次出现2问题时候,选择了直接关闭shell,可能出现了错误

 

2.Configuring ttf-mscorefonts-installer问题

解决方案:这个是鼠标无法选择OK而继续下去,需求鼠标点入文本后按tab键,选择ok  接受安装这个EULA

 

 

下面是今天对应Linux的继续学习笔记,做个记录

一:系统准备

1.VMware软件安装,用来在现在操作系统下模拟Linux系统而不必重装系统

2.Linux系统安装,推荐使用Ubuntu14.02版本,较为稳定
注意:安装步骤,选择稍后安装虚拟机,完成必要的配置步骤后添加镜像安装
打开VMware workstations→在主页中选择“创建新的虚拟机”→典型→稍后安装系统→选择Linux系统及版本→
选择安装名称和路径→指定硬盘大小→自定义硬件配置→选择安装镜像→完成后启动此虚拟机开始安装→
安装中按顺序要求填写用户名、语言、时区、管理员密码和创建用户等。

建议选择已经配置好的系统,避免学习环境安装而浪费大量时间,且安装系统后的软件升级和配置需求很多其他知识,需要循序渐进
下载配置好的系统,在虚拟机中选择打开虚拟机,选择文件夹后双击.Ubuntu.vmx后即可使用

二、Linux系统下学习C语言高级应用的步骤
1.Linux系统介绍及shell基本命令
2.网络配置及shell脚本相关
3.gcc编译流程、gdb调试、指针、数组、函数、结构体、共用体、内存的分布、Makefile

三、Linux起源和shell命令

1.Linux起源四个重要人物:
肯.汤姆森 AT&T公司员工,贝尔实验室、发明B语言Unix操作系统、发明C语言
为玩游戏而改变世界的自由之人《space Travel》
丹尼斯里奇 发明C语言 Unix操作系统 C语言之父 Unix之父

查理斯斯托曼 自由软件之父、GNU项目创立者,开发了许多核心工具:Emacs、GCC、GDB和GNU Make等,创建自由软件基金会
林纳斯.托瓦兹 linux之父、极客之父(King Of Geeks ) 创造 Linux 和 Git 两个极好的开源项目,并使他们自由免费

2.什么是Linux:是一种操作系统,1991年Linus Torvals 为了能在家里的PC机上使用与学校一样的操作系统,开始编写了类UNIX。
什么是GNU GNU is Not Unix 由查理斯托斯曼创建,最初软件为 GCC make glibc
什么是GPL General Public License 通用公共协议许可
copyright 收费闭源
copylift 开源,我们首先声明它是有版权的;然后,我们给它加上发布条款,这个条款就是一个法律声明,
它赋予所有人有使用、研究、修改和重新发布程序的代码及其衍生作品的自由(free is not free),
但要求在这个过程中保持发布规则不变。
什么是嵌入式系统:以应用(用户需求)为核心、以计算机技术为基础、软硬件可裁剪的、适用对功能、成本体积功耗有严格要求的专用计算机系统

Ubuntu系统网站:https://cn.ubuntu.com/
查看Ubuntu版本:cat /etc/issue
查看当前内核版本 uname -r


3.打开终端:Ctrl+alt +t
Ctrl+shift+n 在相同路径下在开启一个终端(必须在终端打开的情况下)
Ctrl+shift + t 左右分屏在同一个路径下再打开一个终端*(必须在终端打开情况下)
4.关闭终端:exit Ctrl+d 点x
5.终端提示符 linux@ubuntu:~$
linux :用户名
ubuntu:主机名
~:家目录路径,/根目录路径
$表示普通用户 # 表示管理员用户 使用sudo su root切切换管理员目录
6.shell命令复习
sudo shutdown -h -now 关机
touch 创建文件 文件不存在则创建,存在则修改时间戳
vi 创建并打开文件
mkdir 创建目录 mkdir ~/gaga/farsight -p --->递归创建多个目录文件
mv 移动或重命名 如果源文件/文件夹和目的文件/文件夹都没有加路径,则表示重命名;
如果不在同一个路径下,必须添加路径
不允许相同路径下有相同文件名
cp 拷贝 -arf 强制拷贝
rm 删除文件 -rf删除目录
cd 切换目录(-前一个操作目录,~家目录 .当前目录 绝对路径和相对路径之分)
cat 查看文件内容

ls 查看文件清单(ls ls 路径 ls -a ls -l ls -i ls -lh)
文件类型 bsp - lcd
权限
权限 (文件所有者 + 文件所属组 + 其他用户权限) 八进制-权限
a u g o
chmod a-x a.out
chmod a+x a.out
chmod 675 a.out

clear 清屏 Ctrl+l
r:读 w:写 x:执行 -:没有对应的权限
pwd 查看当前工作目录
tar 打包压缩解压
tab 自动补全
dpkg 软件包管理相关
apt-get 软件包管理相关


7.软件包管理机制
背景:Debian Linux首先提出软件包管理机制 Deb 包
Readhat Linux基于这个理念推出了自己的软件包管理机制 Rpm软件包

软件包的命名
rxvt_1%3a2.6.4-14_i386.deb
Filename_Version-Reversion_Architecture.deb
软件名 软件版本 修订版本 体系架构
通过 file a.out查看文件信息
软件包安装①(离线安装,需先准备好软件包,软件间的依赖关系也要自己准备,需要sudo权限)
sudo dpkg -i 软件包全名 安装软件 sudo dpkg -i *deb 多个软件包同时安装
sudo dpkg -r 软件名 卸载软件
sudo dpkg -P 软件名 卸载软件包含配置文件
sudo dpkg -p 软件名 查看包的具体信息
sudo dpkg -L 软件名 查看软件包安装到系统的文件目录信息
sudo dpkg -l 查看所有安装的Deb包 显示版本号及说明

软件包安装apt②(在线安装,解决依赖关系,本质是先下载到本地,再本地安装)
测试有网 ping www.baidu.com
查看ip ifconfig(Linux下)
ipconfig(Windows下)

sudo apt-get install 软件包名 软件安装
sudo apt-get remove 软件包名 软件卸载
sudo apt-get --purge remove <package> 删除包,包括配置文件等
sudo apt-get --reinstall install <package> 重新安装
sudo apt-get clean 清除下载的软件包

apt安装完的软件deb包存放在:
/var/cache/apt/archives$
文档一般在:/usr/share
可执行文件:/usr/bin
配置文件:/etc
lib文件:/usr/lib

如果软件包装不上:
1、网络通不通
2、更新软件源

如果在安装软件的时候出现depends .....

1. sudo apt-get update 更新索引
2. sudo apt-get -f install 更新依赖
3. 重新安装软件

-- 常用的底层目录以及文件
软件源存放文件: /etc/apt/source.list
软件包的索引路径: /var/lib/apt/lists
下载软件deb包路径 : /var/cache/apt/archives

 

8打包和压缩
(1)gzip / gunzip   + file
(2)bzip2 / bunzip2  + file
(3)xz / unxz     + file (对大文件的压缩效果比较明显)

gzip 1.c

gunzip bunzip2 unxz 对文件解压
意:只针对文件操作 《注意:只能对文件操作,不能对目录操作》

tar : 对目录打包 ===>linux格式:gz bz2 xz
c 创建 (压缩)
x 释放 (解压)
z gz格式
j bz2格式
J xz格式
v 显示过程
f 指定文件名

注意:这些参数都可以组合在一起使用,f必须在最后面
------------------------------------------
tar -cvf dir.tar.?   dir 对任意格式进行打包
===> tar -cvf filename.tar.xz filename
tar -czvf dir.tar.gz  dir
tar -cjvf dir.tar.bz2  dir
tar -cJvf dir.tar.xz  dir

----------------------------------------
tar -xvf dir.tar.* (对所有格式都可以解压)
===> tar -xvf filename.tar.xz
tar -xvf dir.tar
tar -xzvf dir.tar.gz
tar -xjvf dir.tar.bz2
tar -xJvf dir.tar.xz
------------------------------------------

 

posted @ 2019-07-10 22:05  灰机12321  阅读(227)  评论(0编辑  收藏  举报