linux有唯一的文件系统,它所有的文件都挂在这棵文件树上。
linux的文件系统:
- /bin:存放常用命令
- /boot:存放启动程序
- /dev:存放设备文件
- /etc:存放启动,关闭,配置程序与文件
- /home:用户工作根目录
- /lib:存放共享链接库
- /root:超级用户的工作目录
- /sbin:系统管理员的常用管理程序
- /tmp:存放临时文件
- /lost+found:系统出现异常时,用于保存部分资料
- /misc:一些实用的工具
- /mnt:光驱、硬盘等的挂载点
- /media:光驱的自动挂载点
- /proc:操作系统的实时信息
- /sys:系统中的硬件设备信息
- /srv:服务启动后需要提取的信息
- /var:主要存放系统日志
- /usr:存放用户程序
- /tftpboot:tftp服务器的服务目录
- /selinux:redhat提供的selinux安全程序
linux的运行级别:
- 关机:0
- 单用户:1
- 多用户无网络:2
- 多用户有网络:3
- 系统未使用留用户:4
- 图形界面:5
- 系统重启:6
如何修改运行级别:
vi /etc/inittab 中的id
linux下有两种用户:
1、root--超级用户账号,使用这个账号可以在系统中做任何事情。
2、普通用户--这个账号供普通用户使用,可以进行有限的操作。
控制台的切换:
linux是一个多用户操作系统,它可以同时接受多个用户登录。linux还允许一个用户进行多次登录,这是因为linux和unix一样,提供了虚拟控制台的访问方式,允许用户在同一时间从不同的虚拟控制台进行多次登录。虚拟控制台的选择可以通过按下Ctrl+Alt+一个功能键来实现,通常使用F1-F7,例如,用户登录后,按一下Ctrl+Alt+F2键,用户又可以看到“login:”提示符,说明用户看到了第二个虚拟控制台。用户可以在某一虚拟控制台上进行的工作尚未结束时,切换到另一个虚拟控制台开始另一项工作。
下面是一些常用的shell命令:
useradd smb
添加名字为smb的用户
passwd smb
修改smb用户密码
su - root
切换到root用户,并将root的环境变量同时带入
shutdown -h now
立即关机
cp
cp /home/test /tmp/
将/home目录下的test文件copy到/tmp目录下
cp -r /home/dir1 /tmp/
将/home目录下的dir1目录copy到/tmp目录下
mv
mv /home/test /home/test1
将/home目录下的test文件更名为test1
mv /home/dir1 /tmp/
将/home目录下dir1目录移动(剪切)到/tmp目录下
rm
rm /home/test
删除/home目录下的test文件
rm -r /home/dir
删除/home目录下的dir目录
mkdir
mkdir /home/workdir
在/home目录下创建workdir目录
mkdir -p /home/dir1/dir2
创建/home/dir1/dir2目录,如果dir1不存在,先创建dir1
cd /home/
进入/home目录
pwd
显示当前工作目录的绝对路径
ls
ls /home
显示/home目录下的文件与目录(不包含隐藏文件)
ls -a /home
显示/home目录下的所有文件与目录(包含隐藏文件)
ls -l /home
显示/home目录下的文件与目录的详细信息
ls -c /home
显示/home目录下的文件与目录,按修改时间排序
mv hello.c .hello.c
将文件hello.c变为了一个隐藏文件
tar cvf tmp.tar /home/tmp
将/home/tmp目录下的所有文件和目录打包成一个tmp.tar文件
tar xvf tmp.tar
将打包文件tmp.tar在当前目录下解压
tar cvzf tmp.tar.gz /home/tmp
将/home/tmp目录下的所有文件和目录打包并压缩成一个tmp.tar.gz文件
tar xvzf tmp.tar.gz
将打包压缩文件tmp.tar.gz在当前目录下解开
unzip tmp.zip
解压tmp.zip文件
访问权限:
系统中的每个文件和目录都有访问许可权限,用它确定谁可以通过何种方式对文件和目录进行访问。或目录的访问分为只读,只写和可执行三种。有三种不同类型的用户可对文件和目录进行访问:文件所有者,与所有者同组的用户、其他用户。所有者一般是文件的创造者。
每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件所有者的读、写和执行权限;与所有者同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。当用ls -l命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限。例如:
$ ls -l sobsrc.tgz
-rw-r--r-- 1 root root 483997 Jul 15 17:31 sobsrc.tgz
注意这里共有10个位置。第一个字符指定了文件类型,如果第一个字符为横线,表示是一个非目录的普通文件。如果是d,表示是一个目录,l代表一个链接文件。r代表只读,w代表写,x代表可执行,横线代表无该权限。
改变访问权限:
chmod
格式:chmod [who] [+|-|=] [mode] 文件名
参数:
who:
u表示文件的所有者。
g表示与文件所有者同组的用户。
o表示“其他用户”。
a表示“所有用户”。 它是系统默认值。
mode:
+添加某个权限
-取消某个权限
=赋予给定权限
例:chmod g+w hello.c
chmod 761 hello.c
df
查看磁盘使用情况
df -k
以KB为单位显示磁盘使用情况
du
查看目录大小
du -b ipc
以字节为单位显示ipc这个目录的大小
ifconfig eth0 192.168.0.1
配置eth0这个网卡的ip地址为192.168.0.1
ifconfig eth0 down
暂停eth0这一网卡的工作
ifconfig eth0 up
恢复eth0这一网卡的工作
netstat -a
查看系统中所有的网络监听端口。
rpm -ivh tftp.rpm
安装名字为tftp的文件
rpm -qa
列出所有已安装rpm
rpm -e name
卸载名字为name的rpm包
mount /dev/cdrom/mnt
将光驱挂载到/mnt目录下
umount /mnt
取消光驱在/mnt下的挂载
find ./ -name 'co*'
在当前目录及其子目录中寻找名为co开头的文件
find ./ -name 'test'
在当前目录及其子目录中寻找名为test的文件
grep "file" ./ -rn
在当前目录及其子目录下,查找包含file字符串的文件
netstat -a | grep tftp
查看所有端口中用于tftp的端口
top
查看系统中的进程对cpu、内存等的占用情况。
ps aux
查看系统中的所有进程
kill -s SIGKILL 4096
杀死4096号进程
man grep
man ping
查看相关命令的帮助文件。
文本编辑
linux提供了一系列功能强大的编辑器,如vi和Emacs。vi是linux系统的第一个全屏幕交互式编辑器,从诞生到现在一直得广大用户的青睐。vi有三种工作模式,分为命令行模式、插入模式、底行模式。
命令行模式:最初进入的一般模式,该模式可以移动光标进行浏览,整行删除,但无法编辑文字。
输入模式:只有在该模式下,用户才能进行文字的编辑输入,用户可以使用[ESC]键回到命令行模式。
底行模式:该模式下,光标位于屏幕底行,用户可以进行文件保存或退出操作,也可以设置编辑环境,如寻找字符串、列出行号。
- vi hello.c
- 键入i进入插入模式
- 编辑
- 键入[ESC]退入到命令行模式
- 键入:wq保存退出
命令行模式功能键:
- yy:复制当前光标所在行
- n yy:n为数字,复制当前光标开始的n行
- p:粘贴复制的内容到光标所在行
- dd:删除当前光标所在行
- n dd:删除当前光标所在行开始的n行
- /name:查找光标之后的名为“name”的字符串,如果有多个这样的字符串,可以通过按n来实现搜索。
- G:光标移到到文件尾
- u:取消前一个动作
底行模式功能键:
- :w 保存
- :q 退出vi(系统会提示保存修改)
- :q!强行退出(对修改不做保存)
- :wq 保存后退出
- :w[filename] 另存为filename的文件
- :set nu 显示行号
- :set nonu 取消行号
Tftp服务器
在嵌入式开发过程中有宿主机和目标机的角色之分:宿主机是执行编译、链接嵌入式软件的计算机;目标机是运行嵌入式软件的硬件平台。
Tftp服务器作为工作于宿主机上的软件,主要提供对目标机的主要映像文件的下载工作。
1、可以通过命令查看Tftp是否安装:netstat -a | grep tftp
已安装结果:udp 0 0 *:tftp *:*
2、如果没有安装,执行下列命令安装:
rpm -ivh tftp-server-0.42-3.1.i386.rpm
3、建立tftp的主工作目录
mkdir /tftpboot
4、修改配置文件
vi /etc/xinetd.d/tftp
service tftp
{
server_args = -s/tftpboot
disable = no
}
Tftp服务器的启动
/etc/init.d/xinetd start
netstat -a | grep tftp
udp 0 0 *:tftp *:*
NFS介绍
网络文件系统(NFS, Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地的一个机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。(类似于windows共享目录)
NFS安装:
rpm -ivh nfs-utils-1.0.9-24.el5.i386.rpm
NFS配置
vi /etc/exports
/home 192.168.1.*(rw, sync, no_root_squash)
- /home :允许其他计算机访问的目录
- 192.168.1.*:被允许访问该目录的客户端IP地址
- Rw:可读可写
- Sync:同步写磁盘(async:资料会先暂存于内存当中,而非直接写入硬盘)
- no_root_squash:表示客户端root用户对该目录具备写权限
NFS服务启动:
/etc/init.d/nfs start
/etc/init.d/nfs restart
使用mount命令来挂载NFS服务器上的共享目录
mount -t nfs 10.168.1.100:/home /mnt/nfs
功能:将10.168.1.100:/home 挂载到/mnt/nfs下
Samba
linux与linux之间通过NFS实现共享
windows与windows之间通过共享目录实现共享
linux与windows之间通过samba实现共享
安装好samba后,进行配置:
修改/etc/samba/smb.conf,添加
[root]
comment = Root Directories
browseable = yes
writeable = yes
path = /
valid users = smb(用户名)
Samba(添加用户)
Useradd smb //添加smb系统用户
Smbpasswd -a smb //修改密码
系统设置setup
Wireshark(2006年夏天之前叫做Ethereal)是一款非常优秀的,可在linux和windows上使用的开源网络协议分析器。它可以实时检测网络通讯数据,也可以抓取网络通讯数据。可以通过图形界面浏览这些数据,可以查看网络通讯数据包中每一层的详细内容。