侧边栏壁纸
    • 累计撰写 296 篇文章
    • 累计收到 520 条评论
    liunx系统创建并运行实战一个c程序及常用指令指导
    我的学记|刘航宇的博客

    liunx系统创建并运行实战一个c程序及常用指令指导

    刘航宇
    2021-03-14 / 2 评论 / 264 阅读 / 正在检测是否收录...

    {mtitle}liunx系统运行实战一个c程序{/mtitle}

    学习liunx系统有利于嵌入式、云服务器等学习。
    下面我们实战创建并运行一个三角图形c程序
    首先 su rooot 进入超级管理员模式
    如果你没有超级管理员账号,想搞一个可以看本站嵌入式其他帖子创建永久超级管理员账号办法,或者按课本上代码临时进入root模式
    然后输入 ls 指令查看目录
    然后输入 cd 你选的目录名
    创建c程序
    vim test.c
    键盘“a”键可以直接进入编辑模式
    输入代码例如:

    #include <stdio.h>
    int main()
    {
    
    int i,j,n;
    printf("input ranks n\n");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        for(j=0;j<n-i-1;j++)
            printf(" ");
        for(j=0;j<=i;j++)
            printf("*");
        printf("\n");
    }
    return 0;
    }

    或者更换

    for(i=0;i<n;i++)
        {
            for(j=0;j<n-i-1;j++)
                printf(" ");
            for(j=n-i-1;j<n;j++)
                printf("*");
            printf("\n");
        }

    输入完C代码后,记得“ESC”键切换,输入“:wq”保存退出
    然后gcc test.c
    打完gcc test.c编译完C源文件。然后就可以看见a.out的文件。一般linux系统就默认为a.out为编译完的文件。现在运行a.out文件。在a.out文件的目录下打开终端并输入 ./a.out 就是运行文件了。
    示例图解:

    对于回文数可以参考下面代码,我们不妨先取倒序,将本数先输出,再输出倒序数则生成回文数。要让计算的结果倒序输出.现总结一下思路:
    1.如果要把一个数倒序输出,即对10求模,可以得到尾数;
    2.然后将这个数除以10;这样个位就被舍去;然后如此循环即可
    3.直到求模结果为0;证明这个数已经求到个位;

    #include <stdio.h>
    int main()
    {
        int h;
     printf("Enter the number\n");
        scanf("%d",&h);
        if(h==0)
        {
            printf("%d",h);
        }
     printf("%d",h);
        while(h>0)
        {
            printf("%d",h%10);
            h=h/10;
        }
        return 0;
    }
    

    参考图例:
    回文数

    {mtitle}Linux基本命令{/mtitle}
    uname -a 查看内核版本
    ls -al 显示所有文件的属性
    pwd 显示当前路径
    cd - 返回上一次目录 cd ~ 返回主目录
    date s 设置时间、日期
    cal 显示日历 cal 2006
    bc 计算器具
    man & info 帮助手册
    locale 显示当前字体 locale -a 所有可用字体 /etc/sysconfig/i18n设置文件
    LANG=en 使用英文字体
    sync 将数据同步写入硬盘
    shutdonw -h now & half & poweroff 关机
    reboot 重启
    startx & init 5 进入图形介面
    /work & ?work 向上、下查找文档内容
    chgrp 改变档案群组 chgrp testing install.log
    chown 改变所属人 chown root:root install.log
    chmod 改变属性 chmod 777 install.log read=4 write=2 execute=1
    cp 复制 cp filename
    rm 删除文件 rm -rf filename 强制删除文件
    rmdir 删除文件夹
    mv 移动 mv 123.txt 222.txt 重命名
    mkdir 创建文件夹
    touch 创建文件 更新当前时间
    cat 由第一行开始显示 cat |more 分页
    nl 在内容前加行号
    more & less 一面一面翻动
    head -n filename 显示第N行内容
    tail -n filename 显示后N行内容
    od 显示非纯文档
    df -h 显示分区空间
    du 显示目录或文件的大小
    fdisk 分区设置 fdisk -l /dev/hda 显示硬盘分区状态
    mkfs 建立各种文件系统 mkfs -t ext3 /dev/ram15
    fsck 检查和修复LINUX档案
    ln 硬链接 ln -s 软件链接
    whereis 查找命令
    locate 查找
    find 查找 find / -name "."
    which 查看工具
    whoami 显示当前用户
    gcc -v 查看GCC版本
    chattr +i filename 禁止删除 chattr -i filename 取消禁止
    lsattr 显示隐藏档属性
    updatedb 更新资料库
    mke2fs 格式化 mkfs -t ext3
    dd if=/etc/passwd of=/tmp/passwd.bak 备份
    mount 列出系统所有的分区
    mount -t iso9660 /dev/cdrom /mnt/cdrom 挂载光盘
    mount -t vfat /dev/fd0 /mnt/floppy 挂载软盘
    mount -t vfat -o iocharset=utf8,umask=000 /dev/hda2 /mnt/hda2 挂载fat32分区
    mount -t ntfs -o nls=utf8,umask=000 /dev/hda3 /mnt/hda3 挂载ntfs分区
    umount /mnt/hda3 缷载
    ifconfig 显示或设置网络设备
    service network restart 重启网卡
    ifdown eth0 关闭网卡
    ifup eth0 开启网卡
    clear 清屏
    history 历史记录 !55 执行第55个指令
    stty 设置终端 stty -a
    fdisk /mbr 删除GRUB
    at 僅進行一次的工作排程
    crontab 循環執行的例行性命令 [e]编辑,[l]显示,[r]删除任务
    & 后台运行程序 tar -zxvf 123.tar.gz & --------->后台运行
    jobs 观看后台暂停的程序 jobs -l
    fg 将后台程序调到前台 fg n ------>n是数字,可以指定进行那个程序
    bg 让工作在后台运行
    kill 结束进程 kill -9 PID [9]强制结束,[15]正常结束,[l]列出可用的kill信号
    ps aux 查看后台程序
    top 查看后台程序 top -d 2 每两秒更新一次 top -d 2 -p10604 观看某个PID
    top -b -n 2 > /tmp/top.txt ----->將 top 的資訊進行 2 次,然後將結果輸出到 /tmp/top.txt
    pstree 以树状图显示程序 [A]以 ASCII 來連接, [u]列出PID, [p]列出帐号
    killall 要刪除某個服務 killall -9 httpd
    free 显示内存状态 free -m -------->以M为单位显示
    uptime 显示目前系统开机时间
    netstat 显示网络状态 netstat -tulnp------>找出目前系統上已在監聽的網路連線及其 PID
    dmesg 显示开机信息 demsg | more
    nice 设置优先权 nice -n -5 vi & ----->用 root 給一個 nice 植為 -5 ,用於執行 vi
    renice 调整已存在优先权
    runlevel 显示目前的runlevel
    depmod 分析可载入模块的相依性
    lsmod 显示已载入系统的模块
    modinfo 显示kernel模块的信息
    insmod 载入模块
    modprobe 自动处理可载入模块
    rmmod 删除模块
    chkconfig 检查,设置系统的各种服务 chkconfig --list ----->列出各项服务状态
    ntsysv 设置系统的各种服务
    cpio 备份文件

    压缩命令:
    *.Z compress 程式壓縮的檔案;
    *.bz2 bzip2 程式壓縮的檔案;
    *.gz gzip 程式壓縮的檔案;
    *.tar tar 程式打包的資料,並沒有壓縮過;
    *.tar.gz tar 程式打包的檔案,其中並且經過 gzip 的壓縮
    compress filename 压缩文件 加[-d]解压 uncompress
    gzip filename 压缩 加[-d]解压 zcat 123.gz 查看压缩文件内容
    bzip2 -z filename 压缩 加[-d]解压 bzcat filename.bz2 查看压缩文件内容
    tar -cvf /home/123.tar /etc 打包,不压缩
    tar -xvf 123.tar 解开包
    tar -zxvf /home/123.tar.gz 以gzip解压
    tar -jxvf /home/123.tar.bz2 以bzip2解压
    tar -ztvf /tmp/etc.tar.gz 查看tar内容
    cpio -covB > [file|device] 份份
    cpio -icduv < [file|device] 还原
    深圳-广州-郑州-长沙嵌入式系统实训,凡通过本帖添加咨询报名学习可免费赠送学习现金卷及学习资料一份。详情联系郭老师QQ754634522
    vi一般用法
    一般模式 编辑模式 指令模式
    h 左 a,i,r,o,A,I,R,O :w 保存
    j 下 进入编辑模式 :w! 强制保存
    k 上 dd 删除光标当前行 :q! 不保存离开
    l 右 ndd 删除n行 :wq! 保存后离开
    0 移动到行首 yy 复制当前行 :e! 还原原始档
    $ 移动到行尾 nyy 复制n行 :w filename 另存为
    H 屏幕最上 p,P 粘贴 :set nu 设置行号
    M 屏幕中央 u 撤消 :set nonu 取消行号
    L 屏幕最下 [Ctrl]+r 重做上一个动作 ZZ 保存离开
    G 档案最后一行 [ctrl]+z 暂停退出 :set nohlsearch 永久地关闭高亮显示
    /work 向下搜索 :sp 同时打开两个文档
    ?work 向上搜索 [Ctrl]+w 两个文档设换
    gg 移动到档案第一行 :nohlsearch 暂时关闭高亮显示

    认识SHELL
    alias 显示当前所有的命令别名 alias lm="ls -al" 命令别名 unalias lm 取消命令别名
    type 类似which
    exprot 设置或显示环境变量
    exprot PATH="$PATH":/sbin 添加/sbin入PATH路径
    echo $PATH 显示PATH路径
    bash 进入子程序
    name=yang 设定变量
    unset name 取消变量
    echo $name 显示变量的内容
    myname="$name its me" & myname='$name its me' 单引号时$name失去变量内容

    2
    T分布及T分布表
    « 上一篇 2021-03-17
    VM虚拟机开机蓝屏,无限重启等,解决方案
    下一篇 » 2021-03-14

    评论 (2)

    取消
    1. 头像
      默默
      Windows 10 · Google Chrome

      点个赞

      回复
      1. 头像
        刘航宇 作者
        Android · Google Chrome
        @ 默默

        感谢你的支持

        回复