linux系统:主要用于嵌入式开发
服务器系统
开源免费,安卓系统的底层也是用的linux
linux有很多发行版本:
ubuntu redhat debian
linux中的常用命令
==================
linux中的命令统称shell命令
shell终端:我们平时输入命令,执行程序的那个窗口
gec@ubuntu:/bin$
root@ubuntu:/etc#
gec@ubuntu:~$
~ --》当前用户的家目录,等价于 /home/gec
gec --》当前用户的名字
root --》超级用户的名字,安卓手机刷机的时候一键root
@ --》分隔用户名和系统名
ubuntu --》操作系统的名字
/bin --》指示你当前所处的位置路径
$ --》当前用户是个普通用户
# --》当前用户是个超级用户
1. 新建或者打开文件
vim 文件名
复制: yy 复制光标所在一行
nyy 复制n行 6yy 复制6行
粘贴: p
剪切: dd 剪切一行
ndd 剪切n行
跳转: GG 直接跳到最后一行
gg 直接跳到第一行
ngg 跳到第n行 88gg跳到第88行
撤销: u 还原 ctrl+r
替换字符:
:%s/旧的字符串/新的字符串 //默认只替换每一行第一个旧字符串
:%s/旧的字符串/新的字符串/g //替换所有的旧字符串
:m,ns/旧字符串/新字符串 替换m到n行的旧字符串
比如 :2,10s/hello/world/g 把2到10行替换
搜索关键词:
输入 /关键词 然后回车
输入n不断地往后寻找
touch 文件名 //只能新建文件
gedit 文件名
2. 删除文件或者文件夹
rm 文件名
rm 文件夹名字 -rf (r表示递归,f表示强制)
3. 新建文件夹
mkdir 目录名
4. 切换目录
cd 目录的名字
cd .. 返回上一级目录
cd - 返回上一次进入的目录
linux中路径的写法,跟windows的区别
linux的根目录 /
bin etc lib32 media root srv var
boot home lib64 mnt run sys vmlinuz
cdrom initrd.img libx32 opt sbin tmp
dev lib lost+found proc snap usr
bin --》binary 存放系统中所有的二级制程序或者命令
存放系统可执行程序或者shell命令环境变量
环境变量: 狭义的理解 指的就是系统中规定的默认路径
环境变量可以自己设置
etc --》系统中的配置文件
/etc/bash.bashrc 文件 shell终端的配置文件(当我们打开shell终端的时候,该文件会被自动执行)
lib32和lib64 --》存放系统中的库文件
home --》家目录
mnt --》linux和window的共享默认就在这个路径下
dev --》专门存放系统的驱动
绝对路径:不偷懒,永远都不会出错的写法,完整的路径写法(从根目录开始)
相对路径:偷懒,根据所处的位置去写路径名
5. ls命令
ls -al //列表的形式列举所有文件,包括隐藏文件
linux中所有的隐藏文件都是小数点开头
其中: .和..要注意
. (一个小数点) 表示当前路径
.. (俩个小数点) 表示上一级路径
利用这个特点自己新建隐藏的文件或者目录
touch .1.txt
mkdir .newdir
ls -l //列表的形式列举文件,不包括隐藏文件
-rwxrwxrwx 1 root root 67 Feb 23 19:23 hello.c
linux中有七种类型的文件:
目录: d
普通文件:-
字符设备:c //学习后面的驱动
块设备:b //学习后面的驱动
套接字:s //学习网络编程
软链接文件: l
管道文件: p //学习系统编程
第一个字符: d --》目录
- --》普通文件
第二个开始的字符: 表示可读,可写,可执行的权限
分为三组:分别表示当前用户,同组用户,其它用户对于这个文件的操作权限
r --》可读 w --》可写 x --》可执行
6. echo命令
在屏幕上输出数据
echo "hello"
echo 567
7. 切换超级用户
用途: 当你想要修改根目录下的文件夹里面的内容
临时借用超级用户的权限
sudo 命令的完整写法
sudo vim hello.c //临时借用超级用户的权限创建hello.c
sudo rm hello.c //临时借用超级用户的权限删除hello.c
永久切换超级用户
sudo -s
切换回普通用户
su 普通用户的名字
8. 剪切文件或者目录
mv 文件名 目标路径
比如: mv hello /mnt/hgfs/share //当前路径下的hello剪切到共享
重命名文件
mv hello.c hehe.c //给hello.c更换名字为hehe.c
区分剪切和重命名
主要看后面你写的是合法的路径名(剪切)还是文件名(重命名)
9 修改权限
chmod 777 文件的名字
chmod 777 目录的名字 -R (递归修改文件夹的权限)
7 ---》 二进制 111(分别代表读,写,执行的权限)
例如: chmod 666 hello.c chmod 654 hello.c
10. 软链接
软链接:ln -s 原来的名字 软链接的名字
类似于windows中的快捷方式
硬链接:ln 原来的名字 硬链接的名字
软硬链接共同点:原文件修改了,跟着一起修改,链接文件修改了,原文件跟着修改
软链接和硬链接只能在纯粹的linux环境中创建(共享文件夹中无法创建软链接)
区别:软链接依赖于原文件,硬链接不需要依赖
硬链接的文件类型跟原来的文件一样,软链接文件类型属于链接文件
11. 打包和压缩文件
linux中有两种常见格式的压缩包:
.bz2结尾和gz结尾
打包文件/文件夹: tar -jcf xxx.tar.bz2 文件名1 文件名2 ........
例如: tar -jcf 66.tar.bz2 1.jpg 2.mp3 3.txt
tar -zcf xxx.tar.gz 文件名1 文件名2 ......
例如: tar -zcf 66.tar.gz 1.jpg 2.mp3 3.txt
查看压缩包里面的内容:
tar -tf 压缩包的名字
解压:
tar -jxf 66.tar.bz2 //默认解压到当前路径
tar -zxf 66.tar.gz //默认解压到当前路径
解压到指定的位置:
tar -jxf 66.tar.bz2 -C 你要指定的路径
tar -zxf 66.tar.gz -C 你要指定的路径
12. 查找搜索相关的命令
find
比如: find / -name stdio.h //在根目录下找名字叫做stdio.h的文件
find / -type 文件类型
find / -type d // 搜索根目录下的所有的文件夹
grep
比如:grep "printf" stdio.h -Hn //我要在stdio.h文件中搜索关键字printf,并打印printf出现行号
-H 打印文件的名字
-n 打印关键词出现的行号
-w 全字匹配,跟关键词一模一样
13. 查看文件
cat 文件名 //查看整个文件内容
head
head 1.txt -n 2 //查看1.txt的前面2行
tail
tail 1.txt -n 2 //查看1.txt的最后2行
14. 在线下载软件,更新下载源,卸载软件
15. ubuntu网络配置
总体有两种配置方法:
第一种: 使用图形用户界面配置
步骤: (1)确保你的windows是能上网,如果是动态ip,linux网络配置成NAT模式
如果是静态ip,linux网络配置成桥接模式
比如:彭老师windows的ip如下,配置静态ip的时候,ip地址前面三个部分跟window一样,子网掩码,默认网关,DNS全部照抄
第二种: 使用配置文件去配置
步骤: (1)确保你的windows是能上网,如果是动态ip,linux网络配置成NAT模式
如果是静态ip,linux网络配置成桥接模式
(2) 打开/etc/network/interfaces文件
在这个文件的后面加入如下几句话(静态)
auto ens33
iface ens33 inet static //设置静态ip
address 192.168.1.5 //设置ip地址
gateway 192.168.1.1 //设置网关
netmask 255.255.255.0 //子网掩码
打开/etc/resolv.conf文件
namesever 你自己的DNS服务器地址
在这个文件的后面加入如下几句话(动态)
auto ens33
iface ens33 inet dhcp //设置动态ip
(3)重启网络
sudo /etc/init.d/networking force-reload
sudo /etc/init.d/networking restart
16. 拷贝文件/目录
cp 文件名 目标路径
cp 目录名 目标路径 -rf (r递归 f强制)
17. 给命令取别名
注意: 取别名不能跟系统中原本的命令冲突
alias c='clear' //表示我给clear命令换个名字,叫做c
取消别名
unalias c //取消刚才取的别名c
18. 查询shell命令的路径
which shell命令的名字
which ls --》/bin/ls
which find --》/usr/bin/find
19. 重启ubuntu
reboot
20. 查看或者修改ubuntu的ip地址
查看ip地址 ifconfig // ens33 是ubuntu虚拟网卡的名字
ens33 Link encap:Ethernet HWaddr 00:0c:29:0b:88:5f
inet addr:192.168.245.128 Bcast:192.168.245.255 Mask:255.255.255.0
inet6 addr: fe80::8660:80e4:c81f:866f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:51 errors:0 dropped:0 overruns:0 frame:0
TX packets:112 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5086 (5.0 KB) TX bytes:15208 (15.2 KB)
练习:
1. 借用/etc/bash.bashrc文件实现打开终端,能够自动运行你写的某个C语言程序(编译好)
./work4 ---》表示运行当前路径下的work4,linux中小数点表示当前路径
执行程序有两种写法:
第一种: ./hello //相对路径
第二种: /mnt/hgfs/share/hello //绝对路径