标签 命令行 下的文章

唷,唷,极客们!我们回来了,来完成最后一章的CLT。今天,我们将讨论一下任务控制。在这个里头,我们也将学习怎样来控制运行在我们计算机上的进程!

一个例子

正如我们所学的,我们可以直接在CLI中输入程序名称来运行该程序。例如,dolphin。如果我们输入:

dolphin

……dolphin,这个文件管理器,就打开了。如果在这个进程打开时你查看终端,你会发现不能访问命令提示符了,而且你也不能在同一个窗口中写一个新命令进去了。如果你终止dolphin,提示符又会出现了,而你又能输入一个新命令到shell中去了。那么,我们怎么能在CLI运行一个程序时,同时又能获得提示符以便进一步发命令。

dolphin &

……现在你让dolphin文件管理器在后台运行了,终端就可以空出来输入你需要的另外一个命令了。

现在,假设你忘了在dolphin后面输入‘&’字符,你只需要输入‘ctrl+z’,它会停止你的进程并把它放到空闲列表中去。要继续停止的进程,输入:

bg

……它会从后台重启进程。

jobs, ps

由于我们在后台运行着进程,你可以使用jobs或者使用ps来列出它们。试试吧,只要输入jobs或者输入ps就行了。下面是我得到的结果:

nenad@linux-zr04:~> ps
PID TTY          TIME CMD
8356 pts/1    00:00:00 bash
8401 pts/1    00:00:00 dolphin
8406 pts/1    00:00:00 kbuildsycoca4
8456 pts/1    00:00:00 ps

杀死进程

如果有个进程无响应了,怎么来处理掉它呢?可以使用kill命令。让我们在先前提到的dolphin进程上试试。首先,我们必须使用ps来鉴别该进程的PID。在我上述情况中,dolphin的PID是8401。那么让我们来杀死它,我只要输入:

kill 8401

……那么,它就把dolphin给杀死了。

kill的更多细节

kill的存在,不仅仅是为了终止进程,它最初是设计用来发送信号给进程。当然,有许多kill信号可以使用,根据你使用的应用程序不同而不同。请看下面的表:

务必试试这些信号。

结尾

我们以本节课来结束我们的CLT系列和周二必达,我希望其他像我这样的新手们能设法在他们的思想中摆脱控制台的神秘而学习掌握一些基本技能。现在对你们而言,所有剩下来要做的事,就是尽情摆弄它吧(只是别把“/”目录搞得太乱七八糟,因而你也不会诋毁什么东西了 :D)。

我们将在不久的将来看到其它更多的东西,因为有更多的系列文章来自这些文章的出处。别走开,同时……

……尽情享受!


via: https://news.opensuse.org/2014/08/12/command-line-tuesdays-part-eight/

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

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

嗨,极客们,我已经检查了我们的课程,今天我们在八章课程里的第七部分。这就是说下周二我们还有一次课程,但也是最后一次“命令行星期二”课程。所以,今天,我们讨论一些关于权限的问题!

众所周知,一台机器可能会有多名用户共同使用。为了保证用户之间互不干扰,就需要分配不同的权限。我们已经讨论了文件权限的问题,你可以轻轻点此回顾一下:

chmod

chmod命令被用来修改目录或者文件的权限。为了修改权限,首先你得输入chmod命令,之后你得输入规范的权限修改,然后你就可以把目录或者文件的权限修改成你想要的。这可以采用多种方式完成,但是肖茨先生喜欢八进制表示法。

把权限想象成一系列的位,每一个不为空的权限槽就是1,空的权限槽就是0。举个例子:

rwx = 111
rw- = 110

等等

看一下二进制表示法:

rwx = 111 --> in binary = 7
rw- = 110 --> in binary = 6
r-x = 101 --> in binary = 5
r-- = 100 --> in binary = 4

现在,如果你想把一个文件的权限改为:文件所有者和文件所有组拥有读,写,执行权限,但是其他用户没有该文件任何权限,我们可以这样做:

chmod 770 example_file

su 和 sudo

有些时候普通用户需要成为超级用户,这样才能完成一些任务(通常是一些安装软件任务)。为了暂时的获取超级用户权限,我们可以使用su程序,输入:

su

输入你的超级用户密码,你就成为超级用户了。但是,警告:别忘记用一会之后(不需要的话)就退出超级用户模式。

在openSUSE和Ubuntu也其它的一些可选工具,它叫做sudo,sudo只是在某些方面和su不同,它是分配给制定用户的特殊命令,不像su,你可以用你自己用户的密码执行sudo,而不需要超级用户密码,举个例子:

sudo zypper in goodiegoodie

修改文件和组所有权

想要改变文件的所有者,你可以在超级用户模式下运行chown,举个例子,如果我想把文件的所有权从‘nenad’改为‘suse’,我可以这样做:

su
[输入密码]
chown suse example_file

同样地,我也可以改变组的所有权,使用稍有不同的chgrp命令,很简单:

chgrp suse_group example_file

下一次

正如我所阐述的,下一次我们就会结束这个系列。在此之后,相信你会做出自己的选择,和我一起徜徉在终端的黑暗之中,只有一个绿色的闪烁光标作为灯塔。在那之前,极客们,记住

....享受更多的乐趣!


via: https://news.opensuse.org/2014/08/05/command-line-tuesdays-part-seven/

作者:Nenad Latinović 译者:su-kaiyao 校对:wxy

本文由 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中国 荣誉推出

对,你也许已经猜到了又是我们相见的时候了。这一次我们将会学习如何使用命令工作。因此,事不宜迟,我们直入正题吧。

肖茨先生指出,到现在为止,我们学习了一些神奇的命令及其参数和选项,而今天正是我们揭开他们那神秘面纱一角的一天。我们将会学习如下的一些命令及其作用:type, which, help和man。但是在此之前,我么先学习一下——

什么是命令?

我们可以将命令分为四个种类。

1)可执行的程序:命令可以是一个可执行程序。如果你在前面的课程中有遍历过你的系统,这也是你应该做的。你也许已经发现了/user/bin这个目录,你看到很多的像transmission-gtk, deluge-gtk等的名字。对我们新手来说,现在这些可以编译成二进制文件或者用脚本语言编写的可执行程序具体是什么并不太重要。重点是,他们是可执行文件,你可以运行它们。找到/user/bin这个目录,列出里面的文件,随便挑一个去运行它。

2)shell内置命令: bash提供了一系列的shell内置命令,例如,cd命令就是一个shell内置命令。

3)shell函数:内置于系统环境中的小型的shell脚本。现在我们简单的提及一下它,因为在后面的几个星期中我们将要学习它。

4)别名:你可以基于其他命令定义你自己的命令。我们也会在后面的课程中学习到。

现在,知道我们要处理的命令的哪一类是有意义的。我们可以使用type命令查看。

type

你可以使用type + command来查看你要使用的命令属于什么类型。你只要输入type command就可以得到命令类型的输出,如下:

type mkdir

或者

type ls

从上面例子可以看出‘ls’命令实际上是‘\_ls’的别名。(LCTT译注:不同机器上的别名定义可能不同,比如RedHat/Centos系列上,ls实际上是‘ls --color=auto’的别名,而这个‘\_ls’想必是openSUSE上的情况。)

which

有时(虽然在桌面系统中很少会出现这种情况),在一台机器中存在一个可执行程序的多个版本。为了找到某个可执行程序的准确位置,我们可以使用which命令。which命令只对可执行程序有用。

which transmission-gtk

如今,多数的命令都会附带说明文档,因此,当你在没有网络的的情况下使用命令行时,你不能在论坛或者IRC上提问,但是你又必须要知道某个命令的准确用法。此时你有两种解决方法,第一个是——

help

help命令对shell内置命令有用(在上面的第二类中我们有提到过)。所以,你可以选择一个shell内置命令为例,如cd,简单的输入help cd即可。你会得到一个有用的页面,去试一下看cd为我们提供了什么功能。该页面列出了该命令的用法和可选项(选项列在方括号中,表明它们是可选的,如果方括号中有垂直分隔符分隔某些选项,则这些选项是互斥的,不要同时使用他们!)

--help

(LCTT译注:Linux上的命令中,通常单字符参数前使用一个破折号,而多个字符的长参数则使用两个破折号,原文此处用的是“-help”,实际上这种情况很少,所以修正为“--help”)

help只对shell内置命令有用。但是很多的可执行程序有--help选项。其作用类似于help命令,但是你必须在你要查看帮助的命令后输入 --help。例如,transmission-gtk --help。试一下看在改该可执行程序中有什么可选项可以使用。

man

多数的可执行程序都提供一个正式发说明文档。你可以使用man命令查看这份说明文档。试一下只输入man program,看有什么输出。在你的系统中随便找一个程序去尝试一下。例如,我们试一下man transmission-gtk。你会打开了一个由目录分割的文件。这个文件包含该程序是什么、做什么和你可以怎样去使用它等的信息。但是这个文件并没有提供使用范例,因为它不是一个指导手册。(LCTT译注,man里面有时候也会带有一些范例,但是往往不会很详细,另外还有一个info命令,通常能得到更多的使用帮助。不过真正理解每个命令的各种用户,还是要多查阅各种资料,并亲自试验才行。)

这周我们就到先讲这里了。

我想再花一分钟来感谢大家对本节的建议和贡献。是你们让这个系列的文章变得越来越好,我希望在你们的帮助下,我们这些新用户在夏季结束前可以使用基本的命令行工具。你们是最棒的。像我一样的新用户们,我们都会感到失落,坚持到底,我们的付出总会有回报的!


via: https://news.opensuse.org/2014/07/15/command-line-tuesdays-part-five/

译者:cvsher 校对:wxy

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

Ncdu (NCurses Disk Usage) 是一个基于Ncurses库的du命令的界面。它通过大家熟知的du命令,为用户提供一个快速且容易被使用的界面。它可以显示磁盘使用的百分比,且允许你使用ncurses库的方式在目录之间导航。

安装

ncdu已经被移植到大多数linux发行版本,可从官方资源库中安装.

Arch / Manajaro 及其衍生版:

sudo pacman -S ncdu

Ubuntu / Debian / Linux Minut 及其衍生版:

sudo apt-get install ncdu

Fedora 及其衍生版:

sudo yum install ncdu

这里可以找到其他的发行版。

使用 ncdu

键盘操作:

  • up, k — 向上移动光标
  • down, j – 向下移动光标
  • right/enter — 打开选定的目录
  • left, <, h — 打开父目录
  • n — 按文件名排序(升序/降序)
  • s — 按文件大小排序(升序/降序)
  • C – 按项目数排序(升序/降序)
  • d – 删除选定的文件或目录
  • t — 排序时将目录放在文件前面
  • g – 以图形方式显示百分比

为使用ncdu,请打开终端并且运行

ncdu

开始扫描目录.

当扫描完成后,你能够很容易的看到文件/目录的大小.

确认删除文件:

这里 阅读ncdu命令手册或运行:

man ncdu

荣誉: 有两位读者BasketCaseSama Vim在阅读“Linux基础:如何在命令行中查看目录的大小”之后 向我们推荐了这个Ncdu工具。

Enjoy!


via: http://www.unixmen.com/ncdu-ncurses-disk-usage-analyzer/

译者:hunanchenxingyu 校对:wxy

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

这是写给Liunx新用户的一系列文章中的第一篇,在这系列文章我将会写一些对新用户来说非常好用的Linux基础命令

注意:本文的目标读者是仅有小量甚至是没有任何Linux命令行使用经验的读者。

作为一个Linux的新用户,我怎样可以在命令行终端中查看某个目录的属性?

要求

唯一的要求是du命令行工具。du基本上是所有Linux发行版本默认提供的工具。用以下的命令来检查你的系统中是否可以使用du命令:

man du

du 命令用于输出文件的空间使用情况。

使用du

不带任何参数的运行du命令会显示当前工作目录以及其子目录的文件名和所占用的空间大小(以字节为单位)。

du

使用-h参数以对用户友好的方式输出文件大小,即分别以K, MG来表示Kb,MbGb

du -h

若想查看某个特定目录的文件大小,则在du命令中指定要查看的目录名,如下:

du -h Mapmaker

使用 -c 参数来查看目录所占用磁盘空间的总大小

du -ch

使用 -s 参数只输出指定目录占用空间的大小

du -sh Mapmaker Sandbox

使用 man du 查看du命令更多参数的用法

man du

知道du命令更多的用法?请分享给我和其他人。


via: http://www.unixmen.com/linux-basics-find-size-directory-commands/

译者:cvsher 校对:wxy

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