Linux基础和C语言基础

操作系统:(Operator System, OS)
	操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩展
PC:
	windows         办公(打游戏、写小说、ps、电影)  
		windows xp  win10   win7  win8 vista win03  win98  dos
	unix/linux  (99%服务器)
		ubuntu  centos   salaris  rethat  debain  
		红旗  麒麟  
	mac os(unix内核)
	病毒(windows 系统的 bug)
		技术过关  
			版权号   刺激战场(不允许充值) 正规版权号
			windows系统闭源   收费
			unix内核   开源(代码公开)    全世界技术精英共同维护unix内核
移动端:
	Android (unix内核)
	IOS
	诺基亚  塞班  智能手机   微软  winphone
	华为鸿蒙  嵌入式(车载系统,智能家居)
	锤子

手机
	8G(内存)+256(硬盘)
	系统和程序运行时所用的内存 (数据掉电丢失)
电脑
	8G + 1T
	运行  --  硬盘上文件  load   内存
	独立显卡和集成显卡:
		独立显卡:  显存   3D独立显卡
	CPU:
		品牌+几代+ 1处理效率

软件(Software): 程序发行版本
能够运行在计算机操作系统或者直接在计算机上运行的程序

程序(Program):
用计算机编程语言编写的代码 或者 编译好的代码

计算机编程语言:
机器语言 --> 汇编语言 --> 高级语言
C C++ JAVA Python C# .net pascal go objective-c swift lua php
javascript html5 css B D 易语言(中文编程语言S)

C\C++\Python
进程、线程、网络、数据库、数据结构

操作系统(win10) – 软件(oracle vm virtualbox/vm ware) – 安装了unix系统(ubuntu)
双系统 一台电脑既安装windows操作系统 也安装 unix操作系统

与操作系统进行交互:
1.命令
2.系统调用
3.图形界面

基本上所有的服务器都不会有显示器(图形界面)
远程访问

linux基本命令

:
linux终端 类似于 windows下面的 cmd 控制台 能够识别命令 从而达到和计算机交互的目的
打开终端快捷键: ctrl+alt+t

命令基础:
command [选项] [参数]
cp -r a.txt day01/
cp -r -i cp -ri cp -ir 选项可以组合 顺序无关
cp src dest

1.whoami  我是谁
2.pwd     我在哪   print working directory
	windows下分盘  C D E F    D:\oldCode\workspace
	unix下    /         根目录   目录的开始位置  /home/ubuntu
	/home/ubuntu
	第一个/  表示 根目录
	第二个/  表示 目录层级分隔符 
3.ls    我有什么内容      list
	列出当前目录下面的文件 及 目录
	ls -a    显示隐藏文件
	ls -l    详细显示文件信息
	drwxr-xr-x  3 ubuntu ubuntu 4096 12月  5 14:15 桌面
	第一个字符  代表文件类型:
		d   文件夹
		-   普通文件
		l   链接文件(桌面的快捷方式)
		s   socket文件
		p   管道文件
		c   字符设备文件
		b   块文件文件
	rwxr-xr-x  文件的用户权限
		r   read表示用户拥有read权限
		w   write
		x   execute 可执行  如果是目标代表该目录可进入
		-   代表没有此权限
		三组权限代表三种"人"的权限:
			属主(拥有者)  属组(同一组的用户)  其他人
		unix多用户的操作系统
			一台服务器 每个人有自己账户
	3 数值  代表文件的硬链接数
		一个文件只有当硬链接数为0时,其所在磁盘上的文件才会被删除
		否则只是硬链接数-1
		软链接(访问的快捷方式)
		硬链接(访问文件的一个方式)
	ubuntu   用户名
	ubuntu   组名  
	4096     文件大小 目标大小为4096(目录结构大小 不是里面内容)
		ls -l
		ls -lk
		ls -lh   h  4k
	12月  5 14:15  文件最后修改时间
		ls -t  按时间排序显示
		ls -r  逆序显示
	桌面  文件名  目录名
	
	
4.cd     我要去其它地方  切换目录  change directory
	相对路径:   相对当前目录
	绝对路径:   从/ 根目录表示的路径
	
	.    表示当前所在的目录
	..   表示当前所在的上一级目录
		cd .. 返回上级目录
	~    当前用户主目录   进入终端时默认的位置
		/home/ubuntu
		cd ~     回到主用户目录
		cd       回到主用户目录
		一个用户对应一个用户主目录
	/   根目录
	-   cd -     返回之前所在的目录

5.mkdir   创建目录  make directory
	如果需要创建层级关系的目录 可以用  -p  选项 
	mkdir  parentdir/childdir   如果parentdir不存在则创建失败
	mkdir -p parentdir/childdir 一定能保证成功

6.touch   创建文件
	如果文件存在,则更新文件的最后修改时间

7.rmdir   只能删除空目录

8.rm      remove    删除文件
	rm  -r   能够删除非空目录
	rm  -f   force 强制删除
	rm  -i   询问式删除
	
	注意一下:用rm删除的文件找不回来的  谨慎
	
9.mv      移动  剪切  move   文件和目录都一样操作
	可以把文件和目录移动到其它目录   也可以移动到当前目录改名
	mv day04  day03
	
mv day03 ./桌面/day03/    day03作为 桌面/day03的子目录
mv day03 ./桌面/day03     day03作为 桌面的子目录
	mv -i    如果目标目录下有同名的文件  询问是否覆盖
	
10.cp     复制  copy
	cp -r   复制文件夹
	cp -i   询问是否覆盖
	cp -f   强制执行

	

路径

11.安装软件包
	sudo apt-get install xxx       --安装 xxx 软件包
	sudo apt-get upgrade           --升级
	sudo apt-get update            --更新软件源
	sudo apt-get remove  xxx       --卸载 xxx 软件包
	
12.tree  以树形结构显示目录内容
	
	
13.虚拟机联网
	(1)windows能联网
	(2)虚拟机设置  设备-->网络-->桥接网卡 选择(windows下上网的网卡)
	(3)虚拟机中 关闭网络 -- 启用网络
	
unix下隐藏文件是以  . 开头

14.链接文件
	ln [-s]  目标文件  链接文件           给目标文件创建一个链接文件
		如果 -s 选项  表示创建软链接文件 
	软链接:  快捷方式  文件中的内容只存储了目标文件的路径 但如果是打开或者显示 却是目标文件的内容
		当目标文件消失之后   软件接文件失效 
		创建软件接   文件的链接数不变
		目录也可以创建软链接
		读写软链接  本质读写的是目标文件
	硬链接:  访问目标文件的一种途径
		每次删除文件本质上是硬链接数减1
		当硬链接数为0时 数据才真正删除
		
		
15.echo  显示
	
16.输出重定向
	>       覆盖
	>>      追加

17.clear   清屏
18.cat     可以查看文件内容
	more  | less 
	more 显示一屏内容    Enter 向后翻一行  Space翻一屏   b向前翻一屏 q退出
	less 
	head   tail(非常实用)
	tail -f   可以实时监测文件末尾写入的内容  

19.find        查找文件
	find 目录 -name file    根据文件名查找     
		-size   -perm  -user
	find ~ -name a.txt
		通配符
		*    代表任意多个任意字符
		?    代表一个任意字符
		[a-z]  代表区间的一个字符
	find ~ -name "*.txt"
	find ~ -name "????.txt"
	
20.grep      查找文件内容
	grep -n  strcontent  文件名   在文件中查找内容  显示所在行及内容
	^    匹配开始行
	$    匹配结束行
	.    代表任意一个字符
	.*   星号表任意多个任意字符
	
非常实用:
	找出主用户目录下所有.c文件中 包含 #include <stlid.h> 的文件
find ~ -name "*.c" | xargs grep  "#include <stdlib.h>" 
	find ~ -name "*.c"  找出主用户目录下所有的.c文件
	查找.c文件中是否包含  #include <stlid.h> 代码 
	
21.管道
	|   管道 
	前面命令的输出  作为 后面一个命令的输入


22.man      unix下最强大的 手册
	man  ls  用法 描述 选项 参数   
	要退出查看   q

二、C语言的基础数据类型
char
short short int
int
long long int long long
float
double long double

unsigned  signed

1.C语言为什么要分数据类型?
数据的形式不一样
2.同为整数,为什么要分 short,int,long,long long类型?
	数值范围不一样
	为了节省内存  对整数进行了划分 
3.printf("%d\n",-1);
  printf("%u\n",-1);
  printf("%d\n",97);
  printf("%c\n",97);

-1  在计算机底层中二进制是固定的
"%d"  格式占符位   整数
"%u"  无符号整数
-1  作为无符号整数时   4294967295
-1在计算机底层中是  11111111 11111111 11111111 11111111   (-1)
	二进制:
		原码 、 反码、 补码(计算机中保存数据都是用补码保存!!!)
	补码:
		负数的补码   符号位不变  反码+1

	用最高位来表示符号位  0表示正数   1表示负数

11111111 11111111 11111111 11111111  %d  看作是有符号的数
	最高位是1表示负数  补码-1 ---> 反码
		11111111 11111111 11111111 11111111 -1 = 11111111 11111111 11111111 1111110
		符号位不变  其它位按位取反
		 11111111 11111111 11111111 11111110   = 100000...00001 (-1)
	
11111111 11111111 11111111 11111111  %u  看作是无符号的数
	是一个很大的正整数
	2^31 + 2^30 +   + 2^0 =  2^32 - 1
	 
printf("%c",97)  ---->  'a'   ascii码
	01100001    %d     看作一个整数      97
	01100001    %c     看作一个字符      'a'
	每一个字符都用对应的整数来表示和存储

ascii:
	'0'            48
	'A'            65
	'a'            97            

内存单位:
1byte(字节) = 8bit(比特 二进制位)
1k = 1024byte
1MB = 1024K 2^10
1024程序员日
1G = 1024MB
1T = 1024MB

一个二进制位: 0 和 1
8个二进制位: 不考虑负数 0000 0000 - 1111 1111

类型 字节大小
char unsigned char 1byte (java char 2byte)
short unsigned short 2byte
int unsigned int 4byte
long unsigned long 4byte or 8byte
long long 8byte
float 4byte
double 8byte

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值