欢迎来到我的网站!

初识linux

LINUX操作系统

1991年林纳斯·托瓦兹发布的操作系统

LINUX操作系统是一个开放源代码的免费操作系统[1]。其内核由林纳斯·托瓦兹于1991年10月5日首次发布,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议,是一个性能稳定的多用户网络操作系统。

5张

基本信息

中文名LINUX操作系统

外文名Linux

发行版本Debian、Ubuntu、RedHat、Centos、Slackware、clearlinux.等

类别操作系统内核

特点免费、可靠、安全、稳定、多平台

发布时间1991年10月5日

创始人林纳斯·托瓦兹[2]

最新版本5.5

 

发展简史

LINUX操作系统Linux 操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX 操作系统、MINIX 操作系统、GNU计划、POSIX 标准和Internet 网络。

1981 年IBM公司推出微型计算机IBM PC。

1991年,GNU计划已经开发出了许多工具软件,最受期盼的GNU C编译器已经出现,GNU的操作系统核心HURD一直处于实验阶段,没有任何可用性,实质上也没能开发出完整的GNU操作系统,但是GNU奠定了Linux用户基础和开发环境。

1991年初,林纳斯·托瓦兹开始在一台386sx兼容微机上学习minix操作系统。1991年4月,林纳斯·托瓦兹开始酝酿并着手编制自己的操作系统。

1991 年4 月13 日在comp.os.minix 上发布说自己已经成功地将bash 移植到了minix 上,而且已经爱不释手、不能离开这个shell 软件了。

1991年7月3日,第一个与Linux有关的消息是在comp.os.minix上发布的(当然此时还不存在Linux这个名称,当时林纳斯·托瓦兹的脑子里想的可能是FREAX,FREAX的英文含义是怪诞的、怪物、异想天开等)。

1991年的10月5日,林纳斯·托瓦兹在comp.os.minix新闻组上发布消息,正式向外宣布Linux内核的诞生(Freeminix-likekernel sources for 386-AT)。

1993年,大约有100余名程序员参与了Linux内核代码编写/修改工作,其中核心组由5人组成,此时Linux 0.99的代码大约有十万行,用户大约有10万左右。

1994年3月,Linux1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议。

1995年1月,Bob Young创办了RedHat(小红帽),以GNU/Linux为核心,集成了400多个源代码开放的程序模块,搞出了一种冠以品牌的Linux,即RedHat Linux,称为Linux"发行版",在市场上出售。这在经营模式上是一种创举。

LINUX1996年6月,Linux 2.0内核发布,此内核有大约40万行代码,并可以支持多个处理器。此时的Linux 已经进入了实用阶段,全球大约有350万人使用。

1998年2月,以Eric Raymond为首的一批年轻的"老牛羚骨干分子"终于认识到GNU/Linux体系的产业化道路的本质,并非是什么自由哲学,而是市场竞争的驱动,创办了"Open Source Intiative"(开放源代码促进会)"复兴"的大旗,在互联网世界里展开了一场历史性的Linux产业化运动。

2001年1月,Linux 2.4发布,它进一步地提升了SMP系统的扩展性,同时它也集成了很多用于支持桌面系统的特性:USB,PC卡(PCMCIA)的支持,内置的即插即用,等等功能。

2003年12月,Linux 2.6版内核发布,相对于2.4版内核2.6在对系统的支持都有很大的变化。

2004年的第1月,SuSE嫁到了Novell,SCO继续顶着骂名四处强行“化缘”, Asianux, MandrakeSoft也在五年中首次宣布季度赢利。3月,SGI宣布成功实现了Linux操作系统支持256个Itanium 2处理器。

桌面环境

介绍

LINUX操作系统在图形计算中,一个桌面环境(Desktop environment,有时称为桌面管理器)为计算机提供一个图形用户界面(GUI)。但严格来说窗口管理器和桌面环境是有区别的。桌面环境就是桌面图形环境,它的主要目标是为Linux/Unix操作系统提供一个更加完备 的界面以及大量各类整合工具和使用 程序,其基本 易用性吸引着大量的新用户。桌面环境名称来自桌面比拟,对应于早期的文字命令行界面(CLI)。一个典型的桌面环境提供图标,视窗,工具栏,文件夹,壁纸以及像拖放这样的能力。整体而言,桌面环境在设计和功能上的特性,赋予了它与众不同的外观和感觉。

种类

现今主流的桌面环境有KDE,gnome,Xfce,LXDE等,除此之外还有Ambient,EDE,IRIX Interactive Desktop,Mezzo,Sugar,CDE等。

gnome

即GNU网络对象模型环境 (The GNU Network Object Model Environment),GNU计划的一部分,开放源码运动的一个重要组成部分。是一种让使用者容易操作和设定电脑环境的工具。

目标是基于自由软件,为Unix或者类Unix操作系统构造一个功能完善、操作简单以及界面友好的桌面环境,他是GNU计划的正式桌面。

Xfce

即XForms Common Environment,创建于2007年7月,类似于商业图形环境CDE,是一个运行在各类Unix下的轻量级桌面环境。原作者Olivier Fourdan最先设计XFce是基于XForms三维图形库。Xfce设计目的是用来提高系统的效率,在节省系统资源的同时,能够快速加载和执行应用程序。

Fluxbox

是一个基于GNU/Linux的轻量级图形操作界面,它虽然没有GNOME和KDE那样精致 ,但由于它的运行对系统资源和配置要求极低,所以它被安装到很多较旧的或是对性能要求较高的机器上,其菜单和有关 配置被保存于用户根目录下的.fluxbox目录里,这样使得它的配置极为便利。

Enlightenment

是一个功能强大的窗口管理器,它的目标是运用 户轻而易举地配置所见即所得的桌面图形界面。现在Enlightenment的界面已经相当豪华,它拥有像AfterStep一样的可视化时钟以及其它浮华的界面效果,用户不仅可以任意选择边框和动感的声音效果,最有吸引力的是由于它开放的设计思想,每一个用户可以根据自己的爱好,任意地配置窗口的边框、菜单以及屏幕上其它各个部分,而不须要 接触源代码,也不须要 编译任何程序。

任务命令

重启命令

LINUX操作系统1、reboot

2、shutdown -r now 立刻重启(root用户使用)

3、shutdown -r 10 过10分钟自动重启(root用户使用)

4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)

如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启

关机命令

1、halt 立刻关机

2、poweroff 立刻关机

3、shutdown -h now 立刻关机(root用户使用)

4、shutdown -h 10 10分钟后自动关机

如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启[3]

常用方法

LINUX操作系统1) 登录到服务器执行 lsb_release -a ,即可列出所有版本信息,例如:

[root@3.5.5Biz-46 ~]# lsb_release -a

LSB Version: 1.3

Distributor ID: RedHatEnterpriseAS

Description: Red Hat Enterprise Linux AS release 4 (Nahant Update 1)

Release: 4

Codename: NahantUpdate1

[root@3.5.5Biz-46 ~]#

这个命令适用于所有的linux,包括Redhat、SuSE、Debian等发行版。

2) 登录到linux执行cat /etc/redhat-release ,例如如下:

[root@3.5.5Biz-46 ~]# cat /etc/redhat-release

Red Hat Enterprise Linux AS release 4 (Nahant Update 1)

[root@3.5.5Biz-46 ~]#

这种方式下可以直接看到具体的版本号,比如 AS4 Update 1

3)登录到linux执行rpm -q redhat-release ,例如如下

[root@3.5.5Biz-46 ~]# rpm -q redhat-release

redhat-release-4AS-2.4

[root@3.5.5Biz-46 ~]#

这种方式下可看到一个所谓的release号,比如上边的例子是2.4

这个release号和实际的版本之间存在一定的对应关系,如下:

redhat-release-3AS-1 -> Redhat Enterprise Linux AS 3

redhat-release-3AS-7.4 -> Redhat Enterprise Linux AS 3 Update 4

redhat-release-4AS-2 -> Redhat Enterprise Linux AS 4

redhat-release-4AS-2.4 -> Redhat Enterprise Linux AS 4 Update 1

redhat-release-4AS-3 -> Redhat Enterprise Linux AS 4 Update 2

redhat-release-4AS-4.1 -> Redhat Enterprise Linux AS 4 Update 3

redhat-release-4AS-5.5 -> Redhat Enterprise Linux AS 4 Update 4[4]

命令参数

名称:halt

使用权限:系统管理者

使用方式:halt [-n] [-w] [-d] [-f] [-i] [-p]

halt命令说明:若系统的 runlevel 为 0 或 6 ,则关闭系统,否则以 shutdown 指令(加上 -h 参数)来取代

参数:

-n : 在关机前不做将记忆体资料写回硬盘的动作

-w : 并不会真的关机,只是把记录写到 /var/log/wtmp 档案里

-d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d) -f : 强迫关机,不呼叫 shutdown 这个指令

-i : 在关机之前先把所有网络相关的装置先停止

-p : 当关机的时候,顺便做关闭电源(poweroff)的动作

范例:

halt -p 关闭系统后关闭电源。

halt -d 关闭系统,但不留下纪录。

linux常用关机命令及其区别:

在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的,通过本文的介绍,希望你可以更加灵活的运用各种关机命令。

1.shutdown

shutdown命令安全地将系统关机。

有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linux与windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。

而在系统关机前使用shutdown命令﹐系统管理员会通知所有登录的用户系统将要关闭。并且login指令会被冻结﹐即新的用户不能再登录。直接关机或者延迟一定的时间才关机都是可能的﹐还可能重

启。这是由所有进程〔process〕都会收到系统所送达的信号〔signal〕决定的。这让像vi之类的程序有时间储存正在编辑的文档﹐而像处理邮件〔mail〕和新闻〔news〕的程序则可以正常地离开等等。

shutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevel。Runlevel 0被用来停机〔halt〕﹐runlevel 6是用来重新激活〔reboot〕系统﹐而runlevel 1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也没有-r参数给shutdown。要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些动作﹐你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。

shutdown 参数说明:

[-t] 在改变到其它runlevel之前﹐告诉init多久以后关机。

[-r] 重启计算器。

[-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。

[-h] 关机后关闭电源〔halt〕。

[-n] 不用init﹐而是自己来关机。不鼓励使用这个选项﹐而且该选项所产生的后果往往不总是你所预期得到的。

[-c] cancel current process取消正在执行的关机程序。所以这个选项当然没有时间参数﹐但是可以输入一个用来解释的讯息﹐而这信息将会送到每位使用者。

[-f] 在重启计算器〔reboot〕时忽略fsck。

[-F] 在重启计算器〔reboot〕时强迫fsck。

[-time] 设定关机〔shutdown〕前的时间。

2.halt—-最简单的关机命令

其实halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。

参数说明:

[-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。

[-w] 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。

[-d] 不写wtmp纪录〔已包含在选项[-n]中〕。

[-f] 没有调用shutdown而强制关机或重启。

[-i] 关机〔或重启〕前﹐关掉所有的网络接口。

[-p] 该选项为缺省选项。就是关机时调用poweroff。

3.reboot

reboot的工作过程差不多跟halt一样﹐不过它是引发主机重启﹐而halt是关机。它的参数与halt相差不多。

4.init

init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的用户进程﹑守护进程等。shutdown就是使用这种机制。init定义了8个运行级别(runlevel),init 0为关机﹐init1为重启。关于init可以长篇大论﹐这里就不再叙述。另外还有telinit命令可以改变init的运行级别﹐比如﹐telinit -iS可使系统进入单用户模式﹐并且得不到使用shutdown时的信息和等待时间。

常见问题

Oracle

出现乱码

把中文字体放到Oracle安装包的 jdk/jre/lib/font/fallback下就可以了。

对于使用Oracle图形化工具时出现的乱码问题:

把中文字体复制到 ~/.font下,然后执行:

$ sudo mkfontscale

$ sudo mkfontdir[5]

进程无故消失

1.磁盘满了,这个问题比较简单,只要清理一下磁盘就可以了。

2.tomcat在关闭的或是重启的时候,常常后台进程没有被关闭。需要用ps aux|grep java 这个命令查一下,把多余的进程关掉,再启动startup.sh

3.这种情况比较少见,就是在系统资源缺少的情况下,被系统自动DOWN掉,或是被其它软件干掉了。

其实在我这里,这样还是没有解决,进程还是莫名其妙会自己挂掉,日志也没有任何报错。后来打开tomcat主目录下的子目录conf里面的tomcat-users.xml文件,用户配置内容如下:

<tomcat-users>

<user name=“tomcat” password=“tomcat” roles=“tomcat” />

<user name=“role1” password=“tomcat” roles=“role1” />

<user name=“both” password=“tomcat” roles=“tomcat,role1” />

</tomcat-users>

全都关闭掉[6]

bash命令

1、没安装Bash的用户可以按照之前介绍的方法,先在设置→更新和安全→针对开发人员中选择“开发人员模式”,点击后会下载“开发人员模式包”,

linux bash命令

但有时这个包会下载不成功,

2、此时也无需担心,上一步如果不顺利,可以在后续步骤中弥补。此时进入控制面板→程序和功能→启用或关闭Windows功能,勾选“适用于Linux的Windows子系统(Beta)”,点击“确定”后安装,

3、安装后需要重启,然后打开命令提示符,执行如下命令即可开启(可直接在管理员模式下输入Bash命令开启):

C:windowssystem32bash.exe

4、如果第一步安装不顺利,此时可能就需要从商店下载所需组件,顺利与否还得看网络状况,测试中就遇到如下“鬼畜”情况:

5、由上图可见,下载安装的过程中需要用户创建Unix账户,因此要设定账户密码,在输入密码的过程中,密码文字不可见,需要输入两遍,你心里要有数,设置成功后就可以使用了

6、功能命令可用bash --help来查询,在使用的话要在前面加上“bash”,例如:

bash --debug

bash --init-file

bash --version

linux bash命令

7、如果要运行Linux命令,可采用如下格式(注意 c 和前引号间的空格,如上图):

bash -c "linux命令"

例如:

bash -c "echo Hello from IThome"

bash -c "ls /mnt/c"

bash -c "lsb_release -a"[7];

恢复密码

单用户模式

LINUX操作系统1、重启Linux系统,看到如下界面时按下“e”键。

2、按下“e”键之后我们会看到下面这个界面,再次按下“e”键。

3、按完上一次“e”键后我们来到了下面这个界面,如果出现的和本图不一样,就找到有kerner字样的那一行,然后再次按下“e”键。

4、我们会进到如下这个页面,在quiet后面空一个格然后输入single。

5、完成之后敲回车(即Enter键)会回到如下所示的界面,在这个界面按下“b”。

6、随即我们会进到这么页面。

7、输入如下类容表示进行root密码的更改,我们可以看到提示了个update successfully表示修改成功,然后输入reboot重启,就会进入到用户登录界面,输入刚才修改的密码就可以登陆了。

光盘恢复

1、假设我们无法使用第一种方式进行密码修复,将Linux安装关盘放入光驱,然后启动电脑我们会看到如下所示的页面。

2、然后输入图片上的内容,紧接着回车,系统将进入救援模式。

3、进入救援模式之后,要求我们选择语言一般我们默认回车确定就好。

4、选择键盘模式。

5、提示是否设置网卡信息,一般不设置,我们用tab键切换到no即可。

6、然后会到达这个界面,我们直接回车,它会自动去检测系统。

7、完成之后我们会看到如下界面,他会显示系统的挂载信息,我们直接回车选择OK就好。

8、然后照着键入如下内容就完成了,然后重启电脑就行了,注意在重启之前我们要断开与光驱的连接,然后就会进入用户登录界面,输入之前更改的密码就可以登陆了[8]

安装方法

一、安装与配置

虽说Git 预装在所有 Mac 和 Linux 电脑中,但预装的 Git 无一例外都版本陈旧。所以,无论你是使用Mac , Linux 还是 Windows ,都必须自己安装 Github。

GitHub安装过程在这里就不再赘述。安装完成之后,最重要的一步当然是配置 Git。

先执行以下命令:

$ git config --list

这条命令将会读取并显示 Git 的配置文件,包括个人身份信息和配色等各方面内容。

使用”git config”命令,你可以修改 Git 的配置文件来打造属于你的独一无二的工作环境。但首先,你必须配置你的用户昵称和邮箱。因为这些信息会嵌入到你提交的所有文件中。

执行以下命令配置,请注意,这条命令只能执行一次,因为 Git 将一直使用该信息来处理你在系统中所做的一切操作。如果你希望在一个特定的项目中使用不同的名称或e-mail地址,你可以在该项目中运行该命令但不附加 –global 选项。

$ git config --global user.name [name]

$ git config --global user.email

二、创建副本

在开始编辑你的项目之前,你需要从 Github 上面把你托管在云端的项目抓取到本地。

执行以下命令:

$ git clone [url]

这将在您的系统上创建与 GitHub 上 Git 储存库相匹配的文件夹结构。

GitHub 的提示:在一个库中,如果你按住“t”键,你将进行过滤搜索,用来查找与您搜索的文件名匹配的文件。因为 GitHub 是一个文本编辑器,所以你可以很方便的在其中改动内容并且直观的看到改变的结果。

在做出正式改变之前,最好先新建一个“分支”并在分支中工作。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。这将有利于你对一个大型项目做一些小的改动。

执行以下命令:

$ git branch feature/add-subtraction

$ git checkout feature/add-subtraction

这将创建一个新的分支,在分支上工作将允许你在本地迭代局部代码,而无需担心搞砸主线。如果你搞砸了,只需要放弃该分支,并重新创建一个基于主线的分支即可。

三、做出改变

如果想要知道当前目录所有还没有被git管理的文件,或者是被git管理且被修改但还未提交的文件,那么执行以下命令。

$ git status

你可以通过执行以下命令提交更改:

$ git commit src/main/java/com/github/Calculator.java -m “added subtraction”

该命令用于在沙盒提交更改,并同时附加“添加去除(added subtraction)”的消息。必须记住的是,这种变化仅仅是在本地机器上做出变更,你必须把变更推送到 GitHub 上。

要提交变更,执行以下命令:

$ git push origin feature/add-subtraction

现在你会看到一个新的分支列表,它列出了原有分支的增减变化。最后,如果你如果想把这些提交给管理员,你需要发送一个“拉取”的请求,让你的分支被拉取到主分支上。你发送的拉取请求可以通过在 GitHub 上启动一个关于在这个代码的特征会话来完成[9]

assert函数

assert宏的原型定义在《assert.h》中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:

#include 《assert.h》

void assert( int expression );

assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,

然后通过调用 abort 来终止程序运行。

请看下面的程序清单badptr.c:

#include 《stdio.h》

#include 《assert.h》

#include 《stdlib.h》

int main( void )

{

FILE *fp;

fp = fopen( “test.txt”, “w” );//以可写的方式打开一个文件,如果不存在就创建一个同名文件

assert( fp ); //所以这里不会出错

fclose( fp );

fp = fopen( “noexitfile.txt”, “r” );//以只读的方式打开一个文件,如果不存在就打开文件失败

assert( fp ); //所以这里出错

fclose( fp ); //程序永远都执行不到这里来

return 0;

}

[root@localhost error_process]# gcc badptr.c

[root@localhost error_process]# 。/a.out

a.out: badptr.c:14: main: Assertion `fp‘ failed.

已放弃

使用assert的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。

在调试结束后,可以通过在包含#include 《assert.h》的语句之前插入 #define NDEBUG 来禁用assert调用,示例代码如下:

#include 《stdio.h》

#define NDEBUG

#include 《assert.h》

用法总结与注意事项:

1)在函数开始处检验传入参数的合法性

如:

int resetBufferSize(int nNewSize)

{

//功能:改变缓冲区大小,

//参数:nNewSize 缓冲区新长度

//返回值:缓冲区当前长度

//说明:保持原信息内容不变 nNewSize《=0表示清除缓冲区

assert(nNewSize 》= 0);

assert(nNewSize 《= MAX_BUFFER_SIZE);

。。。

}

2)每个assert只检验一个条件,因为同时检验多个条件时,如果断言失败,无法直观的判断是哪个条件失败

不好: assert(nOffset》=0 && nOffset+nSize《=m_nInfomationSize);

好: assert(nOffset 》= 0);

assert(nOffset+nSize 《= m_nInfomationSize);

3)不能使用改变环境的语句,因为assert只在DEBUG个生效,如果这么做,会使用程序在真正运行时遇到问题

错误: assert(i++ 《 100)

这是因为如果出错,比如在执行之前i=100,那么这条语句就不会执行,那么i++这条命令就没有执行。

正确: assert(i 《 100)

i++;

4)assert和后面的语句应空一行,以形成逻辑和视觉上的一致感

5)有的地方,assert不能代替条件过滤[10]

使用FTP

ftp命令使用Sample

-bash-3.00$ ftp rws60001rems.us.oracle.com(连接另外一台主机)

Connected to rws60001rems.us.oracle.com (139.185.21.141)。

220 (vsFTPd 1.2.1)

Name (rws60001rems.us.oracle.com:app7740): xxxxx

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp》 ls

227 Entering Passive Mode (139,185,21,141,216,189)

150 Here comes the directory listing.

-rw-r--r-- 1 60202384 60402384 524 Aug 08 00:37 temp1.out

226 Directory send OK.

ftp》 pwd(ftp命令下也可以执行普通的linux命令,pwd,ls,cd…)

257 “/slot/ems2384/appmgr”

ftp》 ls temp1*

227 Entering Passive Mode (139,185,21,141,178,113)

150 Here comes the directory listing.

-rw-r--r-- 1 60202384 60402384 524 Aug 08 00:37 temp1.out

226 Directory send OK.

ftp》 get temp1.out(从另一台主机往本地下载文件)

local: temp1.out remote: temp1.out

227 Entering Passive Mode (139,185,21,141,126,148)

150 Opening BINARY mode data connection for temp1.out (524 bytes)。

226 File send OK.

524 bytes received in 0.0017 secs (3e 02 Kbytes/sec)

ftp》 put INVLTENT.plx_bk(从本机往另外一台主机上传文件)

local: INVLTENT.plx_bk remote: INVLTENT.plx_bk

227 Entering Passive Mode (139,185,21,141,109,145)

150 FILE: INVLTENT.plx_bk.1

226 File receive OK.

331776 bytes sent in 0.00457 secs (7.1e 04 Kbytes/sec)

ftp》 bye(退出)

221 Goodbye.

FTP命令详解

1. 连接ftp服务器

格式:ftp [hostname| ip-address]

a)在linux命令行下输入:ftp 10.18.34.115

b)服务器询问你用户名和口令,分别输入yint和相应密码,待认证通过即可。

2. 下载文件

下载文件通常用get和mget这两条命令。

a) get

格式:get [remote-file] [local-file]

将文件从远端主机中传送至本地主机中。

如要获取服务器上E:rose1.bmp,则

ftp》 get /rose/1.bmp 1.bmp (回车)

b) mget

格式:mget [remote-files]

从远端主机接收一批文件至本地主机。

如要获取服务器上E:rose下的所有文件,则

ftp》 cd /rose

ftp》 mget *.* (回车)

注意:文件都下载到了linux主机的当前目录下。比如,在 /root/yint下运行的ftp命令,则文件都下载到了/root/yint下。

3.上传文件

a) put

格式:put local-file [remote-file]

将本地一个文件传送至远端主机中。

如要把本地的1.bmp传送到远端主机E:rose,并改名为333.bmp

ftp》 put 1.bmp /rose/333.bmp (回车)

b) mput

格式:mput local-files

将本地主机中一批文件传送至远端主机。

如要把本地当前目录下所有bmp文件上传到服务器E:rose 下

ftp》 cd /rose (回车)

ftp》 mput *.bmp (回车)

注意:上传文件都来自于主机的当前目录下。比如,在 /root/yint下运行的ftp命令,则只有在/root/yint下的文件linux才会上传到服务器E:rose 下。

4. 断开连接

bye:中断与服务器的连接。

ftp》 bye (回车)[11]

at/crontab指令

要执行 at 指令,只要 at 时间,按下 enter ,再输入要执行的命令,结束时按下 ctrl+d 就可以排定一个 at 的排程。

at 的时间格式可以用 1 个数字(指定小时)、2 个数字(指定小时)、 4 个数字(指定时和分),时和分中间也可以用 : 分隔,如 03:45,另外可以在数字之后加上 am, pm 指定上下午,否则 at 会把时间视为 24小时制, 如 05:25pm。在 POSIX 中,有另外指几个特别的时间:

时间-time

时间的数字範围为 [00,59]。

midnight = 12:00 am (00:00)

noon = 12:00 pm

now = 指定执行 at 的时间

日期-date

年份所使用的数字是公元,一定是4 个数字。

指定月份和星期时,所使用的 word 决定于 LC_TIME 环境变数中所列的”月份”和”星期”名称或是其缩写。

日期要符合所指定的月份。

today = 今天

tomorrow = 明天

增加量-increment

可使用 minutes, hours, days, weeks, months, 或 years 等字,在使用时,以 + 号开头。

利用 at 指令所执行的命令,所使用的环境变数、工作目录、档案建立的 mask 等等变数,在真正执行排定的命令时,这些变数要和执行 at 指令时相同。

at 执行权限控制档案:

/usr/lib/cron/at.allow

/usr/lib/cron/at.deny

范例:

at 6pm

at moon

at today

at 02:00am

at 18:00

at 18:00

at 6pm today + 1 week 等同于 at 6pm today next week

at 6pm Jan 2 , 2005

at 6pm mon

at now

at 所要执行命令的时间过了的话,会等到下一次这个时间点出现的时候再执行,例如指定在今晚 6:00 执行,而现在是 7:00 的话,指令会在明天晚上 6:00 才执行。

要删除某个己排定的工作,使用 at -r at-job-id

在 gentoo 下,预设是没有 at 这个程式的,要先执行以下指令安装才行:

emerge -av at

/etc/init.d/atd start

而指令的 timespec 放在 /usr/share/doc/at-XX.XX/timespec.gz 说明档中。

Xsnow命令显示下雪

一、安装 xsnow

Xsnow命令Debian/Ubuntu/Mint 用户用下面的命令:

$ sudo apt-get install xsnow

Freebsd 用户输入下面的命令:

# cd /usr/ports/x11/xsnow/

# make install clean

或者尝试添加包:

# pkg_add -r xsnow

二、其他发行版的方法

Fedora/RHEL/CentOS 在 rpmfusion 仓库中找找。

Gentoo 用户试下 Gentoo portage,也就是emerge -p xsnow;

Opensuse 用户使用 yast 搜索 xsnow

三、我该如何使用 xsnow?

打开终端(程序 》 附件 》 终端),输入下面的额命令启动 xsnow:

$ xsnow

示例输出:

xsnow

你可以设置背景为蓝色,并让它下白雪,输入:

$ xsnow -bg blue -sc snow

设置最大的雪片数量,并让它尽可能快地掉下,输入:

$ xsnow -snowflakes 10000 -delay 0

不要显示圣诞树和圣诞老人满屏幕地跑,输入:

$ xsnow -notrees -nosanta

关于 xsnow 更多的信息和选项,在命令行下输入man xsnow查看手册:

$ man xsnow

使用Xsnow命令来让Linux桌面下雪,再配合上冬季主题或者是圣诞主题的壁纸,看着这样的桌面,仿佛置身于雪花飘飘的场景,效果非常逼真[12]

gulp报错

用gulp启动,错误如下:

Error: watch ENOSPC

at exports._errnoException (util.js:746:11)

at FSWatcher.start (fs.js:1172:11)

at Object.fs.watch (fs.js:1198:11)

at Gaze._watchDir (/home/ajaxGu/work/froad/anhui-standard/personal-h5/node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-watcher/node_modules/gaze/lib/gaze.js:289:30)

at /home/ajaxGu/work/froad/anhui-standard/personal-h5/node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-watcher/node_modules/gaze/lib/gaze.js:358:10

at iterate (/home/ajaxGu/work/froad/anhui-standard/personal-h5/node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-watcher/node_modules/gaze/lib/helper.js:52:5)

at Object.forEachSeries (/home/ajaxGu/work/froad/anhui-standard/personal-h5/node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-watcher/node_modules/gaze/lib/helper.js:66:3)

at Gaze._initWatched (/home/ajaxGu/work/froad/anhui-standard/personal-h5/node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-watcher/node_modules/gaze/lib/gaze.js:354:10)

at Gaze.add (/home/ajaxGu/work/froad/anhui-standard/personal-h5/node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-watcher/node_modules/gaze/lib/gaze.js:177:8)

at new Gaze (/home/ajaxGu/work/froad/anhui-standard/personal-h5/node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-watcher/node_modules/gaze/lib/gaze.js:74:10)

解决方案:

当前问题主要是因为gulp的watch需要监听很多文件的改动,但是fedora、ubuntu系统的文件句柄其实是有限制的,因此可以使用以下命令:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p[13]

apt命令

apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。

apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

apt 命令执行需要超级管理员权限(root)。

apt 语法

apt [options] [command] [package ...]

options:可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。

command:要进行的操作。

package:安装的包名。

apt 常用命令

列出所有可更新的软件清单命令:sudo apt update

升级软件包:sudo apt upgrade

列出可更新的软件包及版本信息:apt list --upgradeable

升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade

安装指定的软件命令:sudo apt install <package_name>

安装多个软件包:sudo apt install <package_1> <package_2> <package_3>

更新指定的软件命令:sudo apt update <package_name>

显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>

删除软件包命令:sudo apt remove <package_name>

清理不再使用的依赖和库文件: sudo apt autoremove

移除软件包及配置文件: sudo apt purge <package_name>

查找软件包命令: sudo apt search <keyword>

列出所有已安装的包:apt list --installed

列出所有已安装的包的版本信息:apt list --all-versions[14]

这是测试文本,单击 “编辑” 按钮更改此文本。

阅读剩余
THE END
底部友情链接
本站已平安运行
00000000