Linux下的第一个程序

2.Linux下的第一个程序

2.1 Linux文件系统

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:存放应用程序运行时产生的临时文件。

2.2 Linux文件

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”表示删除一个字符。

2.3 Linux常用命令

2.3.1文件目录命令

(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表示是在目录中搜索。

2.3.2系统管理和磁盘相关的命令

(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。

2.3.3压缩和网络命令

(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:查看网络连接通断。

2.3.4补丁相关的命令

(1)diff:比较另个不同的文件或不同目录下的两个同名文件,生成补丁文件。

(2)patch:将补丁打到现有代码上。

2.4配置SAMBA

在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服务器关闭之前,需要先断开映射的网络驱动器。

2.5 Linux下的第一个程序

在windows下打开共享目录,创建hello.cpp并使用vs编辑;使用SecureCRT远程登录,进入文件所在文件夹,使用命令g++ hello.cpp -o hello即可完成编译;执行./hello出现运行结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值