内容为学习笔记,以后学习中会随时增删所学内容
目录
快捷键及 操作命令
常用快捷键
ctrl c:取消命令,并且换行
ctrl u:清空本行命令
Ctrl + insert:windows/Linux下复制文本
Shift + insert:windows/Linux下粘贴文本
tab:可以补全命令和文件名,如果补全不了快速按两下tab键,可以显示备选选项
##常用命令
su - :切换到root权限,还可以用su root命令,su +用户名可以切换到任意用户
sudo +命令:命令的权限为root权限
ls: 列出当前目录下所有文件,蓝色的是文件夹,白色的是普通文件,绿色的是可执行文件
-l // 展示详细信息;
-h // 人性化的显示详细信息;
-a // 显示所有的文件(包括被隐藏的文件, 所有被隐藏的文件都是以.或..开头的);
–help // 显示此帮助信息并离开
ll // 等价于ls -la
cp XXX YYY: 将XXX文件复制成YYY,XXX和YYY可以是一个路径,比如…/dir_c/a.txt,表示上层目录下的dir_c文件夹下的文件a.txt
功能相当于复制 + 粘贴 + 重命名
Example:
cp a/tmp.txt b //复制a文件夹下的tmp.txt 到b文件夹
cp a/tmp.txt b/new_tmp.txt //复制a文件夹下的tmp.txt到文件夹b 并重命名)若复制文件夹后面加-r
cp a b -r //将目录a及下面的复制过到b目录下
目录切换cd(change directory)操作
相对路径:用"./“表示
绝对路径:从根目录开始到指定目录,用cd /表示
当前目录:用pwd(print working directory)确认当前目录在哪里,用”."表示
上级目录:用cd ..切换到上一目录
家目录:用cd ~"切回到家目录
上一个目录:用cd -在这里插入代码片"切回上一次的路径
文件查找命令
find命令
将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:
# find . -name "*.c" //支持通配符查找方式
# find 指定文件夹名 -name 文件名 //将当前目录及其子目录中的所有文件列出:
# find . -type f
grep命令
grep abc *file //命令用于查找文件里符合条件的字符串。在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:
grep -r update /etc/acpi //以递归的方式查找符合条件的文件,-r是递归的查找,-n列出行号,*代表所有的文件。
解压与压缩tar命令
tar常用选项:
-c:(create):表示闯将用来生成文件包,表示压缩
-x: 表示提取,从文件包中提取文件
-z:使用gzip方式进行处理,与"c"结合表示压缩,与x结合表示解压缩。
-j:使用bzip2方式进行处理,与x结合表示解压缩。
用gzip:
压缩:"tar czf 创建的压缩文件名(test.tar.gz) 指定压缩的文件"
解压:"tar xzf test.tar.gz"
用bzip:
压缩:"tar cjf 创建的压缩文件名(test.tar.gz2) 指定压缩的文件"
解压:"tar xjf test.tar.gz2"
文件管理
mkdir XXX: 创建目录XXX(-p递归创建目录)
rmdir XXX: //删除空文件夹
rm XXX //文件删除
Example:
rm tmp1.txt tmp2.txt //删除多个文件
rm *.txt //删除所在目录所有的txt文件
rm a/ //删除文件夹a里面所有的的东西
rm -r //删除文件夹,不管文件夹有没有文件
rm /* -rf删除所有文件 慎用!!!
mv XXX YYY:
//将XXX文件移动到YYY,和cp命令一样,XXX和YYY可以是一个路径;
//重命名也是用这个命令 (剪切+粘贴+重命名)
Example:
mv a/tmp.txt b/ (将a文件夹下的tmp.txt移动到b文件夹下)
mv b/tmp.txt a/new_tmp.txt (将b文件夹下的tmp.txt移到a文件夹下并重命名)
mv tmp2.txt new_tmp2.txt (重命名)
cat XXX: 展示文件XXX中的内容
linux文件属性

chown (change owner) : 修改所属用户与组。
chmod (change mode) : 修改用户的权限。
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
| 类型 | 对应单词 | 简写 |
|---|---|---|
| 用户 | user | u |
| 组 | group | g |
| 其他 | others | o |
| 全部 | all | a |
chmod增加和删除权限
使用符号+、-、=修改权限
//-rwxr-xr--
chmod u=rwx,g=rx,o=r 文件名
文件类型:
当为 d 则是目录
当为 - 则是文件
文件权限: 文件权限可以用字母代替也可以用对应数字代替
| 类型 | value |
|---|---|
| r: readable | 4 |
| w:writeable | 2 |
| x: executable(可执行的) | 1 |
例如
-rwxrwx--- 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
vi/vim命令
vi 编辑器有三种模式,各个模式侧重点不一样:
a) 一般模式(光标移动、复制、粘贴、删除)
b) 编辑模式(编辑文本)
c) 命令行模式(查找和替换)

| 退出命令 | 描述 |
|---|---|
| x | 保存当前文档并且退出。 |
| q | 退出。 |
| w | 保存文档 。 |
| q! | 退出 vi/vim,不保存文档。 |
一般模式
| 命令 | 描述 |
|---|---|
| h | 左 |
| j | 下 |
| k | 上 |
| l | 右 |
| nG 或 ngg | 光标移动到第 n 行首。 |
| n+ | 光标下移 n 行。 |
| n- | 光标上移n行 |
| Ctrl + f | 屏幕向下翻一页,相当于下页 |
| Ctrl + b | 屏幕向上翻一页,相当于上一页。 |
| ngg | 光标移至第 n 行的行首(n 为数字,想要跳转的行) |
| G | 转至文件结尾 |
内容编辑增删:
| 命令 | 描述 |
|---|---|
| o | 在当前光标所在行的下方,新建一行,并转为编辑模式。 |
| cc | 删除整行内容,不删除行。 |
| dd | 删除该行,不提供修改功能。 |
| ndd | 删除当前行向下 n 行。 |
| x | 删除光标所在的字符,在编辑模式下使用backspace删除。 |
| A | 在光标所在行的行尾,并转换为编辑模式。 |
| yy | 复制当前行,nyy 复制当前行及其下面 n -1行。 |
| p | 粘贴最近复制的内容。 |
| s | 删除光标所在字符。 |
| r | 替换光标处字符。 |
| u | 撤销上一步操作 |
替换查找
| 命令 | 描述 |
|---|---|
| :%s/p1/p2/g | 将文件中所有的 p1 均用 p2 替换 |
| %s/p1/p2/gc | 替换时需要确认 |
| “s“ | 全称:substitute 替换; |
| “g“ | 全称:global 全局; |
| “c“ | 全称:confirm,确认 |
| /搜索内容 | 从光标开始处向文件尾搜索 |
gcc编译器
编译工作的4步骤:
预处理 --> 编译 --> 汇编 --> 链接,完成就可以得到可执行文件
预处理:gcc -E .c源文件 -o 目标.i
编译: gcc -S 目标.i -o 目标.s
汇编: gcc -c 目标.s -o 目标.o
链接: gcc 目标.o -o 目标(可执行文件)
执行可执行文件 ./可执行文件
执行一步生成:gcc 源文件,默认得到可执行文件为 a.out,gcc -o 源文件····也可以生成可执行文件
计算机基本结构
基本结构:处理器、存储器、输入设备和输出设备
外存:位于电脑上,例如磁盘,U盘等。存CPU上暂时不使用的数据或程序
内存:运行内存,放在CPU正在使用的程序和数据,掉电数据丢失
寄存器:位于CPU内,是一个存和取速度很快的一个存储器,容量小,用于存储正在使用过的程序和数据
程序:计算机系统可识别的一组二进制可执行文件
数值数据
| 进制 | 表示方法 | 举例 |
|---|---|---|
| 二进制 | b | b0100 0000 |
| 八进制 | 0 | 057 |
| 十进制 | 无 | 9 |
| 十六进制 | 用0x或0X | 0x54 0X3f |
进制数之间的转换
二进制和十进制转换
b
1010
=
1
×
2
3
+
0
×
2
2
+
1
×
2
1
+
0
×
2
0
(①)
\tag{①} b1010 ={1}\times{2}^{3} +0\times2^{2}+1\times2^{1}+0\times2^{0}\
b1010=1×23+0×22+1×21+0×20 (①)
八进制和十进制转换
01010
=
1
×
8
3
+
0
×
8
2
+
1
×
8
1
+
0
×
8
0
(②)
\tag{②} 01010 ={1}\times{8}^{3} +0\times8^{2}+1\times8^{1}+0\times8^{0}\
01010=1×83+0×82+1×81+0×80 (②)
十六进制和十进制转换
0
x
1010
=
1
×
16
3
+
0
×
1
6
2
+
1
×
1
6
1
+
0
×
1
6
0
(③)
\tag{③} 0x1010 ={1}\times{16}^{3} +0\times16^{2}+1\times16^{1}+0\times16^{0}\
0x1010=1×163+0×162+1×161+0×160 (③)
十进制转其他进制用短除法
二进制与八进制之间转换
0752
=
b
111
101
010
(④)
\tag{④} 0752 = {b111 \ 101\ 010}\
0752=b111 101 010 (④)
b 001 111 100 = 0174 (⑤) \tag{⑤} {b001 \ 111\ 100} = {0174}\ b001 111 100=0174 (⑤)
二进制与八进制之间转换
0
x
a
7
e
2
=
b
1010
0111
1110
0010
(⑥)
\tag{⑥} 0xa7e2 = {b1010 \ 0111\ 1110\ 0010}\
0xa7e2=b1010 0111 1110 0010 (⑥)
0 x a 7 e 2 = b 0011 1101 1010 0010 = 0 x 3 d a 2 (⑦) \tag{⑦} 0xa7e2 = {b0011 \ 1101\ 1010\ 0010}={0x3da2} 0xa7e2=b0011 1101 1010 0010=0x3da2(⑦)
常见的字符转成对应的ASCII码值来表示
| 字符 | 对应ASCII |
|---|---|
| ‘\0’ | 0 |
| ‘0’~‘9’ | 48 依次加1 |
| ‘A’ ~ ‘Z’ | 65 依次加1 |
| ‘a’ ~ ’z’ | 97 依次加1 |
关键字–>数据类型
表示数据类型的关键字:char、 double、 enum、float、int、 long、short、 shruct、 union、 void
表示控制语句的关键字 :break、 case、 continue、 default、 do、 else、 for、goto、 if、 switch、 while
表示数据类型的关键字:auto、 extern(外部变量)、 register、 static、
其他关键字:
const修饰词
return – 结束函数
volatile – 防止编译器优化
typedef – 对已经存在的数据类型惊醒重命名
signed/unsigned – 有无符号
unsigned/signed对应的二进制数计算
1)有符号数:
有符号数 char类型 “1” 在内存中的存储: 0000 0001
有符号数 char类型 “-1” 在内存中的存储:
原码、反码、补码,并且有符号数的最高字节的最高位标识符符号位,0表示正数,1表示负数,负数在内存中以补码的形式存储
什么是补码? 补码 = 反码 +1
什么是反码? 反码 = 原码取反
-1 :原码1000 0001
反码1111 1110
补码1111 1111
-5:原码:1000 0101
反码:1111 1010
补码:1111 1011
2)无符号数:
该怎么存就怎么存
取值范围:
signed char:1000 000 ~ 0111 1111
unsigned char: 0~1111 1111 0~255
练习:
signed int : -231~231-1
unsigned int:0~2^32
signed short: -215~215-1
unsigned short: 0~2^16-1
signed long: -263~263-1
unsgned long: 0-2^64-1
浮点型数据,整数部分和小数部分
float 单精度 占4字节 小数点后面默认有6位:只能用约等于好进行判断,不能用等号判断
double 双精度 占8字节 小数点后面默认有6位
常量
常数:值不可以修改
变量:值可以修改
常量分类
整型常量:
字符型常量:‘a’
长整型常量:78L
无符号整形常量:78U
字符串常量:“aaa” ------用双引号括起来,是字符串常量,字符串后面面添加‘\0’
宏定义
#define PI 3.1415927
预处理就是对宏进行替换
#defineAD(x,y) x+y //宏函数定义
宏函数在定义时要给他的每一个表达式以及整个表达式都要加括号,因为在使用是他只是做简单的替换工作
2458

被折叠的 条评论
为什么被折叠?



