Linux新手100问 刘启明 1. linux常用命令普通用户关机: sudo halt 重命名文件或文件夹(将a重命名为b): mv a b 2. Ubuntu如何获得root权力?怎么样进入root用户? 对于RedHat或者Fedora之类的linux,直接在登录的时候使用root用户名进入就可以了。但是Ubuntu不会提供root用户。输入命令 sudo passwd root ,然后设置root的密码,再输入su(switch user),键入刚才设置的密码,即可以在root权限下使用命令了。这时终端提示也会改变: 普通权限时,提示如下: liuqiming@liuqiming-desktop:~$ 通过su后进入root权限,提示如下: root@liuqiming-desktop:/home/liuqiming# 3.Ubuntu如何从root用户退出到普通用户? exit 4.用户登录到Ubuntu系统后,通常工作在什么目录下?这些目录有什么特点? 用户登录进Ubuntu后,每时每刻都“处在”某个目录之中,此目录通常被称为工作目录或当前目录。默认情况下以普通用户登录,此时工作目录在/home/liuqiming中。其中liuqiming为本人建立的普通用户名。这时终端界面提示如下: liuqiming@liuqiming-desktop:~$ 输入pwd查询当前目录,打印如下: /home/liuqiming 输入ls查询当前目录存在的文件,有模板,图片,下载,桌面,公共的,视频,文档,音乐等。 还有一个很重要的目录,那就是linux的根目录。从普通用户目录跳到根目录,有如下几种方法: l 输入 cd ../,进入/home目录,再输入cd ../即可。 l 直接输入cd / l 直接输入cd ../.. 输入pwd查看当前目录,打印如下: / 这个反斜杠,表示linux的根目录。 输入ls查看当前目录文件,可以看到有bin,cdrom,etc,lost+found,mnt,proc,sbin等等。这些都是安装完linux后的重要的目录。具体作用如下: /bin:存放着一百多个Linux下常用的命令、工具
/dev:存放着Linux下所有的设备文件!
/home:用户主目录,每建一个用户,就会在这里新建一个与用户同名的目录,给该用户一个自己的空间
/lost+found:顾名思义,一些丢失的文件可能可以在这里找到
/mnt:外部设备的挂接点,通常用cdrom与floppy两个子目录!它的存在简化了光盘与软盘的使用。你只需在塞入光盘后,运行:mount /mnt/cdrom,就可以将光盘上的内容Mount到/mnt/cdrom上,你就可以访问了。不过你使用完成后,应该离开该目录,并执行umount/mnt/cdrom。同样的,软盘就是mount/mnt/floppy和umount /mnt/floppy了。
/proc:这其实是一个假的目录,通过这里你可以访问到内存里的内容。
/sbin:这里存放着系统级的命令与工具
/usr:通常用来安装各种软件的地方
/usr/X11R6 X Window目录
/usr/bin与/usr/sbin 一些后安装的命令与工具
/usr/include、/usr/lib及/usr/share 则是存放一些共享链接库
/usr/local 常用来安装新软件
/usr/src Linux源程序
/boot:Linux就是从这里启动的
/etc:这里存放在Linux大部分的配置文件
/lib:静态链接库
/root:root用户的主目录,这就是特权之一!
/var:通常用来存放一些变化中的东西!
/var/log:存放系统日志
/var/spool:存放一些邮件、新闻、打印队列等 进入根目录后,再进入用户目录,也有两种方法: l cd ~ l 先输入cd home,再输入cdliuqiming 5.如何在终端打开一个文件? 假设这里打开main.c这个文件,有以下三种方法: l catmain.c l moremain.c l vimain.c 其中方法一是一次性将整个文件全部显示出来;方法二是如果一页无法显示完,则分页显示,每按一次空格显示一页;方法三是利用linux强大的vi编辑器,该编辑器如同Windows下的记事本一样。 6.如果在终端打开一个目录下的文件时一页无法显示完,怎么办? 通过管道的more功能,例如: ls /dev |more 7.如何在终端将一个目录下的文件的名字存放到一个文件里面? 通过管道的 > 功能,例如: l ls/dev > filenames.txt l ls/dev >> filenames.txt 方法一是用来创建一个新的文件filenames.txt,如果已经有了同名的文件就覆盖掉以前的内容;方法二是在已经存在的文件后面追加新的内容。 8.如何在ubuntu下显示日历? 三种方法: l cal -> 显示当前月份的日历 l cal–jy -> 显示当前年份的日历,日子从1月1日开始累加 l cal –y-> 显示当前年份的日历,日子按当月第一天开始累加 l cal1984-> 显示1984年当年的日历 9.如何在ubuntu下显示日期? 在命令行下输入 date 即可。 10.如何查询正在工作或当前工作的目录名? 输入 pwd 命令即可。 11.如何复位终端? 输入 reset 命令即可。 12.如何锁住终端屏幕? Ctrl + s 13.如何解除终端屏幕锁定? Ctrl + q 14.如何改变用户的ID或变成root? su root 15.如何查询自己加载的模块是否已经加载进入内核? lsmod 16.insmod: error inserting './hello.ko': -1File exists 错误解决 很多新手学习linux驱动都是从ldd3开始。在编写完C文件,makefile文件后,make,生成hello.ko后,用insmod ./hello.ko,发现没任何显示,但是正常情况下这时终端会显示hello world的呀?为什么没有显示呢?于是继续输入insmod ./hello.ko,这时就会弹出-1 File exists的错误。这说明指定的模块已经加载进系统了。在终端输入lsmod查询已经加载的模块,可以找到hello这个模块。那么为什么终端没有hello world的打印呢?通常情况下,kernel会将开机信息以及打印log信息存放在ring buffer中。开机信息同样保存在/var/log目录中,名称为dmesg的文件里。在终端输入命令dmesg,就会看到打印信息。为打印想要的信息,通常输入dmesg –c,其中-c表示显示信息后,清除ring buffer中的内容,这样就避免了显示一些没有用的log信息。这样当执行一次dmesg –c后,再执行dmesg,则不会再有log信息了,除非另外有模块加载时有新的log信息打印。 17.如何移动文件? 这里假设我们在普通用户的根目录下新建了main.c和Makefile两个文件,并且通过make编译生成了目标文件main.ko,为便于管理,想把main.c以及Makefile两个文件存放到/home/ldd3/misc-modules这个路径下,怎么操作? 首先,我们进入ldd3的目录,作为工作目录;然后如下输入命令:sudo ~/main.c misc-modules/ 这里,”sudo”表示使用超级权限,”~”表示普通用户的路径,即”home/liuqiming”,后面的misc-modules/表示当前工作目录下的misc-modules目录。执行上面的指令后,将会把main.c文件移动到misc-modules目录下。 18.如何设置IP? ifconfig eth0 192.168.1.21 up 设置完成后用ifconfig命令查询。 如果想永久性修改IP,需要将要设置的IP添加在/etc/init.d/rcS中。 19.如何检测开发板与PC间是否连接成功? 首先,设置开发板的IP地址和PC的IP地址在同一个网段,例如: 开发板:192.168.1.21 PC: 192.168.1.102 然后,通过交叉网线连接PC和开发板的网卡端口; 最后,在linux的控制台输入: ping 192.168.1.102 如果连接正常,则有如下打印信息: PING 192.168.1.102 (192.168.1.102): 56 data bytes 64 bytes from 192.168.1.102: seq=0 ttl=128 time=2.0 ms 64 bytes from 192.168.1.102: seq=1 ttl=128 time=0.6 ms 64 bytes from 192.168.1.102: seq=2 ttl=128 time=0.6 ms 64 bytes from 192.168.1.102: seq=3 ttl=128 time=0.6 ms 64 bytes from 192.168.1.102: seq=4 ttl=128 time=0.6 ms 64 bytes from 192.168.1.102: seq=5 ttl=128 time=0.6 ms 64 bytes from 192.168.1.102: seq=6 ttl=128 time=0.6 ms --- 192.168.1.102 ping statistics --- 7 packets transmitted, 7 packets received, 0% packetloss round-trip min/avg/max = 0.6/0.8/2.0 ms 20.如何开机自动运行自己的程序? Linux 的启动脚本位于/etc/init.d/rcS,若想自启动自己的应用程序可在后面添加,例如开机自动运行WEB服务,可以在后面添加如下代码: /bin/boa & 21.如何终止程序的运行? 使用 Ctrl+C 的组合键,可以中止正在运行的程序,如果是在后台运行的程序,需要使用kill 来杀掉对应的进程即: kill 进程号。 用 ps 命令可查看当前正在运行的进程。 22.如何使用FTP传送文件? 首先,在控制台输入vsftpd&,启动ftp服务; 然后,打开PC上的IE浏览器,在上面输入如下地址(开发板IP): 23.怎么样查看当前使用了哪些进程? 使用命令 ps 即可。 24.Ubuntu提示有线网络连接已断开,怎么样恢复能够上网? 在命令行输入: sudo ifconfig eth0up 然后单击右上脚的网络连接标识,点击自动以太网即可。 上网不正常时的界面如下:
上图的红色框描述了网络连接情况,上面显示为没信号,故无法上网。重启后连接正常的界面如下:
25.Ubuntu下如何挂载以及卸载U盘? l 在挂载U盘前,首先运行命令cat /proc/partitions,看看现在系统中有哪些分区。插上u盘以后,再次运行上述命令,看看多出来什么分区(通常是sda1,由于偶是在虚拟机下装的,所以是sdb1). l 针对上面多出来的分区,输入相应的指令。由于我的是sdb1,所以执行如下指令: sudo mount -t vfat /dev/sdb1 /mnt/usb 这里前提是/mnt目录下存在usb目录,不存在则创建一个。 l 打开/mnt/usb,是不是看到U盘里面的东西了? l 卸载U盘,只需执行如下指令: sudo umount /mnt/usb 26. 在Ubuntu下如何新建目录,以及文件? 新建目录:mkdir 目录名 新建文件:vi 文件名 新建文件,使用vi编译新的文件,最后通过wq保存,即新建了一个文件。使用mkdir直接新建想要的目录。 27.如何在开发板上跑第一个程序Hello,World? 第一步:在PC机linux环境下某个目录新建一个hello.c文件,具体代码如下: #include <stdio.h> int main() { printf( “ Hello World\n ” ); return 0; } 第二步:在linux命令行下进入hello.c目录,敲入以下命令编译该文件: /usr/local/arm/3.4.1/bin/arm-linux-gcc-o hello hello.c 第三步:编译成功后可以在该路径下看到编译好的hello文件。该文件是通过交叉编译器编译而成,在PC端的linux环境下是无法运行的,通过超级终端将该hello文件发送到开发板文件系统的某个目录下(这里先通过U盘将该文件拷到U盘,再切换到XP系统,通过超级终端发送文件)。 第四步:默认交叉编译的文件不支持可执行的属性,故运行该文件会提示没有权限,这时需要通过chmod命令修改该文件的权限,具体指令如下: chmod u+x hello 该指令表示在user用户下增加hello文件的可执行属性。 第五步:在超级终端输入./hello,运行该文件。这时可以看到提示符下打印了Hello World的消息。 28. 交叉编译文件时,我们需要使用arm-linux-gcc编译器,但是通常它放在一长串的目录下,如 /usr/local/arm/3.4.1/bin/arm-linux-gcc. 那么我们编译某文件时,要将上面的路径全部输进命令行,如下: /usr/local/arm/3.4.1/bin/arm-linux-gcc–o hello hello.c 有没简单的方法,不用输入这么多字符? 答案不止一个。这里通过建立环境变量实现简便的输入。 第一步:在当前用户路径下(通过[cd ~]命令进入),输入ls –a,查询有个叫.bashrc的文件。注意,一定要–a,将隐藏的文件也显示出来。 第二步:输入sudovi .bashrc,编辑该文件。在该文件的最后加入如下代码: Export PATH=/usr/local/arm/3.4.1/bin PATH 保存并退出。 第三步:上面添加的环境变量并不会立即生效,需要重启系统。如果不想重启系统,需要执行如下语句
source .bashrc 第四步:进入需要编译的文件的目录,如hello.c目录,输入如下命令: arm-linux-gcc hello.c –o hello 是不是发现hello文件已经生成了?再也不用烦索的输入一大串路径字符了。 29. lpthread是什么?为什么有的编译有这个东西,有的没有? 当所编译的程序中有线程时,在后面一定要加上这个东西,用于链接线程库。否则会提示出错。 当所编译的程序中没有线程时,千万不要加。否则也可能会出现错误。 30. Makefile有什么作用?最常用的Makefile怎么写? 简单的说,Makefile就是编译一个程序或程序集的一些命令的集合。如一个工程中含有若干c,cpp,h等文件,makefile就是让编译器(make)按照正确的先后顺序编译上面的文件,最终生成一个目标文件。 假设这里有五个文件:test.c,prog.c,code.c,prog.h,code.h。具体依赖关系如下: test.c:无依赖头文件 prog.c:prog.h,code.h code.c:code.h 按照普通的思路,我们可以写成如下makefile文件: test: prog.o code.o main.o gcc–o test prog.o code.o main.o //这里必须用tab键缩进 main.o: test.c gcc–c test.c –o main.o prog.o: prog.c prog.h code.h gcc–c prog.c –o prog.o code.o: code.c code.h gcc–c code.c –o code.o clean: rm–f *.o
由于GNU的make很强大,能够自动推导文件,如果make到一个[.o]文件,那样相同名字的[.c]文件就会自动添加到依赖关系中。因此上面的makefile文件又可以简写成如下形式: test: prog.o code.o main.o gcc–o test prog.o code.o main.o //这里必须用tab键缩进 main.o: gcc–c test.c –o main.o prog.o: prog.h code.h gcc–c prog.c –o prog.o code.o: code.h gcc–c code.c –o code.o clean: rm–f *.o
GNU的make除了能够自动推导文件外,还能自动推导文件关系后面的命令。即针对每个[.o]后面的命令,make也能相应的推导出来。这样我们就没必要繁琐的在每个要编译的文件后面写上相应的命令了。于是新鲜的makefile文件又出来了: test: prog.o code.o main.o gcc–o test prog.o code.o main.o //这里必须用tab键缩进 main.o: test.c prog.o: prog.c prog.h code.h code.o: code.c code.h clean: rm–f *.o
make执行上面的makefile后,会提示找不到main.o文件,为什么这个文件找不到呢?因为这里main.o依赖的是test.c文件,并不是main.c文件,这个make就没有推导的依据了。所以,要想贪图使用make的依赖功能,一定要将[.o]文件和[.c]文件命相同的名字。否则会出错。正确的makefile如下: test: prog.o code.o test.o gcc–o test prog.o code.o main.o //这里必须用tab键缩进 test.o: test.c prog.o: prog.c prog.h code.h code.o: code.c code.h clean: rm–f *.o
除此以外,GNU的make还可以使用一些预定义的变量。这里给出两个最常用的变量如下: $@: 目标的完整名称。 $^: 所有的依赖文件,以空格分开,不包括重复的依赖文件。 另外,Makefile还可以使用类似环境变量一样的变量,具体只用在开头定义变量,使用时用美元符号加括号即可。如: VARNAME=string 使用时,方法如下: ${VARNAME} 于是,又有一个全新版本的Makefile出现了: OBJS=prog.o code.o test.o CC=gcc test: ${OBJS} ${CC}–o $@ $^ test.o: prog.o:prog.h code.h code.o:code.h clean: rm–f *.o
31. 如何查看当前目录?进入当前目录后,怎么样表示当前目录? 查看当前目录:pwd 表示当前目录:./ 32. 巧用[./]命令符 利用./命令执行非当前目录的执行文件。 例如某应用程序,存放在/mnt目录下,为了执行该命令,通常情况下我们会进入该目录,然后运行./*,其中*表示要运行的文件名。如果不进入存放的目录,我们能实现运行这个文件吗?答案是肯定的。如应用程序ledshow放在/mnt目录下,而我们在根目录下,这时只需执行./mnt/ledshow,即可运行该程序。 33. 如何在FL2440开发板上挂载U盘? FL2440只支持2G即2G以下的U盘,打开console,console上会有如下提示: # usb 1-1.4: new full speed USB device using s3c2410-ohci and address 5 usb 1-1.4: Product: USB Reader usb 1-1.4: Manufacturer: ChipsBnk usb 1-1.4: SerialNumber: 110074973765 ub(1.5): GetMaxLUN returned 0, using 1 LUNs /dev/ub/a: p1
这时,/dev/ub/a下的part1即为U盘文件,通过以下命令挂载: mount –t vfat/dev/ub/a/part1 /tmp 这样,U盘就被挂载到/tmp目录了。通过ls /tmp命令可以查询U盘下存放的文件。 34. 在ubuntu下如何以root帐户形式进入主界面? 在登录界面选择其他用户,手动输入用户名为root,输入root用户密码,即可进入。当然前提是首先要给root设置密码,用sudopasswd root命令设置。 35. 误修改系统文件权限后无法以普通用户身份登录ubuntu,是否有修复方法? 修改系统文件权限后,无法以普通用户身份登录ubuntu,错误图片如下:
第一张图片,提示/var/lib/gdm/.ICEauthority文件不能更新,通过root用户登录系统后,进入该路径,用ls –al命令查询该文件的属性,发现已经被改为只读了。执行以下命令: chmod u+w.ICEauthority 第二张图片,提示/usr/lib/libgconf2-4/gconf-sanity-check-2文件配置服务器错误,用ls –al命令查询该文件发生,发现为可读可执行,无法写了。执行以下命令: chmod 777gconf-sanity-check-2 在网上搜到类似错误,执行了如下命令: chmod 1777 /tmp 经以上两个三个命令后,重启,问题解决。个人觉得第三个命令没有什么作用。 36. ubuntu下,通常使用apt-get命令安装一些软件。但是有时我们需要安装一个软件的部分套件,需要查询有哪些可供安装的套件,怎么查询? 输入 apt-cache 关键字,即可。 37. ubuntu下如何安装SCIM的拼音以及五笔输入法? 以下安装方法乃笔者亲自验证通过,为了装这个SCIM,整整花了一个晚上的时间。由于误将文件系统的属性设置错了,导致ibus的五笔没法用,重装后仍然不能正常使用,只能卸载ibus后再重装SCIM。这个SCIM整整花了笔者一个晚上的时间,看到网上很多网友装这个费尽周折,有些花了一整天甚至两天时间。因此有必要在这里写个总结,留给有用之人以免重蹈覆辙。 一:卸载ubuntu下默认的输入法,如果默认装了ibus输入法,就把ibus卸载掉,命令如下: sudo apt-getremove ibus 如果默认装了scim输入法,就把scim卸载掉,命令如下: sudo apt-getremove scim 二:安装scim输入法。中间有提示,按y同意即可。 sudo apt-getinstall scim 三:安装中文输入法。实际上前面安装的只是能够运行输入法的一个平台而已,现在才是具体要装的输入法。 四:新建一个95xinput文件,输入如下命令: sudo gedit/etc/X11/Xsession.d/95xinput 该文件具体内容如下: /usr/bin/scim -d XMODIFIERS="@im=SCIM" #设置应用于所有的X应用程序 export XMODIFIERS # 设置GTK的默认输入 export GTK_IM_MODULE=scim #设置QT的默认输入
确定无误后,保存退出。 五:exit退出终端。 六:注销系统,重新登录。此时是不是可以通过CTRL+Space键切换成scim输入法了? 七:依次执行下面的命令,安装scim下的五笔输入法: sudo apt-getinstall scim scim-tables-zh [安装五笔输入法] sudo apt-getinstall scim-gtk2-immodule scim-qtimm sudo apt-getinstall im-switch sudo im-switch –sscim 八:进入系统 -> 首选项 ->scim输入法设置 -> 全局设置 -> 简体中文,选择自己喜欢的输入法,确定退出。 九:执行命令pkill scim && scim –d,该命令为杀死scim线程以及启动scim的组合命令,即重启scim. 十:安装完毕。 38. 如何删除一个文件夹及文件夹里面的内容? sudo rm –r * : 删除*文件夹及*文件夹所包含的子文件 39. 如何查看ubuntu下的磁盘使用信息? 指令:df 40. 如何通过NFS实现ubuntu与开发板的同步? 首先在ubuntu平台(PC)下做如下设置: 一:安装NFS服务器 sudo apt-get installnfs-kernel-server 二:配置该服务器 sudo vi/etc/exports 在打开的空的文件中,添加想要共享的目录 /opt/FL2440*(rw,sync,no_root_squash) 这里/opt/FL2440是ubuntu给其他平台(开发板,其他远程终端等)提供的共享目录;*表示所有客户机都可以挂载上述共享目录,rw 表示挂接此目录的客户机对该目录有读写的权力,no_root_squash 表示允许挂接此目录的客户机享有该主机的 root 身份。 三:启动NFS服务 sudo /etc/init.d/nfs-kernel-serverstart 然后,在开发板上做如下设置: 四:打开超级终端或者DNW,保持串口处于通信状态 五:通过交叉网线连接PC和开发板。这一步千万不能忘,NFS靠的就是这根线啊,线路都不通了,如何能够配置成功? 六:确保ubuntu下的IP地址与开发板的IP地址在同一网段。二者皆可以通过ifconfig查询,以及通过它设置IP地址。如果不在同一网段,请手动设置为同一网段。 以上六步已经配置好NFS了,下面具体测试是否通信正常: 七:在开发板的linux启动后的命令行里输入如下指令: mount –t nfs –onolock 192.168.1.103:/opt/FL2440 /mnt 其中192.168.1.103为PC端ubuntu的IP地址。我这里本身开发板的IP地址不在这一网段,通过如下命令: ifconfig eth0192.168.1.101 这时,开发板的IP就设置成192.168.1.101了。前面的挂载命令将会把PC端的ubuntu下的/opt/FL2440目录挂载到开发板的/mnt目录。当然,前提是开发板的linux系统必须具备这个目录了。试试先在ubuntu的/opt/FL2440路径放个文件,然后在开发板的命令行终端敲入ls /mnt,是不是看到刚才所放的文件了? 八:如果第七步没有成功,请仔细检查以上七步,重复一到七步! 41. 为什么有时候通过arm-linux-gcc编译文件时,会提示cannotopen output file *ermission denied? 检查所编译的文件所在的目录的属性,更改为777,再进入目录重编译! 42. 更改文件夹及子文件夹,子文件权限指令。 chmod –R 777 * 其中*表示要更改的文件夹名称。注意这里的R一定要大写。 43. ubuntu进入tftp后,如何退出tftp回到终端指令界面? 敲入q,回车即可。 44. ubuntu下如何新建一个文件? 方法一:touch * 方法二:sudo vi * 45. ubuntu安装和卸载软件命令介绍及使用方法
安装软件
命令: apt-get install softname1 softname2 softname3……
卸载软件
命令: apt-get remove softname1 softname2 softname3……
卸载并清除配置
命令: apt-get remove --purge softname1
更新软件信息数据库
命令: apt-get update
进行系统升级
命令: apt-get upgrade
搜索软件包
命令: apt-cache search softname1 softname2 softname3……
Deb软件包相关安装与卸载 安装deb软件包
命令: dpkg -i xxx.deb
删除软件包
命令: dpkg -r xxx.deb
连同配置文件一起删除
命令: dpkg -r --purge xxx.deb
查看软件包信息
命令: dpkg -info xxx.deb
查看文件拷贝详情
命令: dpkg -L xxx.deb
查看系统中已安装软件包信息
命令: dpkg -l
重新配置软件包
命令: dpkg-reconfigure xxx 46. 如何设置Ubuntu终端的背景色? 打开Ubuntu终端,点击编辑->配置文件首选项,选择颜色选项,去掉使用系统主题中的颜色前面的勾,在下面选择所要设置的颜色即可。 47.Ubuntu 9.10 vi和vim上下左右键显示ABCD到问题 安装VIM即可,使用如下命令: sudo apt-get install vim 48. Ubuntu下建立tftp服务器 .1 安装相关软件包 sudo apt-get install tftpd tftp xinetd .2 建立配置文件 #cd /etc/xinetd.d/
#sudo vi tftp 输入 service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
存盘退出 .1 建立tftp服务文件目录 #mkdir /tftpboot 更改权限 #chmod -R 777 /tftpboot/ .2 从新启动服务 #sudo /etc/init.d/xinetd restart 安装完成!测试方法: 在/tftpboot 目录下随便放个文件abc
进入另外一个目录,这个目录必须有可读可写权限,下面放一个文件efg
然后 运行#tftp [你PC机的ip地址]
进入tftp命令行 tftp>get abc 看能否把abc文件下下来 tftp>put efg 看能否把efg文件传上去 49. 通过samba建立windows桌面与ubuntu的网络共享在ubuntu下通过samba设置windows与VMwares的linux的共享方法: 第一步:执行如下代码,安装samba软件; sudo apt-get install samba sudo apt-get install smbfs 第二步:在ubuntu下建立共享文件夹: cd ~ mkdir share sudo chmod 777 share 这时,在普通用户目录下,将会新建一个名字share的共享文件夹。 第三步:备份并编辑smb.conf文件,允许网络用户访问: sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup sudo gedit /etc/samba/smb.conf 将原smb.conf文件内容全部删掉,更改成如下代码: ;############smb.conf############## [global] ; create workup security = share ; is not guest invite guest ok = yes [share] path=/home/liuqiming/share ; read writeable = yes 上面的liuqiming更改为您自己的普通用户帐户名。 第四步:添加网络访问帐户。假设这个帐户名为lqm,代码为: sudo useradd lqm 第五步:给添加的帐户设置登录密码: sudo smbpasswd -a lqm sudo gedit /etc/samba/smbusers 在新建立的文件内加入下面这一行并保存: lqm = "network username" 第六步:重启samba: sudo /etc/init.d/samba restart 第七步:在windows平台下通过访问VMware下linux平台的IP地址即可 进入共享界面,看到共享文件夹share.现在就可以操作该文件夹的内容, 像操作XP下的文件一样了。 注:实验证明,执行前三步就可以在Windows XP下访问Ubuntu的共享目录了。 50. Ubuntu上NFS的安装配置NFS 用于 Linux 主机访问网络中其他 Linux 主机上的共享资源。 NFS 的原理是在客户端上通过网络将远程主机共享文件系统以挂载 (Mount) 的方式加入本机的文件系统,之后的操作就如同在本机上一样。 NFS 服务器 ( 宿主机 ) 1. 安装 NFS Ubuntu 上默认是没有安装 NFS 服务器的,首先要安装 NFS服务程序: $ sudo apt-get install nfs-kernel-server ( 安装 nfs-kernel-server 时, apt 会自动安装nfs-common 和 portmap ) 这样,宿主机就相当于 NFSServer。 2. 配置 NFS 1) 配置 portmap 方法 1: 编辑 /etc/default/portmap, 将 -i 127.0.0.1 去掉. 方法 2: $ sudo dpkg-reconfigure portmap 对 Shouldportmap be bound to the loopback address? 选 N. 2) 配置 /etc/hosts.deny $ sudo gedit /etc/hosts.deny (禁止任何 host (主机)能和你的 NFS 服务器进行 NFS 连接 ) ,加入: ### NFS DAEMONS portmap:ALL lockd:ALL mountd:ALL rquotad:ALL statd:ALL 3) 配置 /etc/hosts.allow $ sudo gedit /etc/hosts.allow 允许那些你想要的主机和你的 NFS 服务器建立连接。下列步骤将允许任何 IP 地址以 192.168.1 开头的主机(连接到 NFS 服务器上),也可以指定特定的 IP 地址。 ### NFS DAEMONS portmap: 192.168.1. lockd: 192.168.1. rquotad: 192.168.1. mountd: 192.168.1. statd: 192.168.1. 上面设置了只要在 192.168.1.*这个网段的所有IP地址用户都可以访问共享目录,但我只想让一个 IP 地址访问,比如 192.168.1.101 那么就可以这样设置了。 可以通过设定/etc/hosts.deny 和/etc/hosts.allow 文件来限制网络服务的存取权限。 ***/etc/hosts.deny*** portmap:ALL lockd:ALL mountd:ALL rquotad:ALL statd:ALL ***/etc/hosts.allow*** portmap:192.168.1.101 lockd:192.168.1.101 mountd:192.168.1.101 rquotad:192.168.1.101 statd:192.168.1.101 同时使用这两个文件就会使得只有 ip 为 192.168.1.101 的机器使用 NFS 服务。你的 target board 的 ip 地址设定为 192.168.1.101 ,这样就可以了。 /etc/hosts.deny 和 /etc/hosts.allow 设置对 portmap 的访问 . 采用这两个配置文件有点类似"mask" 的意思 . 现在 /etc/hosts.deny 中禁止所有用户对 portmap 的访问 . 再在 /etc/hosts.allow 中允许某些用户对 portmap 的访问。 4 )重启 portmap daemon 每次对 /etc/hosts.deny 和 /etc/hosts.allow 两文件的修改后都要重启 portmap daemon 。不然修改无效。 $ sudo /etc/init.d/portmap restart 5 )配置 /etc/exports NFS 挂载目录及权限由/etc/exports 文件定义。 $sudo gedit /etc/exports 比如我要将将我的 home 目录中的 /home/lin/NFSshare 目录让 192.168.1.* 的 IP 共享 , 则在该文件末尾添加下列语句: /home/lin/NFSshare 192.168.1.*(rw,sync,no_root_squash) 然后保存退出。 /home/lin/NFSshare 就表示共享目录,当然,你可以随便换成自己喜欢的目录。 192.168.1.* : 前面三位是你主机( NFS 客户端)的 ip 地址(本机终端 ifconfig 命令就可以获得本机的 ip 地址)。 rw :读 / 写权限,只读权限的参数为 ro ; sync :数据同步写入内存和硬盘,也可以使用 async ,此时数据会先暂存于内存中,而不立即写入硬盘。 no_root_squash : NFS 服务器共享目录用户的属性,如果用户是 root ,那么对于这个共享目录来说就具有 root 的权限。 6) 重启 nfs 服务 $ sudo /etc/init.d/nfs-kernel-server restart 执行这个命令的时候可能会提示一些错误,如下: *Stopping NFS kernel daemon [OK ] *Unexporting directories for NFS kernel daemon... [ OK ] *Exporting directories for NFS kernel daemon... exportfs:/etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified forexport "192.168.1.*:/home/lin/NFSshare". Assuming default behaviour ('no_subtree_check'). NOTE: this default has changed since nfs-utils version 1.0.x [ OK ] *Starting NFS kernel daemon [OK ] 我不知道具体原因,不用管,不影响后面的使用。 注意: 每次对 /etc/exports 文件的修改,都要重启一下 nfs 服务。 7 ) nfs 服务器端测试 由于 nfs 服务器端默认是安装了 nfs 客户端 (nfs-common) 的,所以可以在服务器端挂载共享文件夹作测试。 $sudo mount 192.168.1.160:/home/lin/NFSshare /mnt 192.168.1.160 是 nfs 服务器端 IP 地址,可以在服务器端终端通过命令 ifconfig 获得。 有可能会出现如下错误: $mount 192.168.1.160:/home/lin/NFSshare /mnt mount.nfs: access denied by server while mounting192.168.1.160:/home/lin/NFSshare 在 nfs 客户端执行上述命令,出现同样的错误。这个错误的意思是客户端地址不在 NFS 所允许的地址范围之内,但无论服务器端还是客户端 IP 都是 192.168.1.*啊! 解决办法 重新 $sudo gedit /etc/exports ,将 “ 192.168.1.*” 换成 “*” ,要注意就这一个星星哦!修改完之后不要忘了重启一下 nfs 服务: $ sudo /etc/init.d/nfs-kernel-server restart 这样修改之后,就可以看到 /mnt 文件下共享了 /home/lin/NFSshare 文件夹里的内容。测试完毕,要卸载 nfs 的挂载 $sudo umount /umt an sty/�#fn�[��c.0pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>命令: dpkg -L xxx.deb
查看系统中已安装软件包信息
命令: dpkg -l
重新配置软件包
命令: dpkg-reconfigure xxx
46. 如何设置Ubuntu终端的背景色? 打开Ubuntu终端,点击编辑->配置文件首选项,选择颜色选项,去掉使用系统主题中的颜色前面的勾,在下面选择所要设置的颜色即可。 47.Ubuntu 9.10 vi和vim上下左右键显示ABCD到问题 安装VIM即可,使用如下命令: sudo apt-get install vim 48. Ubuntu下建立tftp服务器 .1 安装相关软件包 sudo apt-get install tftpd tftp xinetd .2 建立配置文件 #cd /etc/xinetd.d/
#sudo vi tftp 输入 service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
存盘退出
|