Windows分区:将一个大容量的物理硬盘,划分几个逻辑的区域来管理,如C、D盘等。在Linux中并没有盘符的概念,它是以树状结构管理所有目录、文件。在之前,安装Linux系统时,需要分区;它实质上是将分区挂接在某个目录上,如根文件系统挂接在根目录”/”上,如将光驱、硬盘挂载在/mnt目录下。
Windows路径:C:\Windows\System32,使用反斜杠;Linux路径:/boot,使用斜杠。
Windows用户目录:C:\Users;Linux用户目录:/root是超级用户目录、/home是普通用户的家目录。值得注意的是,在Linux中没有专门的系统目录,因此为了安全起见,后面的操作都会在/home目录中进行。
Windows中是不区分字母的大小写,如a.txt和A.txt认为是同一个文件;而Linux中是区分字母大小写的,a.txt和A.txt认为是两个文件。
为了认识Linux的文件系统,下面简单讲述几个目录的作用。
/bin:存放所有用户都可以使用的基础命令。
/boot:存放操作系统启动时需要用到的程序。
/dev:存放Linux系统中使用的所有设备文件。
/etc:存放各种配置文件,依赖于系统中的应用程序。
/home:用户目录。
/root:超级用户目录。
/usr:存放用户的应用程序和文件。
/lib:存放系统动态链接共享库。
/var:存放可变数据,如日志信息。
/proc:作为proc文件系统的挂接点。proc文件系统是虚拟文件系统,里面的目录、文件由内核生成,表示系统的运行状态。
/mnt:临时挂接文件系统的挂接点。
/tmp:存放应用程序运行时产生的临时文件。
Linux中文件类型分4种:普通文件、目录文件、链接文件、设备文件。
普通文件:包括文本文件、shell脚本、可执行文件和其他类型的数据。等同于Windows中的文件。
目录文件:在Linux中,目录也是文件。包括文件名、子目录名以及指向它们的指针。
链接文件:实现对不同目录、文件的直接访问,且不占用磁盘空间。类似于Windows中的快捷方式。
设备文件:在Linux中将设备当做文件来操作,包括字符设备文件、块设备文件,一般存放在/dev目录下。
Linux中文件的访问属性分为3种:可读(r)、可写(w)、可执行(x);每个文件有3组权限,分别是用户、用户组、其他用户。
如:-rwx rw- r--,表示用户可读可写可执行,用户组可读可写,其他用户可读。
在Linux服务器上编辑文本的工具:gedit、vi(基本不用)。
由于gedit只能在Linux服务器上使用,当我们远程登录服务器时,就不能使用gedit,而是使用vi。
vi有2种模式:命令模式、编辑模式。
输入vi hello.txt,进入vi界面,进入时默认是“命令模式”。
按ESC键,进入命令模式;按i或a,进入编辑模式。
命令模式下常用命令:”:wq”表示保存并退出、”:q!”表示不保存退出、”/”表示向后搜索、”?”表示向前搜索、”dd”表示删除一行、”x”表示删除一个字符。
(1)pwd:显示当前目录。
(2)cd:改变工作目录。
cd /home/lzb:进入目录/home/lzb,表示绝对路径。
cd test:进入当前目录下的test目录,表示相对路径。
cd ..:回到上一层目录,表示相对路径。
cd ../test:进入上一层目录下的test目录,表示相对路径。
cd ~:回到用户的家目录,表示绝对路径。
(3)ls:查看文件和目录的列表。
ls -l:查看当前目录下,所有文件、目录的详细信息。
ls -a:列出当前目录下所有的文件、目录,包括以”.”结尾的文件。
ls -l hello.txt:查看当前目录下hello.txt文件的详细信息。
ls /home/lzb/:查看目录/home/lzb/下所有的文件、目录,加-l选项表示详细信息。
(4)mkdir:创建一个空目录;
rmdir:删除一个空目录。
(5)mv:移动文件或目录。
mv hello.txt /home/lzb/:将hello.txt移动到/home/lzb/目录下,表示绝对路径。
mv hello.txt test/:将hello.txt移动到当前目录的test/下,表示相对路径。
mv hello.txt hello1.txt:将文件hello.txt重命名为hello1.txt。
rm:删除文件(直接删除,不放入回收站)。
rm -f hello.txt:删除当前目录下的hello.txt文件,-f表示强制删除。
rm -r ./test/:删除当前目录下的test目录下的所有文件、目录,-r表示递归删除。
(6)cp:复制文件或目录(不是移动,而是复制)。
cp hello.txt /home/lzb/:将文件hello.txt复制到/home/lzb/目录下。
cp hello.txt ./test/hello1.txt:将hello.txt复制到当前目录下的test目录中,并重命名为hello1.txt。
cp -rf ./test/ ./test1/:将当前目录下test目录下的所有文件、子目录,复制到当前目录test1目录下,-r表示递归,-f表示强制。
(7)cat:显示文件内部的详细内容。
cat -n hello.txt:显示hello.txt的内容,-n表示显示行号。
(8)chown:改变文件的拥有者。
chown root hello.txt:将hello.txt的文件拥有者改为root。
(9)chmod:改变文件的访问权限。
chmod u+wx,g+w hello.txt:对于hello.txt,增加文件拥有者的写、执行权限,增加所属用户组的写权限。u表示文件拥有者,g表示所属用户组,o表示其他用户;+表示增加权限,-表示删除权限。
(10)grep:在文件中搜索特定内容。
grep -n “LI” hello.txt:在当前目录下的hello.txt文件中搜索字符串Li,-n表示显示行号。
grep -nr “LI” ./test/:在当前目录下的test目录下搜索所有文件中是否有字符串”Li”,-r表示是在目录中搜索。
(1)ps:显示当前系统中由该用户运行的进程列表。
选项-ef:表示查看所有进程、PID(进程号)、命令详细目录、执行者等。
(2)kill:终止进程。
kill 6122:终止PID为6122的进程。
(3)clear:清除屏幕上的信息。
(4)free:查看当前系统内存的使用情况。
(5)mount:挂在文件系统。
mount -t nfs -o nolock,vers=2 192.168.1.106:/work/nfs_root /mnt,指将linux服务器的/work/nfs_root/目录挂载到开发板的/mnt目录上;nolock:禁用文件锁,vers=2表示nfs版本协议为2,192.168.1.106是linux服务器地址;-t表示指定文件系统。
(6)insmod:将驱动加载到内核。
insmod drv_ssh.ko:将驱动程序drv_ssh.ko加载到内核。
rmmod:卸载驱动程序。
rmmod drv_ssh:卸载驱动drv_ssh,这里不需要加ko。
(1)tar:打包压缩和解压缩。
tar -cvf xxx.tar file1 file2 dir1 dir2:将文件file1、file2和目录dir1、dir2打包生成xxx.tar。
tar -zcvf xxx.tar.gz file1 file2 dir1 dir2:将文件file1、file2和目录dir1、dir2打包并以gzip格式压缩,生成xxx.tar.gz。c表示创建,v表示显示过程信息,f表示文件,z表示调用gzip。
tar -xvf xxx.tar:将xxx.tar中的文件提取出来。x表示提取。
tar -zxvf xxx.tar.gz:将xxx.tar.gz解压缩。
(2)ifconfig:查看和配置网络接口参数。
Ifconfig:查看网络配置情况。
Ifconfig eth0 198.120.0.8:设置etho网卡的IP地址。
Ifconfig etho dowm:关闭网卡eth0。
Ifconfig eth0 up:激活网卡eth0。
(3)ping:查看网络连接通断。
(1)diff:比较另个不同的文件或不同目录下的两个同名文件,生成补丁文件。
(2)patch:将补丁打到现有代码上。
在Windows平台上编辑代码后,使用FTP将代码上传到Linux服务器,若需要修改代码,同样需要重新上传,这样使用及不方便。
使用FTP并不是最好的方法,因此这节讲解SAMBA服务的使用。SAMBA的作用是在Linux服务器上设置一个共享目录,让Windows主机可以访问(r/w)此共享目录。
在使用SAMBA服务之前,需要以root用户登录,关闭selinux(安全子系统)和firewall(防火墙)。使用gedit进入/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled;进入”系统”->”管理”->”防火墙”,选择”禁用”。重启Linux,使配置生效。
SAMBA配置:使用gedit进入/etc/semba/smb.conf
(1)将setsebool -P samba_enable_home_dirs on前的”#”号删除;
(2)将[home]
comment = Home Directories
browseable = no
writable = yes
valid users = %S(将此行前的”;”号去掉)
; valid users = MYDOMAIN\%S
(3)把[printers]下的配置注释掉;
(4)添加SAMBA用户:终端输入smbpasswd -a root或smbpasswd -a lzb,这里输入的密码是windows访问SAMBA共享目录时需要输入的密码。
(5)重启SAMBA服务:终端输入service smb restart。
(6)为了使Linux服务器在启动时就可以启动SAMBA服务,点击”系统”->”管理”->”服务”,找到smb服务,选择”启动”。这样下次在启动Linux服务器时,不需要输入service smb restart来启动SAMBA,而是自动启动。
在Windows下访问SAMBA:在windows下打开一个文件夹,输入Linux服务器中eth0网卡的IP地址,如\\192.168.88.128;输入用户名和登录SAMBA的密码。注:在登录不了SAMBA时,可以用root用户登录后,执行service smb restart即可。
可以在windows下,将SAMBA共享目录映射成网络驱动器,使用时可以直接打开;但是需要注意的是,在Linux服务器关闭之前,需要先断开映射的网络驱动器。
在windows下打开共享目录,创建hello.cpp并使用vs编辑;使用SecureCRT远程登录,进入文件所在文件夹,使用命令g++ hello.cpp -o hello即可完成编译;执行./hello出现运行结果。