Linux及c高级

//非常简单,操作无脑
//内容非常多。 需要我们背的东西比较多。
day1 命令 Linux发展史
day2 shell脚本
day3 Makfile gcc gdb调试
day4 指针部分一个回顾 二级指针, 指针数组 数组指针
day5 动态内存分配 枚举 联合体
一、linux 历史及内核
1 linux 历史
GNU 自由软件联盟
GNU宗旨 开发出免费、开源的软件供大家使用
GNU的软件
open office
open ssh
huawei 移动、联通、samsung
linux 就是GNU 的会员,
GPL 协议,规定了GNU中的软件使用的权限
2 linux 内核
linux内核只有一份(android, redhat, ubuntu)
linux 官网 www.kernel.org
ubuntu 官网 www.ubuntu.com
linux 内核版本号
uname -a 查询linux内核版本号。 查看版本信息。
Linux ubuntu 3.2.0-29-generic-pae #46-Ubuntu SMP Fri Jul 27 17:25:43 UTC 2012 i686 i686 i386
GNU/Linux
3.12.8
3.13.10
1.02
2.6.4
内核版本号由三部分组成
3.12.8
3 主版本号(有重大更新才更改主版本号)
12 次版本号(更新比较快), 如果是偶数,表示是稳定版本,奇数表示是测试中的版本
8 末版本号
3 linux 版本
RedHat 服务器领域
ubuntu 个人电脑(桌面系统)
优点: 更新及时,每年出两个版本
4 linux特点
linux 多用户,多任务操作系统
允许创建多个用户
二、 Linux使用
1 桌面讲解
terminal 命令的。
linux@ubuntu:~$
linux 表示的是 用户名 @ ubuntu 表示的是 计算机名 : ~ 用户工作目录 $ 普通用户 /#超级用户
2 终端及命令
2.1 ls命令
功能: 列出当前目录的所有文件。
默认 ls 是 显示出家目录里面的所有文件 home === ~ (用户工作目录)
白色: 普通文件
蓝色:目录文件 (文件夹)
绿色: 可执行文件
红褐色:压缩文件
浅蓝色:链接文件
2.2 cd命令
功能: 进入到某个目录文件下。

cd / (进入根目录) /叫根目录。根目录下的这些文件 我们知不知道都叫啥。
ls 显示根目录下的所有文件。
clear 清除的意思。
bin 二进制的文件都存这里,(可执行文件)
boot 里面存引导程序 或者说是启动程序 bios
dev 主要存设备文件
etc 存放配置文件,
lib 库 库文件。
mnt 挂载文件
opt 第三方软件的安装路径
proc 存内核的相关信息
home 存用户创建的文件夹
root 超级用户存在文件夹的地方

cd bin
ls (显示的是bin目录下面的所有文件)
cd … (进入上一级目录)
cd ~ 表示进入用户工作目录
cd
[cd小练习]
cd Pictures (cd ~ linux文件区分大小写)
ls
cd /
ls
cd /bin
ls
cd ~
ls
.表示的是 当前目录
各种cd命令用法总结
cd / 进入根目录
cd ~ 表示进入用户工作目录
cd … 表示计入上一级目录
cd /bin 表示进入/ 下面的bin 目录
cd /home/linux/Music
linux中路径分割符 ‘/’ 山里有座庙庙里有老和尚老和尚在给小和尚讲故事
相对路径:从当前路径出发的
绝对路径:从根目录出发的,
cd - //表示进入上一次进入的那个目录
2.3 pwd (防迷路命令)
我想看 当前路径在哪 pwd
2.4 linux下的快捷键
上下键 能调出历史命令
tab键 能补齐文件名 或者 补齐命令
2.5 帮助查看
man ls //查看ls命令的帮助信息
info ls //查看ls命令的帮助信息
ls --help
man 1 一般命令。这个部分中的命令通常不需要超级用户(即管理员)特权。ls、
cat 和 passwd 放在这里,还有 shell。例如,请试试 man bash。
man 2 用来访问 UNIX 内核提供的服务的系统调用或函数。例如 fork 系统,它
从一个现有的进程生成一个新进程。输入 man fork 显示它的手册页。使
用系统软件的程序员常常参考这个部分。
man 3 C 库函数。许多软件包提供功能丰富的代码库,让开发人员可以创建新软件
man 还可以查看某些函数的帮助信息
man 3 rand
man 3 printf
man -f printf
2.6 touch命令
功能: 创建一个 文本文件(可编辑的)
touch a.txt 创建一个
touch a.txt b.txt c.txt d.txt 创建多个
2.7 mv 命令 remove缩写
1)重命名
a.txt aa.txt
mv a.txt aa.txt
把 a.txt 改名为 aa.txt
2)剪切
Desktop
b.txt 存到 Desktop下怎么办
mv b.txt Desktop
把 b.txt 移动到 Desktop目录下。
2.8 mkdir命令
功能: 创建文件 创建目录
mkdir abcd
mkdir abcd dcba abcde
文件夹 是用来打开的。
但是有些目录普通用户没有操作权限(不可以在里面创建文件,创建文件夹)
练习1
1 在当前用户工作目录(~ 或 /home/linux)创建a.txt
touch a.txt
或者
touch ~/a.txt
cd /home/linux
touch a.txt
2 在/tmp目录创建 b.txt
touch /tmp/b.txt
或者
cd /tmp
touch b.txt
3 将a.txt重命名为 a.c
mv a.txt a.c
把 a.txt 重命名为 a.c
4 将a.c移动到 /tmp
mv a.c /tmp
5 查看 /tmp里面的所有文件
cd /tmp
ls
或者
ls /tmp
2.9 cp 命令 copy复制
cp 复制 拷贝
a.txt b.txt
cp a.txt b.txt
a.txt 拷贝一份 存到 abcd
cp a.txt abcd 把这个文本文件 拷贝到 abcd目录下。
2.10 rm 命令 remove 移动
rm 删除 删除某个文本文件 或者 删除某个文件夹
a.txt
rm a.txt
abcd 目录
rm -r abcd -r啥意思。表示递归的意思。 删除当前文件,以及当前文件下的所有子文件。
如果不加-r 能删除文件夹嘛。
练习2
1 在用户工作目录创建文件hello.c
touch hello.c
2 在用户工作目录创建目录source
mkdir source
3 将hello.c 拷贝到source目录中
cp hello.c source
4 将source目录拷贝到/tmp目录中
cp -r source /tmp
5 将用户工作目录的source目录删除
rm -r source
2.11 文本查看命令
cat 命令 查看命令
cat + 路径 我想要查看谁。
查看的内容 就显示到终端上。
cat /etc/passwd
cat hello.c
more (可以分页显示文本文件,不能向上翻页)
more /etc/passwd
more hello.c
less (分页显示文本文件,可以上下翻页)
head (查看文本文件的前n 行)
head /etc/passwd 默认显示前10行
head -5 /etc/passwd 查看/etc/passwd 文件前5行
tail (查看文本文件后几行)
tail /etc/passwd 默认显示后10行
tail -5 /etc/passwd
2.12 grep命令
//root 关键字 在文本文件里面有没有 root这个词。
grep + “我要查的关键词” + 我要去查的路径
//“root” 不是必须加 “ ”
grep “root”   /etc/passwd
关键字   指定文件
grep “localtime” /usr/include/*
*表示当前目录下的所有文件
指针 int p
scanf(“%d”,&); 24 &1
&取地址
& 按位与
练习:
在当前目录下的所有文件中找 rand 关键字
grep rand ./
当前目录下的所有文件
在/usr/include 的所有文件中找srand关键字
grep -r srand /usr/include/

2.13 ls命令详解
ls -a all 缩写
linux 下以.开头的文件是隐藏文件,默认看不到 以.开头的文件。
ls -a //a all的简写 , 表示查看所有文件
ls -l //显示文件的详细信息
-rw-rw-r-- 1 linux linux 19 Mar 12 19:49 aaaa
drwxrwxr-x 2 linux linux 4096 Mar 12 20:14 abcd
-普通文件
d目录文件
rw-rw-r-- 文件的访问权限
r可读
w可写
x可执行
rw- 第一表示的是 当前用户,用户所属者
rw- 第二个表示 用户所属组
r-- 其他用户
aaaa 表示当前文件的名称
2.14 chmod命令
修改, 文件的权限
chmod +x aaaa
给 aaaa增加可执行权限
rwx ====》 八进制的 4 2 1 如果说这个访问权限没有的话,当前位为0 r ===> 100 相当于数字4
w =====> 010 相当于数字2 x 001 相当于数字1

练习4:
生成a.out 可执行文件
更改文件权限为
rwxrw-r–
chmod 764 a.out
在更改文件权限为
rwxr-xr-x
chmod 755 a.out
3. linux下文本文件编辑
3.1 gedit (可视化的文本编辑器)
gedit + “你要打开的文件名”
gedit hello.c
ctrl + c 结束正在运行的程序
3.2 vi编辑器
linux 下默认会安装的一个编辑器 (unix, os x)
vi编辑器有三种工作模式
一般模式 、 编辑模式、 命令行模式
3.3 vi编辑器一般模式
一般模式下所有的按键都是功能键
编辑模式可以正常写代码 
命令行模式可以输入命令 wq, w a.c
vi hello.c 编辑hello.c文件
马上会进入一般模式 
一般模式下的功能键
4 回车 向下4行
dd 删除一行
dw 删除一个单词
d$ 删除到行尾
d0 删除到行首
u 撤销刚才的操作
0 到行首
$ 到行尾
3dd 删除3行 (d3d)
///
yy 复制一行
p 粘贴
3yy 复制3行
p 粘贴
u 撤销刚才的更改
如果只复制一部分代码
v 选择复制起始位置,
y 选择复制结束位置,
p粘贴
//
在一般模式下如何查找某个关键字
/printf 查找printf
i 进入编辑模式(底下命令行处变成INSERT)
esc 回到一般模式
3.4 命令行模式
q 直接退出
q! 强制退出 (不保存)
wq 保存并退出
ZZ 保存并退出
x 保存并退出 (相当于wq)
w a.c 另存为a.c
//
####替换#####
😒/e/MMMMMM ##将光标所在行第一个出现的e替换成MMMMM
😒/e/MMMMMM/g ##将光标所在行出现的所有e替换成MMMMM
:9,12s/e/MMMMM/g ##将9-12行出现的所有e替换成MMMMM
:9,$s/e/MMMMMM/g ##将9行到文本的最后一行全部替换成MMMMM
:%s/e/MMMMM/g ##将文本全篇出现的e,替换成MMMMM
#####代码缩进###
一般模式下输入 v
左下角出现 VISUAL
按上下键选中要整体移动的代码
shift + > ##向右移动一个tab距离
. ##重复执行上一次执行的指令
shift + < ##向左移动一个tab距离
############################################################
在命令行模式下输入
:13,20 >> ##相当于将13-20行的代码整体向右移动一个tab距离
:13,20 << ##相当于将13-20行的代码整体向左移动一个tab距离
//
e a.c 打开文件a.c
vsp 编辑两个文件
在两屏之间切换用ctrl + w
作业:
1 工作目录下创建目录shared及shared1
2 在shared1目录中创建9个子目录a1-a9
3 在a5中创建3个文件file1-file3
4 在shared目录中创建两个目录old和new
5 将shared目录更名为back
6 拷贝/usr/include/stdio.h 到old内
7 移动shared1目录到back目录内 删除a1-a4 a6-a9
8 将a5目录改名为front 并移动到new目录内

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值