zoukankan      html  css  js  c++  java
  • linux 入门

    刘学勇  电子工业 2012年7月


    learn to Hack .... What do you think?

    2014-01-26  21:42:04  进程的学习真的很有趣啊。 我渐渐开始担心以后不会再爱温系统了。

    1,Asking for cache data failed

    打开终端输入:sudo rmmod ums_realtek
    或在/etc/rc.local里在exit 0前加入rmmod ums_realtek ,这样开机后不用再输入上面的命令。
    如果想再用读卡器,输入 sudo modprobe ums_realtek
     
    2,常用命令
    ls
    find
    cat
    grep  查找文件内容
    sort
    comm 读取2个文件输出三行:文件1出现的行,文件2出现的行,都出现的行
    diff
    cp  文件复制
    mv 移动文件
    wc 文件统计
     
     3,系统目录
    /bin   常用命令
    /boot 启动程序
    /dev 外部设备的端口
    /etc 最重要的目录之一, 系统管理配置文件
    /sbin 系统管理员的系统管理程序 ,root权限才能执行的命令
    /home 用户的主目录
    /lib 存放动态链接库
    /lost+found
    /mnt
    /media 即插即用在这个目录下创建
    /opt 自定义软件包
    /proc 系统运行时进行、内核信息
    /temp
    /usr linux占用硬盘最大的文件夹, 存放程序的目录
    /var 存放系统日志 
     
    4.目录操作命令
     
    mkdir 创建目录
    rmdir
    pwd 显示当前目录
    cd
    ln 链接文件
    chmod 改变文件权限
    chown 改变文件属主
     
    5,文件操作命令
    gzip  文件压缩
    tar  文件打包
    man  
    help
    whereis   查找文件在系统中的位置
     
    su  user  切换用户身份
    sudo 命令  以系统管理员身份运行
    shutdown
    halt
    reboot
     

     linux 下的 c 语言开发环境                                      

     
    linuxc 开发过程  编码、编译、链接、可执行文件
    编译器gcc (GNU C Compiler)   的四个步骤: 预处理、编译(产生汇编)、汇编(汇编作为输入,产生obj)、链接(可执行文件
     
    sudo apt-get  install build-essential 获取build-essential 软件包
     
    make 工具
    autoconf
     
     configure.in
    AC_INIT(file)
    程序选择测试
    检测库文件
    检测头文件
    检测typedef
    检测struct
    检测编译器特征
    检测库函数
    检测系统服务
    AC_OUTPUT(file...)
    autoscan 创建configure
    gdb 调试
     
     

                 linux 文件编 程                             
     
    最通用的文件系统是ext4
     
    每种文件系统存储数据的基本格式不一样。、
    文件系统四部分: 引导块,超级块,索引节点表,数据块
    引导块存放文件系统的引导程序, 超级块描述本文件系统管理的资源 , 索引节点表存储文件的控制信息 , 数据块是磁盘块
     
    文件类型 普通文件(文本文件、二进制文件) 目录文件  链接文件 设备文件(块设备、字符设备)  管道文件
    文件描述符 
    基本文件IO
    open 打开或创建一个文件
    close 关闭文件
    read 从文件中读取指定长度数据 到内存
    write 内存中数据写入文件
    create 进程新建一个文件 
          lseek 随机存取
     
    文件高级操作
    文件模式  
    umask
    chmod /fchmod
    chown/fchown
    rename
    truncate / ftruncate
    access 检查用户对一个文件的权限
    utime/utimes  访问时间、修改时间、特性修改时间
    stat/fstat /lstat
    dup/dup2 复制文件描述符
    fcntl 文件控制
     
    目录操作
    getwd 当前工作目录
    chdir /fchdir 重新指定 当前工作目录
    mkdir/rmdir 创建目录
    opendir /closedir
    readdir
     
    特殊文件
    mknod 建立其它类型文件
    mount / umount 挂接
    link
    symlink /readlink
     
     

                标准IO库        

     
     
    打开和关闭流
    fopen    freopen    fdopen
    fclose      fcloseall 
     
     
    读和写流
    无格式   
    字符fgetc/getc/getchar  fputc/puts/putchar  
    行fgets/gets fputs/puts  
    块fread/fwrite
     
    流文件定位
    ftell /fseek
    fgetpos/fsetpos
    文件结束和错误
    ferror    feof    clearerr
     
    采用缓冲的目的是降低使用IO的次数 
    流缓冲  全缓冲、行缓冲、无缓冲
    setvbuf  setbuf  setbuffer  setlinebuf
    fflush
    格式化IO
    printf  fprintf  sprintf
    scanf  fscanf   sscanf
     
    临时文件
    tmpnam  tempnam
     

               进程操作       

    进程基本状态  运行 就绪  等待
    每个进程用一个task_struct 表示  , 状态  调度信息 进程标志号 进程间通信机制
    进程识别号 getuid  getpid  geteuid  getepid  getppid  getpgrp
    进程调度  用户模式 系统模式
    进程控制
    进程创建  fork
    pid_t  fork();//单调用双返回 : 在父进程中 返回子进程的标识号 ,在子进程中 返回的是0
    子进程是父进程的一个复制,要分配新内存,只读代码段是共享的。fork后,父子一样都是从frok下一句开始执行,
    如果父进程在创建子进程前申请了共享内存段,则子进程共享该内存段操作。而局部变量/全局变量只在自己进程空间
    vfork  目的在于用exec执行另外的程序 , 子进程先运行父进程挂起。 这种变化是确定的, 与fork 不同。
     
    exec 有6种参数 格式但都对应一个入口
     fork函数将父进程的环境复制到新进程中, 没有新程序来初始化创建的子进程,不能执行一个新的目标程序 , 此时需要exec
     execl 和 execlp 可以换用,但execlp指定的目标文件名必须在某个路径名下面
     
     结束进程
    正常结束  return  exit  _exit
    异常终止  abort
    进程等待
    wait  waitpid
    system 函数
     
    进程的用户标识号
    getuid   geteuid  getgid  getegid  setuid  setgid 
    进程标识号
    getpid  getpgrp  getppid  setgrp 
     
     wait 会暂停进程的执行  直到有信号来或子进程结束 。 子进程的结束状态会由参数status 返回 。 如果执行成功返回PID错误返回-1
     
                    进程间通信  IPC              
     数据传输  共享数据   通知事件   资源共享  进程控制
    IPC 有多种方式    信号 与 管道
     
     
     
     kill -l 显示所有信号
     
     普通进程只能向相同 UID 和GID 的进程发送信号   信号产生后不是立即发送给进程,它必须等到进程再次运行才发送
    linux 使用堆栈 来管理 要执行的信号处理程序
     
    管道  是单向 FIFO 无结构 固定大小 的数据流。 
     
     
     
     
     
     
     
     
     
     
     
     

                线程操作                        

     
     

                   网络编程                               

     
     
     

                          数据库编程          

    mysql 命令
    mysql  -u rick  -pbar  foo
    mysqladmin  -u root -p status/version/password pass123
    mysqldump -u root -p testdb>test.bak
    mysqlimport
    mysqlshow -u root -p /testdb  /testdb children
    grant   / revoke
     
    MYSQL *mysql_real_connect
    mysql.h  没有个文件或目录
    缺少libmysqlclient-dev 
    sudo apt-get install libmysqlclient-dev
     
     
    段错误  越界 非法访问 
     
    u mysql_errno
    const cahr *mysql-error
     
    mysql_querry将一个指针指向一个连接结构
     
     
     

                              GTK + /GNOME编程

    www.gtk.org
    https://developer.gnome.org/
     
     反引号  `  是TAB旁边的那个。
     
    gtk_window_position is deprecated and should nto be used in newly-written code . use gtk_window_set_position instead.
     
     
     
     
  • 相关阅读:
    10,EasyNetQ-发布确认
    9,EasyNetQ-版本化消息
    一个小程序云开发的项目,图书借还系统
    利用canvas对图片进行切割
    微信小程序添加卡券到微信卡包,使用wx.addCard()方法传参及整体流程
    git合并时忽略某个文件
    小程序接入云通信IM
    小程序插件使用wx.createSelectorQuery()获取不到节点信息
    小程序插件开发流程及注意事项
    小米6使用charles抓包https
  • 原文地址:https://www.cnblogs.com/iamgoodman/p/3534419.html
Copyright © 2011-2022 走看看