ubuntuserver学习资料.docx
《ubuntuserver学习资料.docx》由会员分享,可在线阅读,更多相关《ubuntuserver学习资料.docx(26页珍藏版)》请在冰豆网上搜索。
![ubuntuserver学习资料.docx](https://file1.bdocx.com/fileroot1/2023-2/24/c0bcc4fb-3450-44c3-b8cd-0e5e9a942c14/c0bcc4fb-3450-44c3-b8cd-0e5e9a942c141.gif)
ubuntuserver学习资料
2.ubuntu中文问题
3.vim使用方法
3.vi使用方法
5.ubuntu常用命令
11.搭建FTP服务器
12.配置samba
16.SSH
17.ubuntuserveru盘挂载
18.apache的配置和使用
1
UbuntuServer命令行下的默认语言中文乱码菱形
如果UbuntuServer在安装过程中,选择的是中文(很多新手都会在安装时选择中文,便于上手),这样在完成安装后,系统默认的语言将会是中文zh_CN.UTF-8。
但问题是我们安装的是服务器,只需要运行命令行终端,但在终端下无法正常的显示默认中文编码zh_CN.UTF-8。
可以有三种方法解决该问题,分别详细介绍如下。
第一种:
安装zhcon软件包
$sudoapt-getinstallzhcon
即可将zhcon软件包安装上,它其实就相当于一个Ubuntu的UC-DOS程序,是一个汉字外挂。
既然是外挂就必然要占用一定的系统资源,根据实际需求可选用该方法。
第二种:
使用putty、securteCRT等虚拟终端软件
直接修改虚拟终端界面配置项目中的字体编码为UTF-8即可。
其实就是仍然采用了UbuntuServer默认的zh_CN.UTF-8汉字编码,但在虚拟终端中经过“编码修正”后正确显示出来,因为Windows系统下是采用GBK作为系统默认编码的,故在Windows下,无论是虚拟机,还是默认的虚拟终端界面,显示汉字都是乱码或菱形符号。
该方法使用较广,但在实际终端下,仍然无法正常显示汉字,因为此时系统的默认编码还是zh_CN.UTF-8,服务器上的实际终端还是不能认识zh_CN.UTF-8这种编码。
故引出第三种方法。
第三种:
修改Ubuntu的配置文件/etc/default/locale
将原来的配置内容修改为
LANG=”en_US.UTF-8″
LANGUAGE=”en_US:
en”
再在终端下运行:
$locale-gen-en_US:
en
注销或重启后,UbuntuServer真正服务器实体终端就恢复成了英文的语言环境。
所以,此方法不是真正意义上的中文化,而是恢复英文的默认编码
Vim最令人混淆的特征之一是她拥有3种模式.
插入模式
输入文本
编辑模式
执行命令,也称为正常模式。
命令模式
执行冒号命令
插入模式并不是缺省的模式,您必须按下i来进入插入模式,在屏幕上输入一些文字。
按下按钮将从插入模式转到编辑模式。
该模式用于移动和操纵文本,有时以非常有趣的方式进行。
命令模式用于执行冒号命令,比如保存,查找/替换以及配置vim等。
欲保存文本,您只需要在正常模式下输入:
进入命令模式并输入:
wfilename.退出vim请执行冒号命令:
q.总结如下:
vim(启动vim)
i(进入插入模式)
<输入文本>
(回到编辑模式)
:
wfilename(保存文件为'filename')
:
q(退出vim)
vimfilename(打开您刚才在vim中保存的文件)
ubuntu下vi编辑器使用方法(zhuan)
模式切换:
一般模式切换输入模式(i/a/o)
"i"insert-在目前游标之处插入所要输入之文字
"a"append-在目前游标所在的下一行开始输入文字
"o"open-新增一行在游标的下,并从行首开始输人文字
任何模式退回一般模式(Esc)
以下命令均须退回到一般模式
移动游标
h、j、k、l:
分别控制游标左、下、土、右移一格,也可以用方向键。
Ctrl+b:
往前一页
Ctrl+f:
往后一页
G:
移到文件最后
w:
移到下个word的开头
b:
跳至上个wore的开头
删除
x:
删除所在后面一个字符
#x:
ex:
5x表删除5个字符
dd:
删除游标所在之行
#dd:
例,5dd表删除自游标算起之5行
更改
cw:
更改游标处之字到此一单字之字尾处
c#w:
例,c3w表更改3个字
取代
r:
取代游标处之字符
R:
取代字符直到按ESC为止
复制
yw:
拷贝游标处之字到字尾至缓冲区
P:
把缓冲区之资料贴上来
yy:
拷贝游标所在之行至缓冲区
#yy:
ex:
5yy,拷贝游标所在之处以下5行至缓冲区
复原
u:
undo,复原至上一动作
跳至指定之行
g:
列出行号,及相关信息
命令列下命令简介
注意:
使用前请先按ESC键确定在一般模式下按':
'或'/'或'?
'叁键即可进入命令列模式
列出行号
:
setnu
寻找字串
word(由首至尾寻找),按n可往下继续找
word(由尾至首寻找),按N可往前继续找
改命令可以用“/”代替
跳行
:
100-可跳至第100行
一般模式进入命令行模式(:
)
:
wfilename(存入指定文件)
:
wq(写入并离开vi)
:
q!
(强迫离开并放弃编辑的文件)
:
n[文件]-引入下一个文件
:
l,l2d-删除自行l至行l2的文字
:
l,l2s/patternl/pattern2/g-将行l至行l2的文字,patternl的字串改为pattern2的字串,如无g则仅更换每一行所匹配的第一个字串,如有g则将每一个字串均做更换
常用命令:
apt-get:
debian系系统的软件包管理程序(其图形化前端就是大名鼎鼎的新立得了),会自动帮你搞
定依赖关系
最常用参数:
update—-与你的软件源(在/etc/apt/sources.list中列出)更新软件包列表,换
源后需要执行
upgrade—-根据update得到的源软件库与本地已经安装的对比,(如果需要升级就)全部升级
install—-安装软件包(可以使用tab补全软件包的名字,比较方便)
remove—-卸载软件包
purge—-卸载软件包,同时删除该软件的配置文件
source—-从源里下载软件包的源码到当前目录(执行此命令的目录)并解压(除非指定–download-only参数)
该地址由/etc/apt/sources.list中的deb-src行指定
check—-用来(自动)修复(已装)软件包之间的依赖关系
clean—-清除/var/cache/apt/archives/包括其子目录partial/下的所有软件包缓存
autoclean—-比clean常用,我的理解是删除低版本的缓存而保留高版本的(或者包括
非当前源里的软件包?
)
aptitude:
此为PT同学补充,他的说法是aptitude比apt-get少个横线,tab补全比较容易(=.=)~大概神牛都比较懒吧
不得不提下蛋蛋童鞋以前说过的ubuntu彩蛋:
)<仅限于UBUNTU8.04>
manapt—-最后会看到“本apt有着超级牛力”or“thisAPThasasuper-cowpower”
manaptitude—-会看到“这个aptitude没有超级牛力”
看看aptitude的参数,你就会明白为什么aptitude会标称”高级软件包管理程序”了
最常用参数:
search—-在(你的源的)所有软件包列表中搜索该软件,search的表达式可以很复杂,具体看man
其余常用参数同apt-get
cat:
把(一个或多个)文件内容(连接)显示到标准输出
当文本文件很小,而且你只是想看下,并不打算用gedit或者vim之类编辑器编辑的时候,可以cat一下,我是用来配合grep使用
cd:
切换当前工作目录
不同于其他命令,这是一个shell内置命令,所以没有手册页可看…够基础,所以才会出现在本篇文章中(=.=)郁闷
最常用参数:
.—-切换到当前目录(貌似没有什么意义)(.这个目录可以通过ls-a看到)
..—-切换到上层目录
~—-回到家目录(/home/你的登录名/)
chmod:
改变文件的权限位
linux文件系统的权限位有两种表示方法,要是详细说下,非得累死老鼠不可=.=,所以只说8进制数表示:
)
简要介绍下:
ls-l可以显示出文件的权限,比如(-rwxr-xr–),代表了三种用户的权限
第一个rwx,代表文件所有者的权限,即(读,写,执行),用二进制表示为111,代表八进制中的4+2+1=7
第二个r-x,代表文件所有者同一用户组其他用户的权限,即(读,,执行),用二进制表示为
101,代表八进制中的5=4+0+1
第三个r–,代表其他用户的权限,即(读,,),二进制表示为100,代表八进制的4=4+0+0所以这个文件的权限位为754
这也就是chmod的用法,例如chmod751myfile#将该文件权限设定为rwxr-x–x
最常用参数:
-v—-列出当前正在执行的步骤
-R—-递归式,即改变非空目录下的一切为指定权限
cp:
拷贝文件和目录
最常用参数:
-b—-为每个已经存在的目的文件作个备份
-d—-遇到软链接时不拷贝软链接所指向的文件;拷贝时保留links属性(链接数)-p—-保留文件的访问权限,所有者,和时间戳
-R和-r—-递归式拷贝(cp过程遇到非空目录才有效),即拷贝目录,子目录,子目录的子目录…..
-a—-作用同-dpR
-s—-并不真的做拷贝,而只是为每个文件作软链接(符号链接)
-u—-同下面mv的-u参数
head,tail
就像这两个名字,一个显示文件头部,一个显示尾部
最常用参数:
-n—-指定输出的(头部或尾部)行数,当没有此参数时,默认显示10行
ifconfig:
配置网卡
最常用参数:
没有参数—-列出当前活动网卡的状态
-a—-列出所有网卡的状态
interface—-指定网卡名称比如eth0
up—-唤醒该网卡
down—-关闭该网卡
arp,mtu,netmaskaddr,…等等很多参数=.=
ln:
为文件建立链接
linux的链接分为两种:
硬链接和软链接,ln默认建立硬链接(hardlink),两种的区别请自己搜索:
)
最常用参数:
-s—-建立软链接(符号链接,可以理解为win下的快捷方式)
-f—-如果要建立的链接名已经存在,则删除之
ls:
显示目录内容
最常用参数:
-a—-显示指定目录所有文件,包括文件名以.开头的文件
-l—-显示文件详细信息(包括文件类型,权限,修改时间,访问时间,大小,文件名…)-h—-将文件大小以方便阅读的形式表示出来,配合-l参数使用,常有奇效
man:
阅读参考手册of~
题外话:
HX说这是linux最最难学的命令,因为man你学好了,就没有什么命令能难倒你
了,=.=无敌了
man可以查的不仅仅是命令额(当然,因为man是无敌的嘛/ch)
最常用参数:
man阿拉伯数字
阿拉伯数字1:
可执行程序(一般为用户安装的程序,如果提供了manpages的话)和shell命令
阿拉伯数字2:
系统调用(例如open调用,socket调用,chmod调用等等等等),先装manpages-dev先
阿拉伯数字3:
库函数调用(例如man3printf),先装manpages-dev先
…….
当你执行manls时,和man1ls结果是一样的,因为ls在man手册中只有一个入口
当你想看chmod调用的手册页时,就要特别指定man2chmod了~~因为chmod不止有一个入口
在man的时候,可以通过j,k上下移动(和vi中类似),可以通过/查询,通过n,N查找下个,上个匹配(和vi类似)
q退出(也和vi类似….)
比较有意思的一点:
由于man本身是个命令,所以,连man都是可以man的=.=
mkdir:
创建一个目录
最常用参数:
-p—-如果给出的路径中父目录不存在,则同时创建父目录
mount:
挂载文件系统(可理解为挂载一个分区)
最常用参数:
-t—-指定文件系统类型,比如iso9660(挂载iso镜像为光盘,相当于虚拟光驱),ntfs,ext3,rfs等等
-l—-列出所有已经挂载的文件系统,支持卷标
-a—-挂载fstab中记录的所有分区
-n—-挂载的时候不写入/etc/mtab
-o—-相当常用的一个参数,指定挂载文件系统的”选项”,比如noatime,用来挂载BT专用分区很合适
mv:
移动或者更名文件,取决于目的目录是否为当前目录
最常用参数:
-b—-为每个已经存在的目的文件做个备份(防止覆盖)
-f—-不提示是否覆盖已经存在的目的文件
-i—-与-f参数相反
-u—-仅当源文件比目的文件更新或者目的文件不存在时候才移动
-v—-显示移动文件的进度(个人总是推荐使用此参数,明白你在做什么)
ps,top:
列出当前命令的执行状态,ps为静态,top为动态(top时’q’退出)
ps:
这个命令本人更常用些,推荐给你看看=.=
最常用参数(ps多用参数集合,而不是单个参数,并且配合grep使用)
-ef—-以标准语法列出当前所有进程状态,例如ps-ef|grepeva#列出eva的进程状态
aux—-以BSD语法列出………………………………..
-ejH—-列出进程树
-eLf—-同时列出线程状态
rm,rmdir:
rm:
删除文件或目录,rmdir:
删除一个空目录(此命令个人认为没啥用,可以用rm-r替代)
rm最常用参数:
-f—-不提示不存在的文件,直接跳过
-i—-每个删除动作都提示(=.=删除多的话岂不是烦死)
-I—-删除多个文件(多于3个时)或者递归式删除(对于非空目录)提示一次
-r和-R—-递归式删除该目录下的一切东东
-v—-显示每个文件的删除动作(个人总是推荐使用此参数,明白你在做什么)sudo,su:
这大概是装好系统之后第一个要用的命令吧?
sudo我们主要用来临时提升权限,主要用以管理员(超级用户)的权限来运行命令,当需要修改当前登录用户力所不能及的文件/目录
时需要用sudo,或者su-c,当然sudo和su的作用范围不仅仅如此
可以使用visudo来编辑/etc/sudoers文件来修改sudo更详细的动作(比如记住密码的时间戳长度),请谨慎修改!
sh:
在终端解释执行
类似于’./’的形式,但PT给了不同点:
‘./’仅仅对当前目录下有执行权限的程序才有效,’sh’则不管这套
想想也是哈,‘./’仅仅是给出了一个文件的路径(在当前目录下)而已,但这个文件能不能执行就不好说了
所以用sh总是正确的
shutdown:
关闭系统,如果停留在TTY,请改用halt,poweroff等命令
常用参数:
+m—-指定关机延迟的分钟
-c—-取消一个等待关机的请求(关掉运行此命令的终端也可:
))
now—-立即关机
hh:
mm—-手动指定时间(以24小时计)
tar:
打包/解包
这个tar不多说了吧..到处都是tar.gz,tar.bz2的东东
和ps命令一样,tar一般不用单个参数,而是多个参数的组合,记住参数x是解压(extract),c是创建包(creat)即可
最常用参数:
-xvf—-详细列出解包的步骤
-cvf—-详细列出打包的步骤
-j—-用来说明这是个tar.bz2包,例如tar-xjvfmyfile.tar.bz2
-t—-列出包中的文件列表
—–打包时常追加的参数:
-r—-追加到压缩包中
-u—-只把比包中更新的文件追加进去
-h—-不把符号链接添加到包中,而是添加此符号链接指向的文件
附加说明:
tar是个太强大的东东,常用的操作也就是打包解包,高级功能还是参阅man=.=
搭建FTP服务器
2、获取最新的软件信息
执行apt-get的更新过程:
sudoapt-getupdate
3、安装vsftpd软件
sudoapt-getinstallvsftpd
4、设置vsftpd.conf文件
修改之前最好先备份下这个文件:
sudocp/etc/vsftpd.conf/etc/vsftpd.conf.old
然后可以改动了(主要是以下几行代码):
#不让匿名用户使用
#anonymous_enable=YES
#本地用户可用,这样ftp服务器的每一个用户就有了一个ftp账户了
local_enable=YES
#可用写操作
write_enable=YES
#文件上传后的读写权限,设置为022,则文件上传后的权限为644,文件夹上传后的权限为755
local_umask=022
5、删除vsftpd的默认匿名账户
sudorm-R/home/ftp
6、如果要进行更严格的ftp限制,可以使用如下操作
要解决这些问题我们还得设置下vsftpd.conf
#启动chroot列表(Changeroot)
chroot_list_enable=YES
#指定列表位置(我这用的是默认地址)
chroot_list_file=/etc/vsftpd.chroot_list
接下来我们得在vsftpd.chroot_list上写进去我们要限制哪些用户,不让他们“漂移”..
现在有用户linyupark,所以只要sudonano一下,往里面写就行了
这样我们已经解决第2个问题了,登陆的用户只能在它的用户文件夹里活动,下面我们要更狠一点,让他只能在public_html里活动
依然还是找vsftpd.conf
#这句默认设置里是没有的,自己加
user_config_dir=/etc/自己定义一个设置个别用户用的文件夹地址
根据自己设置的地址,建立一个相应的文件夹,然后往里面建立和用户名相同的文件,vim一下:
#本地用户的根地址,假设用户是linyupark
local_root=/home/linyupark/public_html
重启下FTP服务:
sudo/etc/init.d/vsftpdrestart
本文可以自由转载,转载时请保留全文并注明出处:
转载自仲子说[]
原文链接:
配置samba
1.检查UbuntuServer上samba是否已经安装,我在装UbuntuServer时已经安装了,所以我跳过了此步,仅作演示。
gino@ubuntu:
~$dpkg-l|grepsamba
iisamba2:
3.4.7~dfsg-1ubuntu3SMB/CIFSfile,print,andloginserverforU
iisamba-common2:
3.4.7~dfsg-1ubuntu3commonfilesusedbyboththeSambaservera
iisamba-common-bin2:
3.4.7~dfsg-1ubuntu3commonfilesusedbyboththeSambaservera
iisamba-doc2:
3.4.7~dfsg-1ubuntu3Sambadocumentation
复制代码
如果没有安装,运行
sudoapt-getinstallsamba
进行安装
2.先解决Windows服务器上目录访问的问题
很简单,就是将其mount过来就好了,但是和之前UbuntuDesktop使用不一样的地方是,以前有图形界面,并且不用考虑文件访问方式和字符集。
示例指令:
sudomount-tcifs-oiocharset=utf8,username=gino,password=*******//DevFileServer/share/mnt/whost
复制代码
其中cifs是继smbfs之后的文件系统共享协议,相关知识我也在网上大概搜了一下,并且了解到cifs是不依赖于samba的。
开始使用了mount-tsmbfs方式来进行添加,出现了许多小问题,尝试cifs感觉顺利了很多。
有兴趣的朋友在网上查找cifssmbfs就可以了解更多,本人对此也是刚刚接触,所以不多说了。
其中/mnt/whost需要自己建立
OKUbuntServer访问Windows共享目录完成。
问题:
由于UbuntuServer是装的英文的,所以Ubuntu下进入此目录出现乱码。
用putty登录,选择字符集为UTF8,则中文显示正常。
尝试了更改locale中的字符集,但是Ubuntu下载总是乱码,还没有找到解决办法,还好putty登录一起正常。
3.解决UbuntServer共享目录
这个有点复杂,需要修改samba配置文件实现
sudovi/etc/samba/smb.conf
进入修改界面,修改[global]下载的工作组等,我修改了:
workgroup=DEVWORKGROUP
恢复:
security=user(此可以使用samba定义的用户,稍后研究)
注销了所有与prints相关的段落,因为次计算机上没有打印机
添加:
[share]
comment=UbuntuFileServerShare
path=/srv/samba/share
browsable=yes
guestok=no
readonly=no
createmask=0755
复制代码
添加一个Ubuntu共享目录
创建,并修改此目录
sudomkdir-p/srv/samba/share
sudochownnobody.nogroup/srv/samba/share/
sudochmod777/srv/samba/share
复制代码
创建目录,修改所有者,修改读写权限,因为smb.conf中已经配置了访问方式,所以这里
将此目录的读写权限打开,否则无法在Windows下对其进行修改。
当然也可以将权限分组或授予自己登录用户实现,这里为了简单。
其实Samba有自己的安全模式和共享权限管理,这个稍后进一步研究。
4.重启samba,使其运行
sudorestartsmbd
sudorestartnmbd
复制代码
至此,samba基本配置完成,本人也是第一次配置,通过网上查找资料完成基本内容,有很