(1)应用领域
嵌入式开发:可以移植的操作系统
服务器系统:网路运维、网络管理员、服务器管理员
大数据、云计算,要求是熟悉掌握linux操作系统
可移植:操作系统可以在不同的目标主机运行,可以根据目标主机私人特性做私人定制
粤嵌的板子:cpu型号、内存大小、外围传感器(wifi、蓝牙)
其他公司的板子:cpu型号不一样,内存大小不一样,外围传感器(根据需求添加)
可移植的系统:安卓系统、linux系统
开源免费:安卓系统底层也是用的linux
windows闭源
(2)linux发行版本
redhat、ubuntu、deban
vim是linux系统中一个功能强大的文本编辑器
vim 文件名字-------->有文件就打开-------->没有该文件创建文件再打开
插入模式(编辑模式):按a或i,进入插入模式
命令模式:按下esc退出插入模式,进入命令模式
保存退出:输入:冒号wq w---->保存的意思,q--->退出 !---->强制
强制保存退出:输入:冒号wq!
复制: yy---->复制光标所在一行 (不在插入模式)
nyy---->复制n行 6yy--->复制6行
粘贴:p
剪切:dd----->剪切一行
ndd---->剪切n行
删除:x-------->删除光标所在位置的第一个字符
3x------>删除光标所在位置的开始的第3个字符
X------->删除光标前一个字符
2.linux常用命令
linux中的命令统称叫shell命令
shell是一个命令行解释器,将用户命令解析为操作系统能理解的指令,实现用户与操作的交互
shell终端(类比windows的DOS终端):我们平时输入命令、执行程序的那个窗口
gec@ubuntu:/bin$
root@ubuntu:/etc#
gec@ubuntu:~$
~------>当前目录是家目录,等价于/home/gec
gec------>当前用户的名字
root----->超级用户的名字
@-------->分隔符
ubuntu---->操作系统的名字
/bin-------->表示你当前所处位置路径/bin
$-------------->表示当前用户是普通用户
#-------------->表示当前用户是超级用户(管理员)
家目录:linux支持多用户,每个用户linux系统都会给它创建一个专属文件夹,这个专属文件夹的名字与用户名一样。linux把这个专属文件夹所在路径称为这个用户的家目录
比如:用户名叫gec,它的家目录/home/gec
linux中路径的写法跟windows的区别:
windos:区分不同的磁盘分区C:\xxx\ccc\eee
linux:没有分区,所有的文件及文件夹都是从根目录开始向下延伸(linux一切皆文件)
(1)新建文件、打开文件
vi/vim 文件名
touch 文件名 ->只能新建不能打开
gedit 文件名 ->跟记事本差不多
(2)删除文件或者文件夹
rm 文件名
rm 文件名 -rf(r表示递归,f表示强制)
(不要敲这行代码)
sudo rm /* -rf----->sudo管理员+ rm删除+ /*选中所有+ -rf递归强制
(3)新建文件夹
mkdir 目录名
(4)切换目录
cd 目录名字
cd .. 返回上一级目录
cd . 当前目录
cd - 返回上一次进入的目录
linux的根目录/
bin-------------->工具目录、可执行程序、命令所在的路径
dev------------->设备驱动文件
proc----------->系统信息
sbin------------>管理员工具(root)
sys------------->驱动信息
var-------------->系统日志
boot------------->系统启动文件
etc----------------->配置文件
lib------------------>库文件
mnt---------------->挂载目录
root---------------->管理员工作目录
tmp----------------->临时目录
cdrom------------>光驱目录
home------------->用户主目录(每个用户在该目录中均有一个子目录)
usr----------------->用户的程序文件目录
绝对路径:从根目录开始一层一层的往下找,只要文件在这目录中,肯定是能找到的
相对路径:从当前路径开始,往前或者往后查找
(5)ls命令
ls -al----------------->列举所有文件,包括隐藏文件
linux中,隐藏文件都是以小数点开头的
其中.和..要注意
.一个小数点表示当前路径
..两个小数点表示上一级路径
利用这个特点自己新建隐藏文件或者目录
touch .1.txt
mkdir .dir
ls -l------------------->列举所有文件,不包括隐藏文件
gec@ubuntu:/mnt/hgfs/share$ ls -l 2.c
-rwxrwxrwx 1 root root 25 Aug 31 20:04 2.c
linux中一切皆文件
记事本是个文件
键盘也是文件--------->键盘驱动文件
触摸屏也是文件------>触摸屏驱动文件6818 /dev/input/event0
液晶屏文件------------>液晶屏驱动文件6818 /dev/fb0
linux中有七种类型的文件
目录文件(directory)-------------d
普通文件 -
字符设备文件(char)-------------c (学习驱动)
块设备文件(block)---------------b (学习驱动)
套接字文件(socket)--------------------s (网络编程)
软链接文件(link)--------------------l
管道文件(pipe)----------------------p (系统编程)
例子: -rwxrwxrwx 1 root root 25 Aug 31 20:04 2.c
第一个字符:- 普通文件(.c .txt .bmp .mp3...)
第二个字符:rwx:表示可读可写可执行
r----->read
w---->write
x------>execute
分为三组rwx:分别表示当前用户,同组用户,其他用户的操作权限
第十一个字符:1---->硬链接数
第十二个字符两组用户名:分别表示当前文件所属者名、表示当前文件所属组名(没有所属组就是它自己)
第二十个字符:表示文件所占空间大小
第二十二个字符:表示文件创建时间或者文件最后一次的修改时间
注意:在共享路径下,创建文件是默认的满权限
(6)echo命令
标准输入------->默认是键盘
标准输出------->电脑显示屏
在屏幕上标准的输出数据
echo “hello”
echo 123456
(7)切换超级用户(管理员用户)
用途:(1)安装驱动设备文件(增添新设备文件)
(2)当想要修改根目录下的文件夹里面的内容
临时借用管理员权限:
sudo 命令的完整写法
sudo touch 1.c
永久管理员权限:
sudo -s
切换回普通用户
exit或者su 普通用户名
(8)剪切文件或者目录(重命名)
mv 文件名 目标路径(从当前路径能跳到目标路径即是剪切,否则是重命名)
mv 1.c /mnt/hgfs/share(肯定是剪切)
重命名
mv 1.c 2.c //给1.c改名2.c
(9)修改权限
chmod 777 文件的名字 -------->修改文件为满权限(777)
例如:chmod 754 1.c
(10)软链接
软链接:ln -s 原来的名字 软链接名字
类似于windows的快捷方式(删除软链接,不影响原来的文件打开)
硬链接:ln 原来的名字 硬链接名字
相当于拷贝文件(备份)
总结:
软硬链接的共同点:原文件修改了,软硬链接都跟着修改,软硬链接修改了,原文件也跟着修改
软硬链接只能在纯粹的linux环境下才能创建(共享文件夹下不能创建软硬链接)
不同点:软链接依赖于原文件,硬链接不需要依赖原文件
硬链接的文件类型与原文件是一样的,软链接文件文件类型属于链接文件
硬链接不能指向目录
(11)打包与压缩文件
linux中有两种常见格式的压缩包
.bz2结尾和gz结尾
打包文件/文件夹: tar -jcf xxx.tar.bz2 文件1 文件2...(-j对应bz2这个压缩程序)
tar -zcf xxx.tar.gz 文件1 文件2...(-z对应gz这个压缩程序)
查看压缩包里面的内容:tar -tf 压缩包的名字
解压:
tar -jxf abc.tar.bz2 //解压是默认当前路径
tar -zxf abc.tar.gz //解压是默认当前路径
解压到指定路径:
tar -jxf abc.tar.bz2 -C 你要指定的当前路径
tar -zxf abc.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 全字匹配,跟关键字一模一样
printf 正确
(“printf”)正确的,跟非英文混合也是可以的
(13)查看文件
cat 文件名 //查看整个文件的内容
head
head 1.txt -n 2 //查看1.txt的前两行
tail
tail 1.txt -n 2//查看1.txt的最后两行
(14)清屏
clear
(15)ps、 top命令
查看当前系统中进程的运行状态
ps -elf
动态查看进程的状态信息
top
(16)拷贝文件、目录
cp 文件名 目录路径
cp 目录名 目标路径 -r(递归)
例子:cp -r a /mnt/hgfs/share或者cp a /mnt/hgfs/share -r
(17)给命令取别名
注意:不要与系统中原本命令冲突
alias c=’clear’ //表示给clear命令换个名字叫c
取消别名:
unalias c //取消取的别名
(18)查询shell命令的路径
which shell命令的名字
which ls ---->/bin/ls
which clear---->/usr/bin/clear
(19)重启ubuntu
reboot----->重启
(20)查看ip或者修改ubuntu的ip地址
查看ip地址:ifconfig //eth0网卡名字 (windows查看ip地址是ipconfig)
修改ip地址:sudo ifconfig eth0 192.168.11.2
(21)重定向与追加重定向
重定向:重新确定方向 >会覆盖原来的内容
echo “hello”>2.txt
追加重定向:>> 在末尾追加,不会覆盖文件中原本的内容
(22)查看文件大小
du 文件名 -b
目录的大小:它里面所有文件和文件夹大小的总和
(23)目录树
tree 目录名
(24)比较文件或者目录
diff 1.c 2.c -s //比较两个.c文件,内容一样就打印提示
diff 目录1 目录2 -r //递归的比较两个目录
(25)查看当前路径名:
pwd
(26)添加/删除用户
添加用户:sudo addusr 用户名
弹出提示让你输密码,输入个人信息(随便输)
修改密码:sudo passwd 用户名
弹出提示让你输入新密码
删除用户:sudo userdel -rf 用户名//连同家目录一起删除
(27)安装man手册
sudo apt-get install manpages-posix manpages-dev manpages
(28)查看环境变量
env
其中有个重要的环境变量,PATH
PATH是linux可执行程序的环境变量,只要你把程序放在PATH指定的路径下,都可以直接输入程序名字运行程序
输出环境变量
echo $PATH
设置环境变量
export PATH=新的路径:$PATH
(29)按屏幕显示文本文件
more 文件名
按enter键是一行一行显示,按空格键为一屏一屏显示
按q退出显示
less 文件名
可以上下键翻阅