Ubuntu Learning II

这是之前文章的续集
 斑驳又要开始长篇大论喽~

如果你是一个经验丰富的计算机用户,可能还记得很久之前微软开发的MS-DOS吧,直至今日,这种基于命令行的shell依然十分流行
 那么现在转到Linuxshell上,可能你会 感到有回到了从前,颜色变少了、漏斗变少了,但是功能上来看,强大了不知道多少倍~Linuxshell上,你可以做几乎任何你所能想象的事务! 其实不单单是Linux操作系统,UNIXFreeBSD还有Mac,都是如此的管理模式,只有Windows,才是只能依赖图形界面和高昂的硬件支持之上才能为用户完成某些工作的OS

Linux用户有两种类型:普通用户和超级管理员用户(也就是常说的 root 用户),很显然,root的权限很大,比Windows中的Administrator的权限还要大;而普通用户,权限可以介于root和完全没有权限中的任意一种,没错,从用户的分配上,Linux就给了几乎上百中不同的选择,自然就不用说软件和图形化界面的选择了。
 写到这里,斑驳再次联想到了QQ360的暧昧关系……国人之所以对这次的事件反映如此之大,原因在于这两个软件的市场占有率,当然,如果你是一个有心人的话,也深深的明白了微软在中国的占有率了吧~反过头来想想,如果是Linux成为中国市场的主力军呢(当然,Linux做为开源的重要代表之一,几乎90%以上的发行版都是不收钱的,但是有正版授权,使用的软件也都是正版的,前提只有你选择一个Linux的发行版,而不是路边卖的Ghost装机版Windows或者通过软解、硬刷的Windows),没错,Linux从一开始为了防止垄断现象的发生,几乎每一种类型的软件至少有个3~4种,多了能上百种,QQ360这种闹剧从根本上也就不会发生了~当然,在Linux不同的软件中,交流和通信都是友好的,不会说跟微软的MSN一样,如今看腾讯出问题了,提出QQ好友自动导入MSN账户的行为。对此,仅对各大软件的运行商感到惋惜,因为你们的行为几乎不会影响到我们这些Linux fans

 

好像扯得有点远了,该学习了
 Ubuntu系列的普通用户如果想要拥有管理员权限来安装、卸载、浏览或者修改等等一些以前不允许操作的权限,只需要在相应命令的前面加上 sudo 就可以实现了。不过如果管理员从一开始为了防止有些用户可能造成不可挽回或者有危险行为的时候,可以实现禁止某个普通用户账号没有使用 sudo 命令的权限,这样子就算是给一个小黑客,也不能对你的计算机搞什么破坏。相信我,一般情况下,Ubuntu中病毒的概率比Windows中了病毒能恢复的概率高不了多少~

 

基本操作

文件系统

 

Linux的目录结构从1993年开始,之后制定了文件系统层次标准(Filesystem Hierarchy StandardFHS),如今Red HatUbuntu以及 BSD系列都一直在遵行FHS标准,比如现在Ubuntu使用 /media 来挂载同硬盘上的NTFS分区和可移动设备,当然,原来熟悉Linux的话,/mnt 仍然是存在的
 这种目录结构布局的一致性会对开发人员极为有利(这些类UNIX操作系统而言),就算是作为知道这个秘密的你,也无法充分的利用它。因为只有程序员才知道软件、脚本和其他工具的确切位置,作为管理员,显然会对系统管理和修复得心应手。

想要看看实在的东西了吧,光说还是很抽象,打开终端(Applications->Accessories->Terminal,如果默认是中文的话,应用程序->附件->终端;当然,喜欢快捷键的话,使用 Alt+F2 键入 gnome-terminal如果默认是Xfce的话应该是 xfce4-terminal),不在这里臭美了,解释一下命令提示符

 

UserName@HostName : Path $

 这个里面的学问大了,用户名 主机名 路径名 $ 。@的意思很明显吧,就是说 这个用户是隶属于这个主机的,然后 指的是工作路径,一般刚刚打开的终端,初始位置是用户的个人目录,也叫做宿主目录,一般都是在 /home/UserName ,为了简洁明了,于是乎就有了几个专有符号来指代特殊位置,比如这个宿主目录是可以使用 来替代,还有两个符号要事先说明一下,分别是 和 .. 也许早在WinRAR中你就发现我的空白文件夹中怎么还有文件呢?

恩 ,在Windows中的疑惑,Linux很容易便可以解决: .  表示的是当前目录  .. 表示的是父级目录。然后还有一个概念的问题,路径分两种,绝对路径和相对路径,恩,没错,如果使用 或者.. 来作为目录的话,那就是相对路径啦,反之就是绝对路径,不难理解吧。

最后就是那个美元符号了,别想多了,只是一个提示用户可以输入命令的标志而已,而且只有普通用户才是这样子的。如果你搞到了超级管理员权限,那就一定也要来看看终端的情况哦~

 

root@HostName:~#

 恩,没错,用户名就是 root,主机名如果不修改多是Linux发行版的名称,默认路径是~  最后的命令提示符是 表明了当前用户是个超级管理员,最牛的执行权限,想干任何事情都是可以的!!包括删除整个 都是一点阻挠没有的操作~这就就不像Windows下那么多费劲的东西了,不过,不是很精通基础命令的时候,使用root用户绝对是见非常危险的事情,足够让你很后悔的!所以,先来看看下面的内容再来动手吧

回到一开始的问题上面来,想要看看目录结构,恩:

 

$ ls /

 

解释一下上面的命令, 表示使用命令的级别,如果是 表示需要用户管理员权限,就是普通用户了,相信看过上面的文章,这些东西很容易就可以理解吧,之后将不再做解释
后面便是命令本身, ls 很形象的就可以让大家想到一个单词 list(列表),后面接着的 表示的是整个文件目录的根,就像树一样,都是从根(/ 也就是根目录)向上,然后发展出繁多的树枝(子级目录)和叶子(子级文件)

然后我们来看一下几个经常被使用到的树枝把(根目录下的常用目录,也就是文件夹)

 /                     根目录,所有的数据都建立在它之上
 /bin               基本命令存放在这个目录中
 /boot            Linux启动引导文件的位置,还有内核镜像文件,有空研究一下grub,会有新发现哦
 /dev              存放设备文件,类UNIX的操作系统都是采取一切对象皆文件的形式
 /etc                 多数的配置文件都在这个目录中
 /home          普通用户的个人目录的上级目录
 /lib                   共享库存放地,类UNIX操作系统都是模块化的方式,经量多的来共享有相同共性的东西
 /lost+found    看英语也能知道这个是干啥用的,不过只有root才能访问这个目录
 /media     Ubuntu默认用来挂载同一块硬盘上的Windows分区或者移动存储介质
 /mnt        Linux默认挂载目录的位置,可挂载远程文件系统等等
 /opt          附加软件包安装目录
 /proc        内核和进程文件目录,都是虚拟的文件
 /root        超级管理员的家目录,也就是root的宿主目录
 /sbin     系统命令的存放处,多数只有root可以使用,不过可以委派给某个用户也来使用
 /srv          系统服务数据文件,当前正在处理的多是在 /var 目录下
 /tmp          临时文件
 /usr           次重要的文件层次结构,内容很复杂
 /var        可变数据,缓冲文件等

 

如果详细的看的话~
 

/sbin里面的命令多是静态链接的,不依赖/lib/usr/lib里面的软件库


 /dev文件数目会很多,都是系统可能会使用到的挂载点,也就是说有很多是暂时不用的了,比如/dev/hda表示第一块IDE硬盘,第二块为hdb;如果是SCSI接口的驱动器,比如光驱/dev/scd0,还有串口COM1表示为/dev/ttyS0;还有打印机/dev/lp0等等


 /etc下面的东西就多了去了,绝大多数的配置文件都在这个地方,比如几个跟操作系统密切相关的: fstab(文件系统表,对应着每一个与系统相连接的存储设备,还有一些选项)inittab(系统初始化表,定义了运行级别,开机默认使用图像界面还是文字以及拨号远程访问等等操作)modprobe.conf(加载内核模块来启动硬件所使用的指令和选项,在引导的时候被使用,允许手动修改)、 passwd(一看就知道,密码文件,记录了用户账户信息)printcap(系统打印机数据库)shells(shell命令行列表)


 /home  这里面的东西对于Ubuntu用户来说便是最重要不过的了,一般给初学者的建议都是将这个目录独立分区,从而保证不会受到意外将数据损坏


 /proc 的内容是直接从内存中创建的,只有在运行的时候才会存在,由内核提供信息而产生。通过"反射"将数据传递给/proc/sys文件,使得可以动态更改Linux内核的运行行为,具体来说


 /proc/cupinfo CPU系列、类型、速度
 /proc/net/dev 活动的接口信息
 /proc/net/route 路由信息
 /proc/net/netstat 网络统计信息
 /proc/devfs 设备文件系统信息
 /proc/udev Ubuntu 6.10以后,取代了devfs的功能,实现了一种管理系统即插即拔的方法
 /proc/devices 是如今的Ubutnu 10.10 的设备管理文件,完全取代了之前的呃devfsudev文件
 /proc/version 内核版本信息,当然在/boot/下面看源码文件也能获取
 /proc/uptime 系统性能信息,例如正常运行时间
 /proc/stat 其他统计信息,例如CPU负载、交换文件利用率、进程信息等等


 /usr 包含了所有用户使用的软件应用程序、库和其他类型的共享数据,并持有X Window、手册、共享文件、软件包文档以及本地构建和安装的整个目录树/usr/local,其实/usr/X11R6是从/usr/bin下的一个链接,X11R7的确是一个单独的目录


 /tmp 如果需要清楚里面的陈旧文件,使用命令tmpwatch(删除10天没有使用的任何文件),具体的配置可以修改/etc/crontab文件,使用浏览器指定打开的文件(其实是下载在了这个地方)


 /var 系统服务用户缓冲和记录日志的子目录,多是可变的数据文件,例如打印脱机队列、接收的邮件等等;当然,这个目录还有很多重要的服务,例如FTPWeb Server等等

 

登陆与使用

 

几乎不用废话把,不过Ubuntu默认图形界面是tty07(Ubuntu 10.10改成了 tty08,也就是Ctrl+Alt+F8),也就是说是用Ctrl+Alt+F1~F6都是欲设定的字符界面。

相信斑驳不用多说,大家应该知道Linux是一个完全支持多用户同时登录和操作的系统吧,所以有必要注意一下字符登录。而且通过ssh或者其他形式的远程登录,都是要跟它打交道的

 

       login:      在这里输入用户名,回车确认

 

然后会询问密码,输入的时候不会显示出密码的位数,这样也是为了安全的考虑,如果你想不明白有啥安全的还感觉很不方便,呵呵,只能说你的目光也太短浅了

在命令行的时候,可能需要翻页的操作,如果没有鼠标的帮助,可能一上来会让你很不爽吧,不过我们可以使用Shift+PageUp/PageDown来实现

需要修改一下鼠标的配置么?试试这个文件/etc/gpm.conf ,定位至 OPTIONS="" 然后在引号里面输入 -B 321 保存并在终端输入命令 sudo /etc/rc.d/init.d/gpm restart 呵呵,你的鼠标左右键功能就反过来,不过现在的Ubuntu 10.10不再使用这个机制管理了,在这里说明出来只是想告诉大家,在Linux中,只需要修改配置文件中的几个参数就可以快速的解决问题

说点直接的,默认Ubuntu不安装ssh的,需要sudo apt-get ssh安装这个软件包,成功后,那么我们就可以远程连接其他人的主机了~~~
 $ssh IPAddr  然后输入 yes进一步就会询问密码从而远程管理其他机器了。telnet的明文传输是的安全性受到很大威胁,所以斑驳在这里也不多做赘述

 

修改信息与查看文档

 

默认情况下普通用户的信息是不可以修改的,root用户也不会为了你去修改/etc/passwd里面的注释等等信息,虽然那并不是很麻烦,不过还是有一个比较有意思的命令哦,叫做chfn(CHange Finger iNformation),顾名思义就是用来修改finger查询是的信息,同时在/etc/passwd中生效。然后按照提示输入新的信息就可以了

也许你已经知道了有个whatis命令来帮你查看某个命令的简单功能接受,不过在这里斑驳推荐给你一个更牛力的命令,那就是apropos,呵呵,它其实可以由whatisgrep组合完成其功能,不过给初学者,还是这个来的舒服些,恩,使用的时候,apropos KeyWord 他就会帮你把你所需的关键字有关的命令名字回显到屏幕上,并且附有简单的功能描述信息。这一点上不得不看出Linux的人性化

查看手册的时候大家可能只停留在了 man CommandName 但是可能你不知道还能 man 配置文件或者是C语言函数名。 也许你觉得也没有什么好神气的,恩先介绍另外一个小命令,whereis CommandName,他会显示出这个命令的存储位置及其手册的绝对路径,自己看看那个路径就会发现,*\man?\* 对,man有的时候后面有数字的,恩,然后你使用 man ? CommandName 再一次查看文档的时候就会有新的发现喽

 如果是普通文本文档,又不是一个屏幕可以显示完全的话,推荐使用命令 less FileName(如果不是在当前目录的话,需要指明路径的;

 如果是 .gz 文档,在不解压的情况下,使用命令 zless FileName 直接查看,这可是GNU的好东西哦;
 如果是 网页文件,也就是 .html 或者 .htm,查看命令为 links FileName 就可以了;
 如果是PDF文档,呵呵,需要图形化界面了就,不过有了图形化界面,双击就可以自动关联打开程序的哦

 

shell

 

关于这个环节的内容实在是太多了,斑驳最近在整理我以前的Linux学习笔记(已完成,可查阅超级链接),日后会逐渐的发布出来,倒时间期待大家的捧场哦~
 不过在这里还是会提一些简单的概念,不能让大家白白的看俺的文章呀,至少要让大家有所收获,不是么

日后斑驳可能会在命令前面加上提示符 或者 ,他们表示不同执行权限,$表示的普通用户的权限,#指的是管理员用户的权限
 

如果你是正常登陆的时候,就会显示成为 $,如果斑驳出示的命令是以 #开头的话,需要在后面的命令前面加上 sudo 然后运行,意思是暂时使用管理员权限执行程序的意思

shell里面,其实就是TUI(字符界面),都是由命令来实现的操作,而Linux中每一个命令都有相信的解释和用法实例,其实如果你有耐心和不是很烂的英语功底,自学shell是没有问题的

学习shell命令可以通过man CommandName 也可以简单的使用 CommandName –help 来看帮助文档,如果已经安装的汉语包,大多数的命令也已经被汉化了,根据那些东西,你也许就能成为新一代的Shell高手,相信我,shell真的足够强大,不看看它,肯定会后悔~

如果你不喜欢使用Linux默认的Bash shell,可以使用 chsh -s /bin/tcsh 或者是 /bin/sh

需要看看环境变量吧,env就可以啦,需要看看PATH吧,在宿主目录的隐藏文件 .bash_profile 里面,语法规则是 $PATH 表示PATH环境变量,如果需要添加,赋值语句即可,分隔符是 而不是 

这里给出一个例子

 

    PATH=$PATH : /sbin : /Neo/batches/ 

 

修改之后别忘记保存文档,在下一次登陆便会生效,如果不想注销,在当前工作目录的命令行上输入 source .bash_profile 也可以导入这次的环境变量
 至于提示符内容的修改,推荐查看bash手册,内容比较丰富,

 

有闲心的话可以在命令行尝试一下 $ PS1=’$OSYPE iNeo ->’

 

至于shell命令斑驳在这里还是提上几个吧
 cdlscatcpmvrmmkdirgrepgziptar
 几个经典的文本编辑器 exvivimednanoemacs


 ~更新:斑驳已经完成的有关Linux笔记的整理工作,大部分的文章也已经在本博客中发布,如果有需要查阅,请点击我

 

vi

 

很显然这就是前面说的一个经典的文本编辑器,它的种种优势似的多年来招牌不倒,之前在博客中已经发布了一篇关于vi编辑器的文章,虽然内容还在给更新中,不过大致的东西都已经很全了,有兴趣的话,欢迎来查看,这里就放上那篇文章的链接地址喽~点击我 查看vi编辑器的文章 

 

权限

 

如果之前有用过ls命令的话,ls -l 或者 ll 可能会让你感到很迷惑吧
 恩,在字符界面好像不是那么直观的看出文件和文件夹,其实很简单的,注意一下最前面的东西吧

-rwxrwxrwx  或者是  drwxrwxrwx
 

如果你知道 Directory的意思是目录,也就是你可能更习惯叫他文件夹吧,那就说明后面的那个字符串描述的是一个文件夹了,因为最前面有一个d
 然后发现后面是三组相同的内容 rwx,恩 表示不同用户群体的权限,分别是 文件所属主、文件所属组、其他用户,具体来开,每一个rwx都是表示ReadWriteeXecutive也就是可读操作、可写操作、可执行的意思,如果某一个没有这个权限,就会使用 – 代替
 

如果你想修改其中九个不同的权限,涉及的命令是 chmod,然后需要指定位置是 a(all)u(user)g(group)o(other),接着是权限修改参数 +(赋予) -(取消) =(赋值),之后就是权限了 r w x ,到了最后需要指定要修改的文件名就行了。举个例子就是: chmod o+x opera.sh 意思就是说将opera.deb文件赋予其他用户可执行的权限。 不过chmod还有两个隐藏的参数,很有用,日后会透漏给大家哦

 

不过大多数Linux老鸟们常使用另外一种方式来修改权限,采用8进制的方式来管理,把rwx定义成为二进制的数位,有相应的权限就是1,没有就是0,转换成为八进制数,再将三个不同的用户群体的数字组合起来,便可以表示整个权限体系了。例如 -r-xr-xr– 的一个文件,对应的二进制数就是 0 101 101 100 把首位的0去掉,然后变成8进制就是 554,如果我们想把它的权限变成 -rwxrwxr-x,用同样的方法可以计算出8进制的表示方法,便是775,所需要执行的命令就是 chmod 775 FileName

 

如果哪天需要修改文件所属人的时候,那就需要chown命令了,具体的操作不是很困难,我就不费话了 哈

之前在shell那个话题中已经说过切换用户权限的方式来操作系统,需要声明一下,这样子就是在使用root用户,是很有危险的哦~如果哪天你已经很熟悉Linux的基础命令了,可以无痛的直接使用$ sudo -i来完全获得root的权限,提示符就会直接变成 ,但是需要提醒你,从此之后的操作都是可能直接摧毁整个文件系统结构的事情了,需要很谨慎的操作哦。

斑驳最一开始对命令就不是很了解,使用了一条类似 #mv -f /testSoftware /usr 的命令,直接将整个/usr目录覆盖了,嘿嘿, 根本不会修复,只能重新安装操作系统的惨痛代价哦~~

 

有关于创建、删除、管理用户等等一系列的操作,斑驳都会在日后发布的Linux-note文章的shell命令章节详细讲解,期待大家收看o~如果需要查看Ubuntu Learning I请点击我

 

 

更新:斑驳已完成关于管理方面的各种shell命令的日志文档,并发布到博客上了,需要直接查看管理用户命令的话,请点击我

 

最近斑驳的日子过得有点混沌,喜欢在感恩节前后大家的都是开开心心的,祝好
 斑驳敬上

 

奶牛 | 2010年11月29日
  • 斑驳.neo 2010年11月29日 at 1:31 下午
    斑驳.neo 就是 Neo 这样两个都是我,哈~
  • coasis 2010年11月29日 at 5:53 下午
    斑驳讲的有点跳跃啊,还在我有看过相关的东西,还能跟上。不过还是好东西,学习了~ 想深入学shell,不过最近做事都有点力不从心……
    • 斑驳.neo 2010年11月29日 at 5:56 下午
      哦 这样子啊,可能是我总是把好多东西都搁在一起的原因吧 shell东西很多呀,记得这篇文章上面有给出链接地址的,最近斑驳自己发布了点自己的学习笔记,可以通过链接查看到~ 多谢支持啦,嘿嘿,加油干,会好起来的
  • lk 2010年11月29日 at 9:59 下午
    学习有心无力, 烦啊, 对我无语
    • 斑驳.neo 2010年11月30日 at 8:31 上午
      大家都有这么个阶段,不想学习可以玩呀~最好搞出点名堂来,因为你会发现其实自己这么有才的
  • 流年 2010年12月1日 at 9:32 下午
    windows的cmd也很强大滴,只是我们很少使用而已
    • 奶牛 2010年12月1日 at 10:17 下午
      奶牛的cmd平时就光用来ping跟删除文件用了,悲情~~~
      • Neo 2010年12月2日 at 8:46 上午
        呵呵,大家都是选择最合适自己的方式来操作啦,cmd可以给我们的也就是几个简单的命令而已啦
    • Neo 2010年12月2日 at 8:45 上午
      类UNIX操作系统的任何发行版本的shell都是可以完成你想要计算机做的任何一件事情的,包括修改图形化界面 那我们回过头来看看Windows呢,只要图形化界面死了,谁都没有办法干了。而且cmd可提供的默认几个外部命令并不能满足大多数要求,斑驳以前搞了一年多的批处理,可以实现的功能还不及现在学一个月的bash shell
Comments are closed.