您的位置:首页 > 运维架构 > Linux

ARM Linux教程之三:快速入门使用Ubuntu Linux系统

2014-03-12 17:47 309 查看
接下来,我们就开始实质操作了,首先来认识ubuntu linux系统。我们接下来主要用到的是两个功能,一个是ubuntu里面的文件系统,另一个就是terminal终端。

文件系统

打开ubuntu,输入用户名和密码登录后,任务栏中选择“Places” > “Home Folder” 打开就可以打开ubuntu的文件管理器(相对于windows中的“我的文档”类似)了。(建议将“Home Folder”图标拖动放置到桌面上)。





如上图,这些包含了一些文件和目录,我们可以把文件保存在目录中,把数据保存在文件内。下面我们先普及一下ubuntu的文件系统的一些基础知识。

与 Windows 中“分区——文件夹——文件”的文件结构不同,Linux 中的文件结构只有“目录——文件”两级。/(根目录)是 Linux 目录树的起点,分区被挂载到根目录之下的子目录。

根目录下的子目录都有一定的意义,我们需要了解一些重要目录的作用:
/:根目录,就一个斜杠表示。
/home:所有用户的家目录,存放着用户的数据和配置。系统中各位用户在该目录下有不同的家目录,其目录名就是对应的用户名。
/media:Windows 分区和可移动设备的挂载点,比如U盘、DVD软盘等。
/usr:系统大部分程序都被安装在该目录。
/etc:系统级配置所在之处。
/tmp:系统临时文件存放之处。
其他目录简介
/bin:基本命令
/boot:Linux内核,重启载入文件
/dev:设备文件
/lib:共享库,内核模块
/lost+found:系统恢复文件目录
/mnt:本地/远程文件系统的常规挂载点
/opt:Add-on软件包
/proc:内核信息,进程控制
/root:超级用户(root)目录
/sbin:系统命令
/srv:系统服务信息
/sys:内核使用设备的实时信息

Linux 权限基础

在 Linux 中,所有文件都具有权限,文件权限分为读取(r)、写入(w)和执行(x)三种类型。对于程序文件而言,只有赋予了可执行权限才能执行。

每个文件都有三组权限加以管理,是所有者、群组和其他,分别规定了文件所有者、文件所有者所属群组,以及其他用户的权限。

文件权限只能限制普通用户对文件的访问、修改和执行,超级用户 root 可以访问系统上的任意文件。
录,建议大家把自己的数据文件存放在对应目录之中。

在 Linux 中,以.开头的文件和目录在默认情况下是不显

Linux 用户

Linux中主要有3中用户,

根用户(root account) 
普通用户(regular-user account)
超级用户(super-user account)

在一些Linux系统中,有一个默认帐号root用户,命令行提示符为“#”。当你处于root用户使用状态时,可以对系统进行任何修改。

Ubuntu中的默认设置为,在终端执行命令时为普通用户,命令提示符为“$”,当需要执行一些可能造成不可修复更改的系统命令时,在命令行前加sudo给予该普通账户以超级用户的权限。然后被提示输入超级用户密码,即可执行诸如安装程序,卸载程序等命令。

当然,如果想在Ubuntu系统中使用根用户帐号有两种方法:

第一种是:启动根用户(root account),在终端输入sudo passwd,然后提示输入根用户的用户名和密码。根用户(root account)被启用。

第二种方法是:不启用根用户(root account),而是在当前用户下进入命令行根提示符。方法是在终端输入sudo -i,然后输入密码。这个时候即可在终端看到根用户提示符(#)。

终端和命令

打开ubuntu,输入用户名和密码后,任务栏中选择“application” > “Accessories” > “Terminal”打开终端。(可以直接拖动将终端图标放置到桌面上,然后双击打开)。



在终端里面,我们最最常用的命令有以下9个命令,记住他们就基本差不多了:
ls--显示目录内容
cd---切换目录
sudo--切换到root权限
apt-get--软件包管理
chmod--权限切换
ifconfig--网络设置
mkdir--创建目录
cat--显示文件内容
vi--修改文件内容

下面我们打开terminal,依次键入如下命令,感受这些基本命令的功能。(注意,一下#号后面是注释,打入命令时不用输入)

$ cd /                     #注释:切换到根目录/
$ ls                       #显示目录内容
$ sudo mkdir works         #sudo来使用root权限新建名为words的目录,会提示输入用户密码,输入后按回车即可,界面不显示输入内容。
$ ls                       #显示目录内容,可看到多了一个works目录


再继续输入如下命令

$ cd works/                 #切换到works目录
$ vi hello.txt              #!!!没有使用root权限,创建会失败,可以跳过!!!
$ sudo vi hello.txt         #创建 hello.tx文档,命令回车后会切换到vi视图,按下i,插入内容,再按ESC返回vi命令,输入":wq"保存退出
$ cat hello.txt             #显示目文件的内容
$ sudo chmod +x hello.txt   #更改文件权限为可执行。这里只作为示范,没有实际用途,以后的程序将用到。


vi中界面按“i”,然后输入内容,输入完成后按ESC返回vi命令控制,输入“:wq”回车保存退出。

最后一条,输入ifconfig命令,查看网络参数,如下,可以看到MAC物理地址和IP地址。

$ ifconfig




常用命令

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彩蛋:) <仅限于UBUNTU 8.04>

man apt        —-最后会看到 “本apt有着超级牛力” or “this APT has a super-cow power”

man aptitude    —-会看到 “这个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的用法,例如chmod 751 myfile #将该文件权限设定为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,netmask addr,…等等很多参数 =.=

ln:

为文件建立链接

linux的链接分为两种:硬链接和软链接,ln默认建立硬链接(hard link),两种的区别请自己搜索:)

最常用参数:

-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: 库函数调用(例如 man 3 printf),先装manpages-dev先

…….

当你执行man ls 时, 和 man 1 ls结果是一样的,因为ls在man手册中只有一个入口

当你想看chmod调用的手册页时,就要特别指定 man 2 chmod了~~因为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 | grep eva #列出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 -xjvf myfile.tar.bz2

-t        —-列出包中的文件列表

—–打包时常追加的参数:

-r        —-追加到压缩包中

-u        —-只把比包中更新的文件追加进去

-h        —-不把符号链接添加到包中,而是添加此符号链接指向的文件

附加说明:tar是个太强大的东东,常用的操作也就是打包解包,高级功能还是参阅man =.=

touch:

改变文件时间戳,默认包括修改时间和创建时间,默认修改为当前时间,默认如果文件不存在就新建(=.=是不是很罗嗦)

额“差不多就收集了这么多,感谢Ubuntu Linux群(46603737),分群(514034120)众菜的帮助

本文的目的很明确,只方便菜鸟,不收录高级命令
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息