分类 技术 下的文章

Pushbullet是一款iOS和Android设备与桌面系统互相传输文件、链接、图片的APP应用,Pushbullet可以在任何装有Firefox或Chrome 浏览器的操作系统上安装使用。

如果你不是浏览器扩展插件的粉丝,却依然想使用桌面应用Pushbullet in Ubuntu 14.04的话,你可以使用由 Atareao开发 的Pushbullet Indicator。 Pushbullet Indicator 小应用正在开发阶段,并不具备官方windows桌面版应用的所有功能, 但是已经足够大家入门使用了。

在Ubuntu 14.04 和 Linux Mint 17 下安装Pushbullet Indicator小应用

打开一个终端,并且使用以下命令

sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install pushbullet-indicator

以上个人软件包不支持运行在Ubuntu 13.10.版本

在Ubuntu 14.04 和 Linux Mint 17 下使用Pushbullet Indicator小应用

  • 创建一个Pushbullet账号
  • 在Android/iOS设备上安装Pushbullet
  • 在Ubuntu 或者Linux Mint系统安装Pushbullet Indicator小应用以后,运行。第一次启动时,会提供一些Pushbullet账号连接的选项。如图:

  • 当连接完成时,你也应该从下图设备标签中命名你的设备。如果你想Pushbullet在每次开机时自动启动,你可以在从preference设备中
  • 点击打开Autostart按钮自动启动(如上图所示)
  • 当你做完这一步,你会看见 Pushbullet indicator 小应用出现在Unity panel。

  • 点击indicator,选择想要向其发送数据的智能手机(已经连接到你的Pushbullet的设备)

  • 你将会在其他设备上接收到一个接收文件的通知。然后,你可以通过Pushbullet app应用获取所有的通知消息。
  • 安卓设备也可以接到来电、短信和其他类型的通知。
  • 如果你从你的移动设备向桌面发送一个文件的话,你将会接到以下通知。

  • 这些文件不会自动的保存在某个目录下。获取其他设备发送来的文件,可以去indicator目录查看最后推送(Show last push),显示你最后推送的。点击下载文件到你选择的目录中。

为Pushbullet安装Nautilus扩展

另一个可选的建议,你可以为Pushbullet安装Nautilus扩展,使它可以通过右键目录直接发送文件。使用以下命令安装。

sudo apt-get install nautilus-pushbullet

但是,在重启后你必须重新授权。

请在评论区分享你使用Pushbullet Indicator小应用的经验,朋友们,再见.


via: http://itsfoss.com/pushbullet-indicator-ubuntu/

作者:Abhishek 译者:lfzark 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Linux命令行,以及用户使用Linux命令进行Linux shell交互,是Linux最吸引人的地方,也是面试中最普遍的话题之一。在这篇文章中,我们将提出10个面试中很重要问题,这肯定能拓宽你的知识面。

Linux Command Questions

1. 如何暂停一个正在运行的进程,把其放在后台(不运行)?

答案:为了停止正在运行的进程,让其在后台(不运行),我们可以使用组合键 Ctrl+Z。(LCTT译注:如果希望其在后台运行,还需要使用bg命令并指定其Ctrl+Z得到的任务号,才可以在后台运行。)

2. 什么是安装Linux所需的最小分区数量,以及如何查看系统启动信息?

答案:单独一个“/”根分区足以执行所有的系统任务,但是强烈建议安装Linux时,需要至少三个分区:/、/boot 和 swap分区。一个IDE硬盘驱动器支持高达63个分区,SCSI硬盘驱动器支持超过15个分区。(LCTT译注:此处原文表述有误,径改)

为了检查启动信息,我们可以使用cat或者dmesg命令,如下所示:

#cat /var/log/messages

或者

#dmesg

3. 在你的Linux机器上跟踪系统事件的守护进程名是什么?

答案:'syslogd',它负责跟踪系统信息,并将跟踪日志存储在特定的日志文件里。

4. 在“/”根分区运行'fsck'命令的最低要求是什么?

答案:“/”根分区必须挂载为只读模式才能运行fsck,读写模式则不行。

5. 如何按层次结构复制/home目录到另一个目录?

答案:Linux的'cpio'命令可以实现效果。'cpio'可以按层次结构地复制文件和目录层次结构到另一个位置。(LCTT译注:实际上使用cpio的很少,而是使用cp -r较多)

6. 在Linux中,怎样实现日志文件的自动循环?

答案:'logrotate'提供日志自动循环功能(LCTT译注:将旧的日志切断,保存为.1,.2之类的文件名,并在下次切断时,逐个覆盖,并丢弃最老的)。

7. 怎样知道Linux中是谁在调度工作?

答案:使用'at'命令加上'-l'选项,就可以查出。

8. 如何在不解压tar包的前提下,查看包里的内容?

答案:使用'tar -tvf'。选项‘t’(显示内容),‘v’(详细报告tar处理的文件信息),‘f’(使用档案文件或者设备)

9. 什么是页面错误,它是怎么发生的?

答案:当一个程序请求内存中不存在的数据时,就会产生页面错误,导致的结果就是程序停止。(LCTT译注,此处page fault页面错误,和内存页未命中的页面错误,不是一回事。)

10. 什么是在程序中返回码?

答案:返回码是shell的特性。返回码显示了程序的状态,一个成功的程序执行后返回‘0’,&&可以用来决定那个应用程序先执行。(LCTT译注,据网友反馈,其实返回码不仅仅是Shell的特性,而应该是POSIX系统的系统级特性。)

好了,文章要结束了。不久以后,我还会在这分享其余有趣文章的,记得和我们保持联系。还有,别忘了在评论栏里面向我们提供您的宝贵意见。

(LCTT译注:本文写了太多译注,一方面有我们翻译校对不严谨的问题,另外原文也存在一些问题。网友们能火眼金睛指出问题,并不尽信书,这非常好。所以我重新校对了一遍,以期解决这些不足——如果还有不对之处,欢迎大家补充讨论。谢谢大家。)


via: http://www.tecmint.com/10-useful-interview-questions-and-answers-on-linux-commands/

原文作者:Avishek Kumar

译者:su-kaiyao 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

不管怎样,让我们继续我们今天的日程吧:输入/输出重定向。

我们已经用过的大多数命令,都把他们的结果张贴到了终端显示中。然而,我们也可以让这些命令的显示放进一个文件、设备中,或者作为其它命令的输入,一切都在重定向

标准输出

那么,命令行程序主要是怎么工作的呢?它们会将命令的结果丢给一个叫做标准输出的设备,然后,标准输出会将这些结果发送到你的显示设备上,这样你就可以畅快地阅读这些信息了。然而,你也可以让命令的结果显示到一个文本文件中,像这样,用“>”字符(我的例子):

man zypper > man.txt

这儿我所干的是, 我想要获得zypper的一个帮助页。但是,我想要把它放到一个文本文件中去,因而我可以在我需要他们的时候(例如,在论坛、IRC寻求帮助时)很方便地读取这些结果。所以,这个命令做的是,保存man zypper输出结果到我的家目录中的man.txt,这样你可以看到,我可以用gedit来打开它:

如果我重复了该命令,或者使用不同的命令重定向到了同名文件,那么它就会被一次又一次地覆盖。所以,在那种情况下,如果我想要把输出结果重定向并附加到现存文件中,我唯一能做的事情就是下一次使用“>>”来替换“>”。

标准输入

许多命令也可以接受来自称之为标准输入的设备的输入。默认情况下,输入来自键盘,然而也可以来自一个文件。要重定向它,使用跟前面相反的字符:‘<’。

请看下面的例子:

sort < man.txt

管道

要想把多个命令连接到一起,你可以使用管道。管道所要做的是,将一个命令的标准输出注入到另一个命令的标准输入。肖茨先生的最爱:

ls – l | less

通过使用‘| less’这个小把戏,你可以让任何命令滚动输出。 过滤器

过滤器

过滤器是管道中常用的程序。过滤器获取标准输入,对它进行操作,然后把结果发送到标准输出。它们可以以一种相当强大的方式处理信息。这儿提供了一个程序列表,大多数都是用作过滤器的。它们可以用于执行、查询,或者将帮助页重定向到它们,然后再重定向到一个文件!

过滤器:sort, uniq, grep (我们发现这一个东西遍布论坛,因此我建议大家深入研究一下), fmt, pr, head, tail, tr, sed, awk。

结束

我们只剩下几个课程来阐述CLI的基本用法了,到成熟期的时候,我希望大家都会对CLI兴趣会增多一点了,也希望大家在萧条期也进行一些探索!而在你们动手干的时候,我希望你们…… 玩得不亦乐乎!


via: https://news.opensuse.org/2014/07/30/command-line-somedays-part-six/

作者:Nenad Latinović 译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

img

嘿,伙计们!

在这篇文章中,我们将使用终端设置默认浏览器。

虽然,使用浏览器主界面来设置默认浏览器很方便,但是有时,你需要远程来操作。

要做到这一点,你只需打开终端,然后执行下述命令:

sudo update-alternatives --config x-www-browser

之后输入你想设置为默认浏览器的号码,这样就搞定了!

截图如下:

图片1

成功了吗?


via: http://www.unixmen.com/quick-tip-set-default-browser-debianubuntu-using-terminal/

译者:su-kaiyao 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

无盘启动意味着一台客户端电脑在启动操作系统时没有任何的磁盘存储介质。在这种情形之下,电脑能够通过网络从远程NFS服务器上加载内核和根文件系统。在这过程中可能会用到多种不同的方法来从NFS服务器上加载内核和根文件系统:RARP,BOOTP或是DHCP协议。在这个指导教程中,我会使用BOOTP/DHCP协议,因为它们能够被大多数的网卡所支持。

无盘计算机的优势

想象一下你的办公室内有30台电脑,每一台都需要使用相同的应用程序。如果你作为管理这些电脑的管理员,你会怎么做?如果你在每一台电脑上安装应用程序,那只是在浪费你的时间。另一方面来说,一套无盘系统就能解决你的问题。有了一套无盘系统,你只需在中央NFS服务器上安装需要的程序,然后通过网络启动这30台客户机即可。

需要什么

两台或更多的装备有支持DHCP协议的网卡的Linux电脑。这些将扮演NFS服务器角色的电脑应当配有硬盘,其它客户机不需要任何的硬盘。服务器和客户机需要连接到同一个本地网络之内。

设置一个无盘系统共需要五步。

  1. 安装所需的包
  2. 配置TFTP服务器
  3. 配置DHCP服务器
  4. 配置NFS服务器
  5. 启动无盘客户机

在这个指导教程中,我假设作为启动服务器的电脑运行的是 Ubuntu。如何你正在使用其它的Linux发行版,原理是一样的。

第一步:安装所需的包

像下面这样使用 apt-get 命令来安装所有需要的包。

$ sudo apt-get install dhcp3-server tftpd-hpa syslinux nfs-kernel-server initramfs-tools

第二步:配置TFTP服务器

TFTP服务器是一个小型FTP服务器,需要用它来在本地网络中的客户机和服务器之间自动传输启动文件。

向/etc/default/tftpd-hpa中添加以下行:

RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot/"

接着,创建一个启动文件夹。

$ sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg

复制引导程序镜像。

$ sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot

像下面这样创建一个默认启动配置文件。

$ sudo vi /tftpboot/pxelinux.cfg/default

LABEL Ubuntu
KERNEL vmlinuz
APPEND root=/dev/nfs initrd=initrd.img nfsroot=10.10.101.1:/nfsroot ip=dhcp rw

注意:

  • "root=/dev/nfs"表示服务器上的网络文件系统(不需要修改)。
  • "initrd=initrd.img"是一个用于系统启动的启动脚本。
  • "nfsroot=10.10.101.1/nfsroot"指明了服务器的IP地址以及NFS共享文件夹的名称。用你的服务器地址来替换掉IP地址。
  • "ip=dhcp"表示客户端电脑使用DHCP寻址方案。
  • "rw"表示NFS共享是可读/可写的。

最后,重启TFTPD服务。

sudo /etc/init.d/tftpd-hpa restart

第三步:配置DHCP服务

你还需要在NFS服务器上配置DHCP服务来允许使用/var/lib/tftpboot/pxelinux.0启动。假设你在使用10.10.101.0作为子网,你的配置可能看起来像下面这样子。

$ sudo vi /etc/dhcp3/dhcpd.conf

allow booting;
allow bootp;

subnet 10.10.101.0 netmask 255.255.255.0 {
    range 10.10.101.2 10.10.101.254;
    option broadcast-address 10.10.101.255;
    option routers 10.10.101.1;
    filename "/pxelinux.0";
}

然后重启DHCP服务。

$ sudo service isc-dhcp-server restart

第四步:配置NFS服务器

创建一个保存客户机根文件系统目录的文件夹。

$ sudo mkdir /nfsroot

接着,设置NFS服务器导出客户机根文件系统。向/etc/exports添加以下行来实现。

/nfsroot             *(rw,no_root_squash,async,insecure,no_subtree_check)

运行下列命令来重新载入修改过的/etc/exports。

$ sudo exportfs -rv

默认情况下,Ubuntu在initrd镜像中不提供网络启动支持。因此你需要创建一个新的initrd.img文件。首先添加下列行到/etc/initramfs-tools/initramfs.conf中。

BOOT=nfs
MODULES=netboot

然后运行下列命令来创建一个新的initrd.img。

$ sudo mkinitramfs -o /var/lib/tftpboot/initrd.img

将新的内核镜像文件复制到/var/lib/tftpboot中。

$ sudo cp /boot/vmlinuz-`uname -r` /var/lib/tfftpboot/vmlinuz

是时候将整个根文件系统拷贝到/nfsroot中了。

假设您使用的是一个全新的Ubuntu服务器安装,你只需将文件系统拷贝到NFS的根之中。

$ sudo cp -ax / /nfsroot

然后通过文本编辑器打开/nfsroot/etc/fstab 并添加以下行。

/dev/nfs       /               nfs    defaults          1       1

文件夹/var/lib/tftpboot应拥有全局读写权限。否则客户机无法从网络启动。

$ sudo chmod -R 777 /var/lib/tfftpboot

最后,为了避免任何服务器设置出现错误,我推荐对运行DHCP服务的网卡使用静态IP。举个例子,如果网卡名为eth0,你的/etc/network/interfaces中的配置应该看起来像这样:

iface eth0 inet static
    address 10.10.101.1
    netmask 255.255.255.0
    broadcast 10.10.101.255
    network 10.10.101.0

第五步:启动无盘客户机

在您完成了服务器上的配置之后,从网络启动你的客户机。要从网络启动一般你只需修改BIOS设置中的启动优先顺序即可。

如果客户机启动成功,您的无盘环境就配置好了。无需做任何修改就可以任意添加一台或多台客户端电脑。


via: http://xmodulo.com/2014/06/diskless-boot-linux-machine.html

译者:alim0x 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

怎样将两个布局相似的目录树合并成一个新的目录树?为理解该问题让我们思考下面的例子。

假设 dir1 和 dir2 目录中分别有3个子目录a,b和c.目录布局如下所示:

Layout of input directories 输入目录布局

在目录a,b和c中有一些文件,tree命令的输出将能更好的说明:

Layout of files 文件布局

1. 使用cp命令创建合并:

现在我们将这两个目录合并成一个名为"merged"新的目录中.完成上述操作最简单的方式就是递归复制目录,如下图所示:

Copy directories recursively to create new merge 递归复制完成新的合并

1.1 cp命令和替换带来的问题:

这种方式所带来的问题是该合并目录中所创建的文件为原文件的副本,并非原文件本身.别急, (你可能正在问自己) 如果不是原文件又有什么问题? 要回答你的问题,考虑下你有很多大文件的情况.那种情形下,复制所有的文件可能花费数小时。

现在让我们回到刚那问题上,且尝试使用mv命令而不是cp命令。

Attempt to merge with mv command 企图使用mv命令进行合并操作

这些目录不能被合并.因此我们不能像这样使用mv命令去合并目录. 现在你该怎样将原文件保存到"merged"目录中?

2. 解决方法:

cp命令有一个非常有用的选项来帮助我们摆脱这种状况. cp命令的-l 或 --link选项能够创建硬链接而非原文件副本.让我们尝试一下。

在我们尝试cp命令的硬链接选项前,让我们查看一下原文件的inode号码. 可通过tree命令--inodes选项来查看inodes:

Display inodes of original files 原文件的inodes

现在我们有了inodes的列表,对于cp命令可通过--link选项创建硬链接:

Merge directories with hard links 使用硬链接合并的目录

2.1 验证文件:

现在文件已经被复制,让我们验证一下inodes是否和原文件匹配:

Verify Inodes Verify Inodes

2.2 清除:

正如你所看到的,这些文件的inodes和原文件的一样。现在问题已经解决,且原文件已被复制到合并目录中.现在我们能够移除dir1和dir2目录。

Remove original directories 移除原始目录


via: http://linoxide.com/linux-command/merge-directory-trees-linux/

原文作者:Raghu

译者:hunanchenxingyu 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出