linux下的c语言

1.文件系统结构

windows:是以分区的形式存储文件,分区在目录之上

linux:是以目录的形式储存文件,目录在分区之上

2.linux下一切皆文件

七大文件类型:

- 普通文件:(.txt ,.c  ,.cpp )

d 目录文件: (类似文件夹)

​p 管道文件:(用于进程之间通信)

​b 块设备文件:(dev)

​c 字符设备文件:()

​l链接文件:(硬链接,软链接)

​s 套接字:(应用于网络间通信)

3.ls的用法

ls -a    ----显示隐藏文件(.开头的)一些配置文件        
ls -l    ----显示文件详细信息
ls -R    ----显示文件夹里的内容,递归查询(迭代ls)
ls -i    ----查询文件的inode号 每个文件的inode号不一样,硬链接产生的文件inode号一样,是同一个文件,而复制粘贴的inode号不一样,是不同的文件

4.文件的详细信息

drwxr-xr-x 2 hqyj hqyj 4096 8月 4 2021 Desktop

d :文件类型

rwxr-xr-x :文件权限 读,写,执行。用户,组,其他 chmod改权限

2 :硬链接数

hqyj :用户名

hqyj :组名

4096 :文件大小

8月 4 2021 :最后修改的时间

Desktop :文件名

5.cd的用法

cd 路径 去到某个路径下

cd . 去到当前

cd ..去到上一级

cd 去到根目录

cd ~去到家目录(~等价于/home/用户名)

cd - 返回上一步

6.创建与删除

mkdir dirname(目录名)

rm -r dirname删除目录

rmdir dirname删除空目录

touch filename文件存在就更新时间戳,不存在就创建一个普通空文件😊

touch {1,2,3,4,5,6}.c 创建多个文件

vi filaname        利用vi编辑器床边文件并打开

rm filaname        删除文件

diff file1file2:比较两个文件内容是否相同,罗列出不同的行

cat filename 查询文件内容

mv file1 file2 重命名,把file1,重命名为file2

mv可移动文件夹,在当前文件夹移动等于重命名,移动到其他文件夹就是移动

7.vi编辑器

vi/vim filaname文件存在则打开,文件不存在则创建并打开

三种模式;

1.命令行模式:

                复制 nyy(n代表行数) ​

                粘贴 p ​

                剪切 ndd ​

                撤销 u ​

                反向撤销 ctrl r (撤销撤销) ​

                查找 /内容,n向下查找,N向上查找

                代码对齐 gg=G

                输入1G:文件开头

                输入G:文件结尾

2.插入模式(编辑模式):

                在命令行模式的基础上按i/a/o,进入插入模式,在任意模式的基础上按esc,进入命令行模式, A进入到当前行的末尾

3.底行模式:命令行模式下输入: 进入底行模式

w保存 q退出 wq保存并退出 q!强制退出 wq!强制保存并退出

w filename 另存为

替换:范围 s/str1/str2 将范围内的每一行的第一个str1替换str2💖💖💖 ​ :% s hello/HELLO/g :1,. s/hello/Hello/g

范围: .当前行 $表示末尾 %表示全文替换等价于1,$ g全部替换 (g用/加在最后)

设置行号:setnumber 取消行号:setnonumber

跳转到number行 :number

块剪切: :范围 y 块复制 eg:28,58y 复制28~56行

:范围 d         块剪切 粘贴要去命令行模式按p

8.cp的用法

cp    file1 file2 :把file1复制为file2(复制粘贴)

cp    文件的路径1    文件的路径2:复制路径1的文件到路径2

​        eg:cp first.c ../test.c    复制并重命名为text.c

cp    file    文件的路径:把file复制到路径下

cp -r/-a    dirname1:复制目录       

9.快捷键

创建终端:ctrl+shift+n(如已有终端,创建的终端路径与前终端相同)

ctrl+alt+t(创建一个终端)

结束终端:命令exit

切换终端:alt+tab

清屏:ctrl+l(命令 clear)

↑:向上查询历史输入命令

↓:向下查询历史输入命令

Tab:补全(不唯一时,按两次可以提示)

ctrl+c:结束进程

10.编译的4个阶段

1.预处理
                展开头文件与宏、删除注释
                gcc-E file.c -o    file.i(-o是重命名)
2.编译
                检查语法错误,生成汇编文件
                gcc -S file.i -o file.s
3.汇编
                生成二进制文件
                gcc -c file.s -o file.o
4.链接
                链接库    ,生成可执行文件
                gcc file.o -o file    

11.运算符

1.算术运算:
                        +    -    *    /    %    ++    --    (++在前先加后用,++在后先用后加)
                        =(赋值)    ==(值是否相等)    ===(全等,值与类型都等)+=    -=    *=    /=    

2.关系运算:>    <    >=    <=    ==    !=
                    c语言中有短路法则:当程序得到结果就不会往下执行了
                    eg:    a>b>c;不能这样写    (改:a>b&&b>c)


3.逻辑运算:    &&(逻辑与)同真为真    ||(逻辑或)同假为假0    !(逻辑反)


4.位运算符:    ~(位反)    &(位与)    |(位或)    ^(异或,相同为假,不同为真(生孩子符号,不同才为真))    >>:右移    <<:左移    移位之后补0    01100110>>2    00011001<<2    01100100


        负数先算补码,移位后再转换为原码,才能读值(负数移位符号位不变,xyz,x代表符号位,只移yz,)    补码=反码+1
        
        -23    :1001 0111    反码    11101000    补码    11101001        🙌🙌🙌
        <<3    1100 1000(补码)    
        >>3    1000 1101(补码)
        
 多个字节后 = 时,移位不会溢出负数移位,左移补0,右移补符号位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值