linux c 语言1-2 周笔记

来源:互联网 发布:js捷豹f-pace试驾视频 编辑:程序博客网 时间:2024/05/22 17:30

7.23.

1)cpu的存储器是寄存器(直接访问)

2)在app和os之间是system calls(系统调用)

3)关机:init 0;重启:init 6或reboot

7.24

      1)“cd /” :进入根目录;“.”当前目录;“..”上一级目录;

2)绝对路径:从根目录开始的路径成为绝对路径;

      相对路径:从一般路径开始的路径成为相对路径

3)创建文件夹:mkdir a;创建文件:touch a;

4)删除文件夹:rmdir a(a必须为空)

rm -rf 强制删除;rm -r 删除文件夹;

5)复制:"cp src des"       eg:“cp -R src des” (-R表示递归复制文件夹里边的文件);

     6) 移动文件:“mv”;说明:在同一文件下移动是更名,在不同文件下是移动;

7) cat 查看文件内容       “cat /etc/passwd”

1、"head  /etc/passwd" : 查看passwd文件前10行;

      "head -5 /etc/passwd" : 查看passwd文件前5行;

2、"tail  /etc/passwd" :查看文件最后10行;

      "tail -5 /etc/passwd" : 查看文件最后5行;

3、"more /etc/passwd" 和"less /etc/passwd" : 分屏显示、空格或回车翻页;

8)用户信息(分七段):cat  /etc/passwd

一 二 三  

用户名 :密码:UID:GID:备注:用户工作目录:shell

显示密码信息:"cat  /etc/shadow"


显示组信息(分四段):"cat /etc/group"

    一    三         四

用户名:密码:GID:各个用户

9)添加用户ws:"useradd ws"; 添加ws用户的密码: "passwd ws";

      更改用户信息:"usermod"

"usermod -c "this is my first user " ws":更改用户ws的备注;

7.25

1)su - ws 切换用户(同时切换其工作路径)

     su  ws    切换用户(不切换其工作路径)

"echo $USER" 显示当前用户名;

"exit" 退出用户;

2)ls -l  长格式中首字符的意义:

d开头:文件夹; -开头:普通文件

c开头:字符设备b开头:块设备

l开头:链接文件s开头:socket文件

  p开头:pipe文件

3)文件用户权限

U 用户G 组成员O 其他人

r w x r w xr w x

0-70-70-7

修改文件权限:"chmod a(U/G/O)  +/-  x/r/w  文件名"

"chown ws c": 修改文件拥有者

"chgrp ws c":修改文件组

4)压缩与打包

1、"gzip -c/d/t/# 文件名"    文件名.gz (-d为解压缩参数)

查看压缩文件:"zcat 文件名.gz"

2)"bzip2 -c/d/t/# 文件名"   文件名.bz2

3)  打包:"tar [-cxtzjvfp PN]  文件与目录"

参数:-c:建立一个压缩文件的参数命令

   -x:解开一个压缩文件

   -t:查看文件

(以上三个只能存在一个)

   -z:用gzip压缩

   -j:用bzip2压缩

   -v:压缩的过程中显示文件

   -f:使用文件,在f之后立即接文件名,不再加其他参数

7.26

1)概念:磁道:硬盘转一圈出来的圆就是所谓的磁道(Track)

      磁柱:硬盘上面相同半径的磁道组成了磁柱

      扇区:由圆心向外划直线,可将磁道再细分为一个个扇区(sector),扇区是硬盘上最小存储物理量,一个sector约为512Bytes

      临道:第一个磁道;临扇:第一个扇区

2)fdisk -l 查看磁盘分区情况

mkfs -t ext3(磁盘格式) /dev/sda5   格式化磁盘sda5

mount -t ext3 /dev/sda   /mnt将mnt文件夹挂载到sda5

umount /mnt   卸载mnt


变量:alias  mm="ls" : mm代替ls               

取消变量:unalias  mm      

grep "rpc"  /etc/passwd  :  显示带有rpc字符串的行

grep -v "rpc" /etc/passwd : 显示除rpc之外的所有行

grep -n "rpc" /etc/passwd : 显示带有rpc的行号

grep  "printf"  /usr/include -R  : 在include文件夹汇总查找包含printf的文件


ifconfig  查看网络IP配置信息     eg:ifconfig etho 192.2.1.1   设置IP地址

进程运行实例:

1、ps -aux  查看进程PID

2、pstree 查看进程之间关系树

3、top  任务管理器

4、cat &后台运行进程     [1](作业号)  6777(进程号)       一个作业包含多个进程

5、fg %l 作业号:将后台调到前台

6、jobs  查看后方作业

“ctrl  Z”  将正在运行的作业调到后台

“kill -9 进程号”  杀死进程 

3)1、自定义变量:name=ws

      2、自定义变量变为环境变量:export name    

       3、自定义变量只在当前进程中有效,环境变量在子进程中也有效,可继承;

4、取消自定义:unset name

7.29

1)所谓算法,为解决一个问题而采取的方法和步骤;

2)一个c程序应包括一下两方面:1、对程序所加工数据的描述;2、对数据操作方法的描述。

注:侧重于数据称为面向对象,侧重于操作方法称为面向过程。

3)负数补码:绝对值的原码取反加一

4)j=++i;   =>   i=i+1;j=i;

     j=i++;    =>   j=i;i=i+1;

7.30

1)printf中%p输出地址;

2)scanf返回值为正确输入数据的个数;

3)在逻辑表达式中,并不是所有的逻辑运算符都要被执行;eg:a&&b&&c

4)break跳出该循环;continue跳出本次循环,执行下次循环;

5)若用到数学库时,在gcc后加 -lm

6)数组:一组具有相同数据类型的数据的有序集合

7)int(*p)[3]   数组指针

     int *p[3]     指针数组

8.1

1)int main(int argc,ichar *argv[])

2)查看编译后预处理:

gcc -E a.c -o a.i      ; cat a.i

或     cpp a.c

3)值——结果参数(将形参值传递给实参)

{

int a,b;

swap(&a,&b);

}

swap(int *x,int *y)

{

*x=3;*y=5;

}

4)strtok字符串处理函数,strtok(char *str,const char *delim)

功能:分解字符串为一组标记串,str为要分解的字符串,delim为分隔符

注:首次调用时,str必须指向要分解的字符串,随后调用要把str设为NULL

5)宏定义

#define

用#undef命令终止宏定义的作用域

8.2

1)gcc test.c -D DEBUG

在编译时定义一个宏DEBUG

2)写头文件:

#ifndef MY_MATH_H_

#define MY_MATH_H_

函数声明;

类型声明;

宏定义;

#endif

3)typedef int a_t[20]

....

a_t a,b;

a,b是两个包含20个int型类型数据的变量

4)malloc函数(动态分配内存)

分配:p=(struct stu_info *)malloc(sizeof(struct stu_info));

清零:mamset(p,0,sizeof(struct stu_info));

释放:free(p);

p=NULL;