1.linux 基础
2.linux c 语言(数据结构)
3.linux高级编程
4.ARM体系结构
5.sqlite/mysql数据库
6.linux c++
7.QT 界面开发
8.nos 裸机接口驱动(s5pv210)
9.linux系统构建(uboot 内核编译与裁剪 文件系统创建)
10.驱动开发(字符设备 块设备 网络设备)
linux 基础
linux OS
unix--->linux
GPL:一般公共版权
linux是一个文件系统
linux系统组成:
a.系统内核
b.shell
c.application
linux系统内核组成部分:
1.MM(内存管理)
2.进程管理
3.进程调度
4.文件管理
5.设备与网络接口
linu系统版本:
2.6.21
3.1.0-7.fc16.i686.PAE
3.1.0
3:内核版本
1.奇数 测试版本
偶数 发型正式版本
21:对内核修改比较大的次数
linux系统:
fedora
redhat
ubuntu
磁盘分区:
a.主分区(c)
b.逻辑分区(d e f)
MBR:主引导记录区(前512byte)
linux磁盘分区文件名
IDE
hda
hdb
s:(SCSI)
sda1 - c
sda5 - D
sda6 - E
sdb1/2
linux 系统引导方式:
1.GRUB
2.LILO
linux 内核分为内核空间和用户空间
用户空间第一个启动进程 init 进程
linux运行界面:
1.X server(类似于windows)
2.字符 (DOS)
linux运行模式:
1.0 init 0 关机
2.1 单用户
3.2 多用户不带网络(single)
4.3 完全多用户带网络(一般用该模式)
5.4 预留
6.5 图形界面(X server)
7.6 init 6 重启
/etc/inittab (修改运行模式)
模式切换
图形界面 -> 字符
[root@localhost etc]# init 3
字符 -> 图形界面
[root@localhost etc]# startx
[root@localhost etc]# init 5
[yb@localhost /]$
[root@localhost /]#
linux根目录:
bin:一般用户可执行文件
sbin:系统管理员可执行文件
etc:系统配置文件
dev:设备映射文件
home:一般用户主目录(该用户对系统设置文件)
root:root用户主目录
usr: usr/include:系统api函数头文件,系统搜索头文件默认目录
usr/lib:库文件目录,系统搜索库文件默认目录
usr/local:用户自己安装其他程序文件
proc:系统实时运行映射目录
mnt:挂载目录(关在 U CDROM)
关在U盘:
1.vm---->removeable devices--->connect
2.fdisk -l //找到分配/dev/sdb1
3.挂载命令:
mount -t vfat /dev/sdb1 /mnt
4.cd /mnt
5.卸载 umount /mnt
6.vm---->removeable devices--->disconnect
boot:系统启动运行目录
linux命令格式
命令名 选项 参数
commandname options paras
ls
cd
文件命令
磁盘 分区 及其使用命令
df :磁盘使用情况
df -a //显示所用磁盘信息
df --all
du:显示目录(子目录)大小
man:帮助命令
man command
man du(q退出帮组界面)
如果man无法使用:
[root@localhost bin]#export PATH=$PATH:/usr/bin
du --help
fdisk 查看磁盘分区表
fdisk -l
显示目录所包含的文件或子目录命令
ls(list)
[root@localhost home]# ls //显示当前目录信息
常用的选项:
-l:以表格列举目录信息
[root@localhost home]# ls -l
drwxrwxrwx. 2 root root 4096 Dec 17 11:24 windowshare
-a:显示所哟文件或目录包括隐藏文件或目录
("."开头的文件名 为隐藏文件)
-i:显示文件的节点号(系统自动分配给每一个文件或目录,一定是唯一)
选项组合
ls -ali
[root@localhost yj]# ls -l /etc
// /etc:参数 查看etc目录情况
分解信息:
drwxrwxrwx. 2 root root 4096 Dec 17 11:24 windowshare
d:文件类型
linux常见文件类型:
-:一般文件
d:目录
b:块设备文件
c:字符设备文件
s:套接字文件socket
l:链接文件
p:管道文件
rwxrwxrwx :对文件或目录操作权限
rwx :文件目录的所有者使用权限
rwx :文件目录所有者同组其他成员使用权限
rwx :除开文件目录所有者所在的组其他组成员使用权限
r:read
w:write
x:excute 执行
2:目录或文件访问入口数
root:目录文件所有者
root:目录文件所有者所在组名
4096:目录文件大小
Dec 17 11:24 目录文件创建日期
windowshare 目录文件名
目录切换
cd
绝对路径:包含根目录的路径
相对路径:不包含根目录的路径
[root@localhost yj]# cd shell
//相对切换,目标目录是当前目录子目录
[root@localhost yj]# cd /etc
//绝对切换,目标目录与当前目录无任何关系
[root@localhost yj]# cd /home/windowshare //多级目录切换
[root@localhost home]# cd yj/shell
[root@localhost home]# cd /home/windowshare
[root@localhost windowshare]# cd /tmp
特殊用法:
.:表示当前目录
..:表示上一级目录
~:用户主目录
/:根目录
pwd 输出当前目录的绝对路径值
cd .
cd ..
cd ~
cd /
cd ../.. 上一层目录的上一层目录
touch 创建文件
touch 文件名1 文件名2
touch a
touch b c
创建文件系统会按照默认权限授权
默认权限linux称为掩码,可以umask命令查看
[yj@localhost ~]$ umask
0002
cat 读取文件
cat 文件名
yj@localhost etc]$cat passwd//相对路径
yj@localhost home]$ cat /etc/passwd//绝对路径
head 读取文件前n行
[yj@localhost home]$ head -10 /etc/passwd
tail读物文件后n行
[yj@localhost home]$ tail -10 /etc/passwd
输出包含指定关键字的行
[yj@localhost home]$ cat /etc/passwd | grep root//root为关键字
分屏输出(满屏输出)
[yj@localhost etc]$ cat passwd | more//回车输出下一行,文本内容输出完毕,自动结束
[yj@localhost etc]$ cat passwd | less//回车输出下一行,文本内容输出完毕,按"q"结束
mkdir 创建目录
[yj@localhost ~]$ mkdir a
[root@localhost ~]# mkdir b c
[root@localhost ~]# mkdir /home/aa
[root@localhost ~]# ls /home
[root@localhost ~]# mkdir -p a1/a2//创建多级目录
rmdir 删除空目录
[root@localhost ~]# rmdir c
[root@localhost ~]# rmdir c d
rm 删除文件
[yj@localhost ~]$ rm a b c
[yj@localhost etc]$ rm /home/yj/a
rm删除非空目录
[root@localhost ~]# rm -r a//r:递归 ,先删除子目录,再删除本目录
[root@localhost ~]# rm -rf a1//-f:强制删除
cp 复制文件或目录
复制文件
cp 源文件 目标文件
[root@localhost ~]# cp /etc/passwd .
[root@localhost ~]# cp /etc/passwd /root
[root@localhost ~]# cp /etc/passwd /root/passwd1//复制并且重命名
复制目录
[root@localhost ~]# cp -r aa /tmp
[root@localhost ~]# cp aa/* /tmp
[root@localhost tmp]# rm -f * //删除目录下的所有文件
[root@localhost tmp]# rm -rf * //删除目录下的所有文件和子目录
[root@localhost aa]# cp -r * /tmp //复制当前目录下的所有文件和子目录
[root@localhost aa]# rm -f *.c //删除.c文件
mv移动文件或目录
mv 源文件 目标文件
移动文件
[root@localhost aa]# mv a /tmp
[root@localhost aa]# mv b e /tmp
[root@localhost aa]# mv /tmp/b ./b1
移动目录
[root@localhost ~]# cd /tmp/aa
[root@localhost aa]# mkdir b2
[root@localhost tmp]# mv aa /root
//重命名操作
[root@localhost aa]# mv b1 b3
[root@localhost aa]# mv b2 b4
关机命令
init 0 只能是root用户
shutdown -h now 只能是root用户
halt
重启命令
init 6 只能是root用户
shutdown -r now 只能是root用户
reboot
who 显示所有用户包括虚拟终端用户和物理终端用户
root tty1 2013-12-17 18:10 (:0)
root pts/0 2013-12-17 18:22 (:0.0)
root pts/1 2013-12-17 20:39 (:0.0)
whoami 物理终端用户
wc 统计文档中字符数 行数 单词数
wc 文件名
wc a.txt
wc -c a.txt
wc -w a.txt
wc -l a.txt
grep 查找命令,输出关键字所在行
cat a.txt | grep 关键字
cat /etc/passwd | grep root
whereis 查找,根据关键字在文件系统中搜索,输出物理目录
whereis ls
whereis man
find 当前目录查找文件(文件名 文件大小 文件类型 文件目录 文件创建时间 修改时间 访问时间)
find -type 文件类型(d b c l p s f(-))
find -name filename
管道符号 "|"
commad1 | commad2 |commad3 | ......
前一个命令输出作为后一个命令输入
cat /etc/passwd | grep root
cat /etc/passwd | grep root | grep operator
cat /etc/passwd | grep root | grep operator | wc
符号重定向
linux三个特殊文件操作符号值:
a.stdin 0 标准输入
b.stdout 1 标准输出
c.stderr 2 错误输出
重定向符号:
输出重定向符号
1.>
2.>>
command 1> 文件名 //默认为标准输出 command > 文件名
command 2> 文件名 //错误信息输出到文件中
ls -l a.txt b.txt
ls -l a.txt b.txt > c.txt
ls -l a.txt b.txt 1> c.txt
ls -l a.txt b.txt 1> c.txt 2> d.txt
在写之前先清空文件,如果文件不存在创建文件
ls -l a.txt b.txt
ls -l a.txt b.txt >> c.txt
ls -l a.txt b.txt 1>> c.txt
ls -l a.txt b.txt 1>> c.txt 2>> d.txt
把新内容追加到文件末尾
输入重定向符号
3.<
4.<<
commad < filename 从文件读取数据,给commad使用
wc < c.txt
cat << 结束符//cat << eof
输入输出符号一起使用:执行顺序:从左到右
cat << eof > e.txt
链接文件
a.硬链接
b.软链接(符号链接)
创建链接文件:
ln 源文件 链接文件
硬链接:
ln a.txt b.txt//实现对源文件物理备份,文件所有属相完全一样,源文件访问入口数+1,如果删除源文件,链接文件可以当作源文件使用
软链接:
ln -s 源文件 链接文件
ln -s b.txt c.txt//类似于window快捷方式文件,链接属相与源文件完全不一样,大小比源文件要小很多,可以使用链接文件(源文件必须要存在)
echo 回显输出函数
echo "adfsfdsfdsf"
echo sdfsdfdsfds
修改文件或目录访问权限
chmod 权限 文件名/目录名
rw-r--r--
all:rw-r--r--
user:rw-
grpup:r--r
other:r--
对所有者&&同组其他用户&&其它组用户增加权限
chmod a+r/w/x|rw/rx/wx|rwx b.txt
对所有者&&同组其他用户&&其它组用户减少权限
chmod a-r/w/x|rw/rx/wx|rwx b.txt
chmod a=r/w/x|rw/rx/wx|rwx b.txt
对所有者增加权限
chmod u+r/w/x|rw/rx/wx|rwx b.txt
对所有者减少权限
chmod u-r/w/x|rw/rx/wx|rwx b.txt
chmod u=r/w/x|rw/rx/wx|rwx b.txt
对同组其他用户增加权限
chmod g+r/w/x|rw/rx/wx|rwx b.txt
对同组其他用户减少权限
chmod g-r/w/x|rw/rx/wx|rwx b.txt
chmod g=r/w/x|rw/rx/wx|rwx b.txt
对其它组用户增加权限
chmod o+r/w/x|rw/rx/wx|rwx b.txt
对其它组用户减少权限
chmod o-r/w/x|rw/rx/wx|rwx b.txt
chmod o=r/w/x|rw/rx/wx|rwx b.txt
八进制数字表示法
r=read=4
w=write=2
x=execute=1
-=0 无权限
765:7=4+2+1=rwx
6=4+2=rw-
5=4+1=r-x
chmod 654 b.txt
chmod 321 b.txt
如果创建文件,文件模式:mode&~umask
mode:456
unask:022// umask 0
result:454 // mode & (~umask)
递归授权
[root@localhost yj]# chmod 765 a -R
[root@localhost yj]# chmod -R 765 a
改变文件创建者
chown 用户名 文件名
[root@localhost yj]# chown yj a.txt
[root@localhost yj]# chown test a.txt//错误,test用必须存在
改变文件所属组
chgrp 组名 文件名
[root@localhost yj]# chgrp yj a.txt
练习:
1.利用rename命令改变文件名