分类 技术 下的文章

当你不确定你所运行的命令,尤其是那些使用了许多选项的复杂命令时,你会怎么做?在这种情况下,我们使用man pages来获取帮助。还有一些其它的选择可能包括像‘help’,‘whereis’和‘whatis’这样的命令。但是所有的这些既有优点,也有缺点。

当我们浏览man pages来查看选项和帮助的时候,里面的描述实在太冗长了,我们无法在短的时间里理解它的意思。

Linux Man PagesLinux Man Pages

同样,‘help’命令可能也不会给你期待的答案。

Help CommandHelp Command

whereis’命令几乎不给你任何信息,除了安装二进制文件的位置(有些时候可能是重要的)

Whereis CommandWhereis Command

whatis’命令给出一套很严格的答案,它除了说出所查询命令的作用,并没有什么太大帮助。而且,它从来不说明可用的选项。

Whatis CommandWhatis Command

直到在困难中解决问题前,我们已经使用了以上全部选项,但是现在来了一个交互式的备忘录应用程序‘cheat’,它将在其余的命令中脱颖而出。

什么是cheat?

cheat是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。它提供显示Linux命令使用案例,包括该命令所有的选项和简短但尚可理解的功能。

Cheat: Provides Easy Command Options

Cheat:提供简单命令选项

在Linux系统中安装‘Cheat’

Cheat’有两个主要的依赖——‘python’ 和 ‘pip’,在安装‘cheat’之前,确保你的系统安装了python和pip。

Install Python

# apt-get install Python (基于Debian的系统)
# yum install python (基于小红帽的系统)

Install Pip

# apt-get install python-pip (基于Debian的系统)
# yum install python-pip (基于小红帽的系统)

Note:pip是一个简单的安装替代,是一个有极大改进的Python第三方包安装器。

下载并安装Cheat

我们将通过Git下载‘Cheat’,确保你安装了‘git’包,如果没有最好安装一下。

# apt-get install git (基于Debian的系统)
# yum install git (基于小红帽的系统)

接下来,通过运行下面的命令来安装所需要的python依赖包。

# pip install docopt pygments

现在,复制cheat的Git库

# git clone https://github.com/chrisallenlane/cheat.git

进入cheat目录,运行‘setup.py’(一个python脚本)。

# cd cheat
# python setup.py install

如果安装很顺利,你就能够看到安装在系统上的cheat版本了。

# cheat -v
cheat 2.0.9

cheat的一些必要配置

你必须在‘~/.bashrc’文件里设置‘EDITOR’环境变量,打开用户‘.bashrc’文件,然后把下面这行加入到里面:

export EDITOR = /usr/bin/nano

你可以使用你喜欢的编辑器来替代‘nano’。保存文件然后退出,再次登录以确保修改生效。

接下来,添加cheat的自动补全特性,来确保不同解释器下命令行的自动补全。为了到达该功能要求,简单地将‘cheat.bash’脚本clone下来,然后复制到你系统正确的路径下。

# wget https://github.com/chrisallenlane/cheat/raw/master/cheat/autocompletion/cheat.bash 
# mv cheat.bash /etc/bash_completion.d/

NOTE:团队已经在Git上上传了其他解释器的自动补全脚本,这些都可以被克隆,然后用在不同的解释器上。使用下面的链接,以找到其余解释器的自动补全脚本:

不仅如此,如果需要的话,你也可以使用语法高亮。要想做到这一点,在你的‘.bashrc’文件中添加‘CHEATCOLORS’环境变量。

export CHEATCOLOR=true

Cheat应用默认只提供最基本和最常用的命令。cheat备忘单的内容保存在~/.cheat/.目录里,我们可以手动在这个目录添加备忘单里面的内容,这样,我们的cheat应用将更强大。

# cheat -xyz

这将打开xyz备忘单,如果没有的话就会创建一个。备忘单将使用.bashrc里设置的默认编辑器打开,默认编辑器就是在上面.bashrc所设置的。

一些Cheat命令的使用

一个包可以是 *.gz , *.bz2 , *.zip , *.xz,可是什么情况下用哪些选项呢?

tar command optionstar命令选项

除非在不同的地方咨询和核对后,我才使用dd命令,在此之前,无论我对这个命令多么的肯定,我从不使用它。现在,事情就变得简单多了。

dd command optionsdd命令选项

uname’命令帮助

uname command optionsuname命令选择

一个简短的ifconfig命令操作教程

ifconfig command optionsifconfig命令选项

‘top’命令,对管理员和普通用户来说,是最重要的命令之一。

top command optionstop命令选项

我们来骗骗cheat命令,如何(尽管别有意义)?得到一个可用命令的列表,其实就是安装在你系统里的cheat备忘录。

List All Linux Commands列出所有Linux命令

使用关键字搜索备忘单。

Search Cheat Sheet搜索备忘单

来看看包含所有命令的内置备忘单。

$ cheat -d

/home/avi/.cheat
/usr/local/lib/python2.7/dist-packages/cheat/cheatsheets

复制内置的备忘单到你的本地目录。

# cp /usr/local/lib/python2.7/dist-packages/cheat/cheatsheets/* /home/avi/.cheat/

结论

这个超棒的工具在许多情况下担任“救世主”的角色,它给予你需要的信息,信息不冗余,不模糊,相反地,却击中要点。这是每个人都会需要的工具,很简单就能创建、安装,使用和理解,这个工具前途无量。

这个Git仓库已经添加了一个精彩的gag,这里我不打算去解释它,而留给各位来解释。

Linux Gag Linux Gag

好了,文章就要结束了,我会带着下一篇你们喜欢的有趣文章回到这里的,在此之前,要时刻关注我们。别忘了在下面的评论部分给我们留下您宝贵的反馈信息。


via: http://www.tecmint.com/cheat-command-line-cheat-sheet-for-linux-users/

作者:Avishek Kumar 译者:su-kaiyao 校对:Caroline

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

DigitalOcean是云VPS主机市场中最炙手可热的新生儿。虽然没有提供像Amazon之类一样的综合服务业务,但DigitalOcean定位于中小型企业和开发者,已经成为基于Linux的最佳云VPS服务的强有力竞争者,这都得归功于它们具有竞争力的价格和用户友好的管理界面。

不管什么时候,当你需要一个面向网络的服务器用于你的个人项目,你都可以全速开动一个“水滴”(DigitalOcean中VPS实例的昵称),也可以在你不需要时杀掉它,没必要为了让你的VPS保持运作而烧光了你的钱袋。尽管DigitalOcean基于网络的管理界面已经十分高效,但对于那些命令行界面的死忠派,它还是提供了基于命令行界面的水滴管理工具,它叫tugboat。多亏了这个命令行工具,所有复杂的水滴管理任务都可以简单地转变成一个脚本来完成。

在本文中,我打算讲述怎样使用tugboat来从命令行对DigitalOcean水滴进行管理

在Linux上安装tugboat

在Debian,Ubuntu或者Linux Mint上安装tugboat:

$ sudo apt-get install ruby-dev
$ sudo gem install tugboat 

在Fedora上安装tugboat:

$ sudo yum install ruby-devel
$ sudo gem install tugboat 

要在CentOS上安装tugboat,首先安装或升级到最新的Ruby,因为在CentOS 6.5以及更早的版本上,默认的Ruby不满足Tugboat所需的最小版本(1.9及更高版本)。安装Ruby 1.9及更高版本后,请按如下方式安装tugboat。

$ sudo gem install tugboat 

tugboat首次使用配置

在安装完后,就该进行一次配置,其中包括授权tugboat访问DigitalOcean帐号。

转到https://cloud.digitalocean.com/api_access,并创建新的API密钥,记录客户ID和API密钥。

通过运行以下命令来启动授权过程:

$ tugboat authorize 

在提示你输入客户ID和API密钥时,请输入。它会询问几个其它问题,目前你可以接受默认的回答。我们将会在后面自定义默认设置。

现在,让我们自定义默认水滴设置,以反映你典型的使用状况。要做到这一点,首先检查水滴提供的可用设置项(如,可用的镜像、区域、大小)。

运行以下命令,它会列出可用的水滴镜像。选取使用一个默认镜像,并记录相关的ID。

$ tugboat images --global 

类似,从可用区域中选取一个默认的地理位置:

$ tugboat regions

同时,从可用的RAM大小中选择一个默认的水滴大小:

$ tugboat sizes 

现在,把你的默认选择放到~/.tugboat中。例如,我在这里自定义了默认设置:区域在纽约,系统是Ubuntu 14.04,内存512MB。如果你想要通过密钥验证启用SSH,设置“ssh\_user”为root,这个我很快会讲到。

$ vi ~/.tugboat 

---
authentication:
  client_key: XXXXXXXXXXXXXXXXXXX
  api_key: XXXXXXXXXXXXXXXXXXXX
ssh:
  ssh_user: root
  ssh_key_path: /home/dev/.ssh/id_rsa
  ssh_port: '22'
defaults:
  region: '4'
  image: '3240036'
  size: '66'
  ssh_key: ''
  private_networking: 'false'
  backups_enabled: 'false'

创建并添加SSH密钥到DigitalOcean

要访问水滴实例,一个安全的方式是通过密钥验证的SSH连接到该实例。

事实上,你可以通过使用DigitalOcean来注册SSH公钥,为你的水滴实现自动启用密钥验证。下面告诉你怎么做。

首先,生成一个公/私密钥对(如果你还没有)。

$ ssh-keygen -t rsa -C "[email protected]"

假设生成的密钥对由~/.ssh/id\_rsa(私钥)和~/.ssh/id\_rsa.pub(公钥)构成,去将你的公钥上传吧,命令如下:

$ tugboat add-key [name-of-your-key] 

你可以任意给你的密钥命名(如,“my-default-key”)。当出现提示时,输入公钥路径(如,/home/user/.ssh/id\_rsa.pub)。在密钥上传完成后,运行以下命令来验证密钥是否正确添加:

$ tugboat keys 

密钥也应该出现在DigitalOcean的SSH密钥页。如果你想要密钥自动使用到水滴中,添加密钥ID到~/.tugboat中。

ssh_key: '182710'

Tugboat的基本用法

这里列出了tugboat命令行的一些基本使用情况。

  1. 使用默认设置创建新水滴。
$ tugboat create
  1. 列出所有活动水滴。
$ tugboat droplets
  1. 显示水滴的信息。
$ tugboat info

  1. 关闭水滴,并移除镜像。
$ tugboat destroy
  1. 关闭水滴,但保持镜像
$ tugboat halt
  1. 为水滴创建快照,水滴必须先关闭。
$ tugboat snapshot
  1. 调整水滴大小(增加或减少RAM大小),水滴必须先关闭。
$ tugboat resize -s

如果你想要了解特定命令的更多选项,运行:

$ tugboat help <command> 

排障

  1. 当我运行tugboat命令时,它出现以下错误。
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': /usr/lib/ruby/gems/1.8/gems/tugboat-0.2.0/lib/tugboat/cli.rb:12: syntax error, unexpected ':', expecting kEND (SyntaxError)

Tugboat要求Ruby 1.9及更高版本,你需要升级Ruby来解决该问题。对于CentOS,请参考此教程

  1. 当我试着用gem来安装Tugboat时,出现了下面的错误。
/usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- json/pure (LoadError)

安装以下gem来修复该问题。

$ sudo gem install json_pure 

via: http://xmodulo.com/2014/07/manage-digitalocean-vps-droplets-command-line-linux.html

原文作者:Dan Nanni

译者:GOLinux 校对:Caroline

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

问题:我安装了一个程序到/usr/local/bin目录下,这个程序需要root权限才能执行,当我用sudo去执行它时,收到"sudo: XXXXX: command not found"的错误提示,不知道为什么/usr/local/bin没有被包含到PATH环境变量下面来,我该如何解决这个问题?

当你使用sudo去执行一个程序时,处于安全的考虑,这个程序将在一个新的、最小化的环境中执行,也就是说,诸如PATH这样的环境变量,在sudo命令下已经被重置成默认状态了。所以当一个刚初始化的PATH变量中不包含你所要运行的程序所在的目录,用sudo去执行,你就会得到"command not found"的错误提示。

要想改变PATH在sudo会话中的初始值,用文本编辑器打开/etc/sudoers文件,找到"secure\_path"一行,当你执行sudo 命令时,"secure\_path"中包含的路径将被当做默认PATH变量使用。

添加所需要的路径(如 /usr/local/bin)到"secure\_path"下,在开篇所遇见的问题就将迎刃而解。

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

这个修改会即刻生效。


via: http://ask.xmodulo.com/define-path-environment-variable-sudo-commands.html

译者:nd0104 校对:Caroline

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

近来很多知名企业都出现了密码泄露,业内对多重认证的呼声也越来越高。在这种多重认证的系统中,用户需要通过两种不同的认证程序:提供他们知道的信息(如 用户名/密码),再借助其他工具提供用户所不知道的信息(如用手机生成的一次性密码)。这种组合方式常叫做双因子认证或者两阶段验证。

为了鼓励广泛采用双因子认证的方式,Google 公司发布了 Google 身份验证器 Google Authenticator ,一款开源的,可基于开放规则(如 HMAP/ 基于时间)生成一次性密码的软件。这是一款跨平台软件,可运行在 Linux、 AndroidiOS。Google 公司同时也支持插件式鉴别模块PAM (pluggable authentication module),使其能和其他也适用 PAM 进行验证的工具(如 OpenSSH)协同工作。

在本教程中,我们将叙述集成 OpenSSH 和 Google 提供的身份验证器实现如何为 SSH 服务设置双因子认证。我将使用一款 Android 设备来生成一次性密码,本教程中需要两样武器:

(1) 一台运行着 OpenSSH 服务的 Linux 终端,

(2) 一台安卓设备。

在 Linux 系统中安装 Google 身份验证器

第一步需要在运行着 OpenSSH 服务的 Linux 主机上安装 Google 身份验证器。按照如下步骤安装 Google 身份验证器及其PAM模块。

用安装包安装 Google 身份验证器

如果你不想自己构建 Google 身份验证器,在几个 Linux 发行版上有已经编译好的安装包。安装包里面包含 Google 身份验证器 二进制程序和 PAM 模块。

在 Ubuntu 上安装 Google 身份验证器:

$ sudo apt-get install libpam-google-authenticator

在 Fedora 上安装 Google 身份验证器:

$ sudo yum install google-authenticator

在 CentOS 上安装 Google 身份验证器 ,需要首先启用 EPEL 软件库,然后运行如下命令(LCTT 译注:EPEL 库中可能已经删除了该软件包,请使用源代码编译方式安装):

$ sudo yum install google-authenticator

如果不想使用已经编译好的安装包,或者你的 Linux 发行版不在此列,可以自行编译:

在 Linux 上编译 Google 身份验证器

首先,安装构建 Google 身份验证器所需的软件包。

在 Debian、 Ubuntu 或 Linux Mint 上:

$ sudo apt-get install wget make gcc libpam0g-dev

在 CentOS、 Fedora 或 RHEL上:

$ sudo yum install wget make gcc pam-devel

然后下载 Google 身份验证器的源代码,并按如下命令编译(已经从 Google Code 迁移到了 Github)。

$ wget https://github.com/google/google-authenticator/archive/master.zip
$ unzip master.zip
$ cd google-authenticator-master/libpam
$ ./bootstrap.sh
$ ./configure
$ make

如果构建成功,你会在目录中看到 pam_google_authenticator.sogoogle-authenticator 两个文件。

最后,将 Google 身份验证器安装到合适位置。默认会安装到 /usr/local/lib/security 下,根据你的系统不同,你可能需要将其符号链接到 pam 库的位置(比如 CentOS 7 会在 /usr/lib64/security)。

$ sudo make install

排错

当编译 Google 身份验证器时出现如下错误:

fatal error: security/pam_appl.h: No such file or directory

要修复这个问题,请安装如下依赖包。

在 Debian、 Ubuntu 或 Linux Mint 上:

$ sudo apt-get install libpam0g-dev

在 CentOS、 Fedora 或 RHEL 上:

$ sudo yum install pam-devel

当 Google 身份验证器安装好后,你需要在 Linux 主机上创建验证密钥,并且在安卓设备上注册,注意这项配置操作是一次性的。我们将详细叙述如何完成这些操作:

生成验证密钥

在 Linux 主机上运行 Google 身份验证器:

$ google-authenticator 

你将看到一个二维码,它使用如下图形表示我们数字形态的密钥。一会我们要用到它在安卓设备上完成配置。

Google 身份验证器会问一些问题,如果你不确定,就回答 Y。这个应急备用验证码(图中 emergency scratch codes)可以在你由于丢失了绑定的安卓设备的情况下(所以不能得到生成的一次性密码)恢复访问。最好将应急备用验证码妥善保存。

在安卓设备上运行 Google 身份验证器

我们需要在安卓设备上安装 Google 身份验证器应用才能完成双因子认证,到 Google Play 下载并安装一个。在安卓设备上运行 Google 身份验证器,找到下图所示中的配置菜单。

你可以选择“Scan a barcode” 或者“Enter provided key”选项。“Scan a barcode”允许你扫描二维码来完成密钥的输入,在此可能需要先安装扫描软件 Barcode Scanner 应用。如果选择“Enter provided key”选项,你可以使用键盘输入验证密钥,如下图所示:

无论采用上述两种选项的任何方式,一旦成功,你将看到注册成功提示和一次性密码,如下图所示:

为 SSH 服务器用 Google 身份验证器

最终我们需要修改两个文件来完成集成 Google 身份验证器和 OpenSSH 服务这临门一脚。

首先,修改 PAM 配置文件,命令和需添加的内容如下:

$ sudo vi /etc/pam.d/sshd 

auth required pam_google_authenticator.so

然后打开 SSH 配置文件,找到参数 ChallengeResponseAuthentication,并启用它。

$ sudo vi /etc/ssh/sshd_config 

ChallengeResponseAuthentication yes

最后,重启 SSH 服务。

在 Ubuntu、 Debian 和 Linux Mint 上:

$ sudo service ssh restart 

在 Fedora (或 CentOS/RHEL 7)上:

$ sudo systemctl restart sshd 

在 CentOS 6.x或 RHEL 6.x 上:

$ sudo service sshd restart 

不要退出当前的 ssh 链接,大多数 Linux 发行版重启 ssh 服务并不会中断当前已经建立的 ssh 连接。另外开个窗口去重新连接 ssh 服务,如果遇到问题,还可以在原来的 ssh 连接下修改和恢复。

验证双因子认证

在绑定的安卓设备上运行 Google 身份验证器,获得一个一次性验证码,该验证码 30 秒内有效,一旦过期,将重新生成一个新的验证码。

现在和往常一样,使用 SSH 登录终端

$ ssh user@ssh_server 

当提示你输入验证码的时候,输入我们刚获得的验证码。验证成功后,再输入 SSH 的登录密码。

双因子认证通过在用户密码前新增一层来有效的保护我们脆弱的用户密码。你可以使用 Google 身份验证器来保护我们其他的密码,如 Google 账户、GitHub、WordPress.com、Dropbox.com、Outlook.com等等。是否使用这项技术,取决于我们自己,但采用双因子认证已经是行业的大趋势了。


via: http://xmodulo.com/2014/07/two-factor-authentication-ssh-login-linux.html

译者:nd0104 校对:wxy

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

`  
你是否曾经拥有一个梦
    ——你的计算机
         可以自动为你干活?
或许,并非因为
    你刚看了终结者。
然而,除此之外
    脚本和任务自动化
        是每个高级用户追寻的梦
如果今天
    有许多的解决方案
        可以满足这个目标
那么
    有时候
       就难以从那众多之中采撷那
       简洁、聪明而又高效的一个
我
    不能假装
       是我自己发现了它
而与此同时
    却偏爱着那个
       整洁的软体——xdotool
其方法是如此直观
    正如它作为X11自动化工具的表露
转换思想
    xdotool可以通过读取文本文件
       模拟击键的旋律
           以及鼠标的曼舞  
`

让Xdotool在Linux定居

对于Ubuntu,Debian或者Linux Mint,你能够只做:

$ sudo apt-get install xdotool 

对于Fedora,请使用yum命令:

$ sudo yum install xdotool 

对于CentOS用户,可以在EPEL repo中找到该包。在启用EPEL仓库后,只要使用上面的yum命令就可以达成你的愿望。

对于Arch用户,可在Community仓库中找到该包:

$ sudo pacman -S xdotool 

如果你还是找不到你的发行版的对应xdotool,你可以从它的官方站点下载。

Xdotool基本功

虽然xdotool是那样的直观,但它仍然是个脚本程序。因此,为了要正确地使用它,你还是得了解它的语法。不过敬请放心,相对于程序的功能而言,语法还是比较简单易学的。

首先,模拟击键是很容易的。你可以从终端敲入下面的命令:

$ xdotool key [name of the key] 

如果你想要连接两个键,可以在它们之间使用“+”操作符。它看起来像这样:

$ xdotool key alt+Tab 

这两个组合键可以为你切换窗口。

要想让xdotool帮你输入,可以使用以下命令:

$ xdotool type '' 

这些对于基本的击键而言已经足够了。但是,xdotool的众多长处之一,就是它可以获取特定窗口的焦点。它可以获取右边的窗口,然后在里面输入,所有你记录下的按键都不会人间蒸发,而是老老实实的如你所愿的出现在那里。要获得该功能,一个简单的命令可以搞定:

$ xdotool search --name [name of the window] key [keys to press]

该命令将在打开的窗口中搜索对应名称的窗口,并聚焦于该窗口,然后模拟击键。

来点更高级的,但很有用哦,xdotool可以模拟鼠标移动和点击,看这命令:

$ xdotool mousemove x y 

你可以将光标定位到屏幕坐标(x,y)(像素)。你也可以使用“click”参数来组合:

$ xdotool mousemove x y click 1 

这会让鼠标移动到(x,y),然后点击鼠标左键。“1”代表鼠标左键,“2”则是滚轮,“3”则是右键。

最后,一旦你这些命令根植于你脑海,你也许想要实际转储于文件来编辑并试着玩玩。鉴于此,就会有超过一个语句以上的内容了。你需要的就是写一个bash脚本了:

#!/bin/bash

xdotool [command 1]
xdotool [command 2]
etc

或者你可以使用:

$ xdotool [filename] 

这里你将命令写入到一个独立的文件中,然后通过将文件名作为xdotool命令的参数。

意外收获

作为本文的一个意外收获,这里是xdotool的一个具体实例。你可能听说过,也可能没听说过Bing —— 微软的搜索引擎。在后面的实例中,你会看到你可能从没听过Bing奖励:一个程序,可以让你用Bing积分兑取亚马逊的礼物卡和其它的一些礼物卡(LCTT 译注:我是从来没听说过~)。要赚取这些积分,你可以每天在Bing上搜索累计达30次,每次搜索你都会获得0.5个积分。换句话说,你必须把Bing设为默认搜索引擎,并每天使用它。

或者,你可以使用xdotool脚本,在这个脚本中,会自动聚焦到Firefox(你可以用你喜欢的浏览器来取代它),并使用fortune命令生成一些随机单词来实施搜索。大约30秒之内,你的日常搜索任务就完成了。

#!/bin/bash

for i in {1..30}
do
  WID=`xdotool search --title "Mozilla Firefox" | head -1`
  xdotool windowfocus $WID
  xdotool key ctrl+l
  xdotool key Tab
  SENTENCE="$(fortune | cut -d' ' -f1-3 | head -1)"
  xdotool type $SENTENCE
  xdotool key "Return"
  sleep 4
done

下面来个小结吧:我真的很喜欢xdotool,即便它的完整功能超越了本文涵盖的范围。这对于脚本和任务自动化而言,确实是种平易的方式。负面的问题是,它可能不是最有效率的一个。但我要再说一遍,它忠于职守了,而且学习起来也不是那么麻烦。

你对xdotool怎么看呢?你是否更喜欢另外一个自动化工具,而不是它呢?为什么呢?请在评论中告诉我们吧。


via: http://xmodulo.com/2014/07/simulate-key-press-mouse-movement-linux.html

译者:GOLinux 校对: wxy

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

RHEL/CentOS 7.0中一个最主要的改变,就是切换到了systemd。它用于替代红帽企业版Linux前任版本中的SysV和Upstart,对系统和服务进行管理。systemd兼容SysV和Linux标准组的启动脚本。

Systemd是一个Linux操作系统下的系统和服务管理器。它被设计成向后兼容SysV启动脚本,并提供了大量的特性,如开机时平行启动系统服务,按需启动守护进程,支持系统状态快照,或者基于依赖的服务控制逻辑。

先前的使用SysV初始化或Upstart的红帽企业版Linux版本中,使用位于/etc/rc.d/init.d/目录中的bash初始化脚本进行管理。而在RHEL 7/CentOS 7中,这些启动脚本被服务单元取代了。服务单元以.service文件扩展结束,提供了与初始化脚本同样的用途。要查看、启动、停止、重启、启用或者禁用系统服务,你要使用systemctl来代替旧的service命令。

注:为了向后兼容,旧的service命令在CentOS 7中仍然可用,它会重定向所有命令到新的systemctl工具。

使用systemctl来启动/停止/重启服务

要启动一个服务,你需要使用如下命令:

# systemctl start httpd.service

这会启动httpd服务,就我们而言,Apache HTTP服务器。

要停掉它,需要以root身份使用该命令:

# systemctl stop httpd.service

要重启,你可以使用restart选项,如果服务在运行中,它将重启服务;如果服务不在运行中,它将会启动。你也可以使用try-start选项,它只会在服务已经在运行中的时候重启服务。同时,reload选项你也可以有,它会重新加载配置文件。

# systemctl restart httpd.service
# systemctl try-restart httpd.service
# systemctl reload httpd.service

我们例子中的命令看起来会像下面这样:

systemctl start-stop-restart

检查服务状态

要检查服务状态,你可以使用status选项,看这里:

# systemctl status httpd.service

输出结果就像这样:

systemctl status

它会告诉你运行中的服务的方方面面。

使用启用/禁用服务来控制开机启动

你也可以使用enable/disable选项来控制一个服务是否开机启动,命令如下:

# systemctl enable httpd.service
# systemctl disable httpd.service

输出结果看这里:

systemctl-enable

虽然在过去的几年中,对systemd的采用饱受争议,然而大多数主流发行版都已经逐渐采用或打算在下一个发行版中采用它。所以,它是一个有用的工具,我们需要好好熟悉它。


via: http://linoxide.com/linux-command/start-stop-services-systemd/

作者:Adrian Dinu 译者:GOLinux 校对:Caroline

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