unix类的ubuntu系统的一系列文化及基础指令
什么是虚拟机:
vm ware 和 oracle vm virtualbox 虚拟机中安装了unix系统,我们这个里面装了ubuntu(unix中的一种)
operator system(os 操作系统)
操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩展。mac(苹果系统) os(unix内核)
软件(Software): 程序发行版本
能够运行在计算机操作系统或者直接在计算机上运行的程序
程序(Program):
用计算机编程语言编写的代码 或者 编译好的代码
计算机编程语言:
机器语言 --> 汇编语言 --> 高级语言
常见的编程语言:C C++ JAVA Python C# .net pascal go objective-c swift lua php
javascript html5 css B D 易语言(中文编程语言S)
与操作系统进行交互:
1.命令
2.系统调用
3.图形界面
服务器都不有显示器,通过远程访问(只有终端输命令代码)
linux基本命令:
linux终端 类似于 windows下面的 cmd 控制台 能够识别命令 从而达到和计算机交互的目的
打开终端快捷键: ctrl+alt+t
命令基础:
cp -r a.txt day01/
cp -r -i cp -ri cp -ir 选项可以组合 顺序无关
cp src dest
1.我是谁:whoami
2.我在那:pwd (print working directory)
unix 下面只有一个盘 / 根目录 目录开始的位置
第一个/ 表示根目录
第二个/ 表示目录层级分隔符
3.我有什么内容:ls (list)
ls –r 就是逆序
ls –s 大写s
ls-t 按时间排序 -lt 全一点(近到远) -lrl(远到近)
ls –a 显示隐藏文件,隐藏文件以 . 开头
ls –l 详细显示文件信息大小为bit ls –lk 或 ls –lh 单位改变为k
例.drwxr-xr-x 2 zhizhen zhizhen 4096 11月 12 2020 桌面
第一个字符:文件类型
d 文件夹
- 普通文件
l 链接文件(桌面快捷键)
s socket文件
p 管道文件(数据发送)
c 字符设备文件
b 块设备文件
rwxr-xr-x 文件的用户权限
r read权限
w 写权限
x excute 可执行权限 如果是目录表示该目录可进入
- 表示没有此权限
三种权限代表三种人:
属主(拥有者),属组(同一组的用户) 其他人
2或3 代表文件的硬链接数
一个文件只有当硬链接数为0,其所在的磁盘上的文件才会被删除
否则只是-1
软链接(访问的快捷方式)
硬链接(访问文件的一个方式)
第一个用户名
第二个组名
4096为大小 ,目录4096表示目录结构大小为4096,不是只里面的内容大小
最后一个为 文件最后修改时间
直接看用户文件目录: ls ~ 或者 ls
-
我要去其他地方:cd+切换目录(change directoy)
相对路径: 相对当前目录
绝对路径: 从/ 根目录表示的路径. 表示当前所在的目录
… 表示当前所在的上一级目录
表示当前用户主目录 进入终端时默认位置: /home/用户名
回到主用户目录: cd ~ 或者 cd
返回之前所在的目录: cd -
5.创建文件夹:mkdir+文件名 (make directory)
mkdir –p day01/node
当你想要创建层级文件时,要在前面加-p,否则不能一次创建多层次的文件夹(在上层文件不存在时);
创建多个时,中间加空格即可;
创建多个序列文件夹:mkdir day0[0-9]
6.touch 创建文件 + x.txt(文件名后缀)
如果文件存在,则更新文件的最后修改时间
7.rmdir 只能删除空目录
8.rm remove 删除文件
rm -r 能够删除非空目录
rm -f 强制删除
rm -i 询问式删除
rm –r day0* (删除所有day0打头的文件)
rm –r day01-4
rm –r day0[a-b5-6]
注意!:用rm删除回收站无法找到!谨慎删除所以最好用-ri
9.移动,剪切 :mv+目录+目录(文件目录都想同)
可以把文件和目录移动到其它目录 也可以移动到当前目录改名
当移动时,目标目录有相同的名字则会失败
mv day03 ./桌面/day03/ day03作为 桌面/day03的子目录
mv day03 ./桌面/day03 day03作为 桌面的子目录
有无/影响文件所在位置)
mv -i +文件 如果有相同文件名会询问你是否覆盖
10.复制文件:cp –r 复制的文件夹目录 + 位置 (复制目录要-r 复制文件不用)
cp -r 复制文件夹
cp -i 询问是否覆盖
cp -f 强制执行
cp –ri 询问是否覆盖
cp –rf 强制执行
要安装软件 :sudo apt-get install xxx xxx是软件包名字
以树形显示结构:sudo apt-get install tree
sudo apt-get upgrade 更新软件
sudo apt-get update 更新软件源
sudo apt-get remove xxx 删除
11.安装软件包
sudo apt-get install xxx --安装 xxx 软件包
sudo apt-get upgrade --升级
sudo apt-get update --更新软件源
sudo apt-get remove xxx --卸载 xxx 软件包
13.虚拟机联网
(1)windows能联网
(2)虚拟机设置 设备–>网络–>桥接网卡 选择(windows下上网的网卡)
(3)虚拟机中 关闭网络 – 启用网络
unix下隐藏文件是以 . 开头
14.链接文件:
ln –s a.txt b.txt 给目标文件a创建一个链接文件b
如果 有-s选项 表示创建软链接
软链接: 快捷方式 文件中的内容只存储了目标文件的路径 但如果是打开或者显示 却是目标文件的内容
当目标文件消失之后 软件接文件失效
创建软件接 文件的链接数不变
目录也可以创建软链接
读写软链接 本质读写的是目标文件
硬链接: 访问目标文件的一种途径
每次删除文件本质上是硬链接数减1
当硬链接数为0时 数据才真正删除
15.显示:echo helloworld
输出:
>会一直覆盖
>> 追加
ls>>a.txt
输出重定向,将ls的内容输到a
17.清屏:clear 其实是隐藏到上面
18.查看文件内容:cat a.txt
more a.txt 一次只显示一屏幕, 回车往下一行, 空格一页 b返回上次操作
less 回车一行 q退
head a.txt head -5 a.txt 显示前面5行
tail -5 a.txt 显示最后5行(实用,可开两个终端实时监测最后的输入变化)
tail –f a.txt 实时显示末尾输入的内容 ctrl c 是退出
19.查找文件: find 目录 –name file
find ~ -name a.txt 会找出所有
find ~ -name “*.txt”
find ~ -name “???.txt” 表示前面有四个字母的txt文件
通配符
* 代表任意多个任意字符
? 代表一个任意字符
[a-z] 代表区间的一个字符
20.man grep 查阅手册 man xx
查找文件内容:
grep –n “svn” a.txt 查找并显示行号
grep –n “^hello” a.txt 只返回以hello为开头的
grep –n “hello$” a.txt 只返回以hello为结尾的
grep –n “hello.hello” a.txt 只返回以hello为两边的 .代表一个字符
.* 代表任意多个任意字符
? 匹配0或1次 grep –n hello? a.txt
* , 匹配一次
+ 1或者多次
{n,m} 次数区间 hello
(实用):
找出主用户目录下所有.c文件中 包含 #include< stdlib.h >
Find ~ -name “*.c” | xargs grep “#include< stdlib.h >”
21.管道
| 管道
前面命令的输出 作为 后面一个命令的输入
还有:ps,df,du,top,chmod,tar 等50个功能
vi/vim
标准C语言程序设计
写个c语言程序,输出Hello world!
Hello world! 世界上最伟大的程序
touch hello.c
gedit hello.c
编辑 并保存退出
#include
int main(){
printf(“Hello world!\n”);
return 0;
}
在终端上找到
gcc hello.c
gcc –e hello.c
如果没有语法错误,生成一个a.out的文件 可以执行x权限
运行 ./a.out 表示运行当前目录的a.out
二、C语言的基础数据类型
#头文件叫c语言预处理指令
#include<>从系统配置的目录下查找该头文件,没有则报错 “”从当前目录查找该头文件,无则去 系统配置的目录下查找
把stdio.h文件中的内容导入到当前的.c文件中 递归导入,所以会被修改
echo $? 返回返return的值
多行注释中不能再有多行注释
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”,-1)
printf(“%u”,-1) 42亿多 -1在计算机中 11111111 11111111 11111111 11111111
231+…+20=2^32-1
printf(“%d”,97)
printf(“%c”,97) c是转为字符串
“0” 48
“A” 65
“a” 97
± 26
%d 有符号10进制5261整数
%i 有符号10进制整数
%o 无符号8进制整数
%u 无符号10进制整数
%x 无符号的16进制数字,并以小写abcdef表示
%X 无符号的16进制数字,并以大写ABCDEF表示
%F/f 浮点数
%E/e 用科学表示格式的浮点数
%g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数
%c 单个字符
%s 字符串
-1 在计算机底层中二进制是固定的
-1 作为无符号整数时 4294967295
-1在计算机底层中是 11111111 11111111 11111111 11111111 (-1)
二进制:
原码 、 反码、 补码(计算机中保存数据都是用补码保存)
补码:
负数的补码 符号位不变 反码+1
用最高位来表示符号位 0表示正数 1表示负数
内存单位:
1byte字节 =8 bit(二进制位)
1k = 1024 bit
1MB = 1024 k 2^10
1GB = 1024MB
1T = 1024 GB
Char 1个字节 ,java2个
Short 2个字节
Int 4个字节
Long 4或者8个(考试最常见)
Longlong 8个
Float 4个
Double 8个
同为4字节,为什么unsigned int 0,42亿
Float ±3.1410^38
Double 1.7910^308
unix中的复制粘贴为Ctrl+insert,shift+insert
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
