• 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
    ------------------------------------------

  • 相关阅读:
    使用python向Redis批量导入数据
    SkinSharp用法
    java设计模式演示样例
    [LeetCode] Search for a Range [34]
    Java 实现组合(Composite)模式
    机房收费系统重构中的一些感受
    qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果
    Windows下FFmpeg高速入门
    C# DataTable的詳細使用方法
    NGUI 3.5教程(六)Font字体
  • 原文地址:https://www.cnblogs.com/huiji12321/p/11166893.html
Copyright © 2020-2023  润新知