分类 技术 下的文章

一个可以列出文件、目录、可执行文件和链接的简单脚本。

 title=

你是否曾经想列出目录中的所有文件,但仅列出文件,而不列出其它的。仅列出目录呢?如果有这种需求的话,那么下面的脚本可能正是你一直在寻找的,它在 GPLv3 下开源。

当然,你可以使用 find 命令:

find . -maxdepth 1 -type f -print

但这键入起来很麻烦,输出也不友好,并且缺少 ls 命令拥有的一些改进。你还可以结合使用 lsgrep 来达到相同的结果:

ls -F . | grep -v /

但是,这又有点笨拙。下面这个脚本提供了一种简单的替代方法。

用法

该脚本提供了四个主要功能,具体取决于你调用它的名称:lsf 列出文件,lsd 列出目录,lsx 列出可执行文件以及 lsl 列出链接。

通过符号链接无需安装该脚本的多个副本。这样可以节省空间并使脚本更新更容易。

该脚本通过使用 find 命令进行搜索,然后在找到的每个项目上运行 ls。这样做的好处是,任何给脚本的参数都将传递给 ls 命令。因此,例如,这可以列出所有文件,甚至包括以点开头的文件:

lsf -a

要以长格式列出目录,请使用 lsd 命令:

lsd -l

你可以提供多个参数,以及文件和目录路径。

下面提供了当前目录的父目录和 /usr/bin 目录中所有文件的长分类列表:

lsf -F -l .. /usr/bin

目前该脚本不处理递归,仅列出当前目录中的文件。

lsf -R

该脚本不会深入子目录,这个不足有一天可能会进行修复。

内部

该脚本采用自上而下的方式编写,其初始化功能位于脚本的开头,而工作主体则接近结尾。脚本中只有两个真正重要的功能。函数 parse_args() 会仔细分析命令行,将选项与路径名分开,并处理脚本中的 ls 命令行选项中的特定选项。

list_things_in_dir() 函数以目录名作为参数并在其上运行 find 命令。找到的每个项目都传递给 ls 命令进行显示。

总结

这是一个可以完成简单功能的简单脚本。它节省了时间,并且在使用大型文件系统时可能会非常有用。

脚本

#!/bin/bash

# Script to list:
#      directories (if called "lsd")
#      files       (if called "lsf")
#      links       (if called "lsl")
#  or  executables (if called "lsx")
# but not any other type of filesystem object.
# FIXME: add lsp   (list pipes)
#
# Usage:
#   <command_name> [switches valid for ls command] [dirname...]
#
# Works with names that includes spaces and that start with a hyphen.
#
# Created by Nick Clifton.
# Version 1.4
# Copyright (c) 2006, 2007 Red Hat.
#
# This is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published
# by the Free Software Foundation; either version 3, or (at your
# option) any later version.

# It is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# ToDo:
#  Handle recursion, eg:  lsl -R
#  Handle switches that take arguments, eg --block-size
#  Handle --almost-all, --ignore-backups, --format and --ignore

main ()
{
  init
 
  parse_args ${1+"$@"}

  list_objects

  exit 0
}

report ()
{
  echo $prog": " ${1+"$@"}
}

fail ()
{
  report " Internal error: " ${1+"$@"}
  exit 1
}

# Initialise global variables.
init ()
{
  # Default to listing things in the current directory.
  dirs[0]=".";
 
  # num_dirs is the number of directories to be listed minus one.
  # This is because we are indexing the dirs[] array from zero.
  num_dirs=0;
 
  # Default to ignoring things that start with a period.
  no_dots=1
 
  # Note - the global variables 'type' and 'opts' are initialised in
  # parse_args function.
}

# Parse our command line
parse_args ()
{
  local no_more_args

  no_more_args=0 ;

  prog=`basename $0` ;

  # Decide if we are listing files or directories.
  case $prog in
    lsf | lsf.sh)
      type=f
      opts="";
      ;;
    lsd | lsd.sh)
      type=d
      # The -d switch to "ls" is presumed when listing directories.
      opts="-d";
      ;;
    lsl | lsl.sh)
      type=l
      # Use -d to prevent the listed links from being followed.
      opts="-d";
      ;;
    lsx | lsx.sh)
      type=f
      find_extras="-perm /111"
      ;;    
    *)
      fail "Unrecognised program name: '$prog', expected either 'lsd', 'lsf', 'lsl' or 'lsx'"
      ;;
  esac

  # Locate any additional command line switches for ls and accumulate them.
  # Likewise accumulate non-switches to the directories list.
  while [ $# -gt 0 ]
  do
    case "$1" in
      # FIXME: Handle switches that take arguments, eg --block-size
      # FIXME: Properly handle --almost-all, --ignore-backups, --format
      # FIXME:   and --ignore
      # FIXME: Properly handle --recursive
      -a | -A | --all | --almost-all)
        no_dots=0;
        ;;
      --version)
        report "version 1.2"
        exit 0
        ;;
      --help)
        case $type in
          d) report "a version of 'ls' that lists only directories" ;;
          l) report "a version of 'ls' that lists only links" ;;
          f) if [ "x$find_extras" = "x" ] ; then
               report "a version of 'ls' that lists only files" ;
             else
              report "a version of 'ls' that lists only executables";
             fi ;;
        esac
        exit 0
        ;;
      --)
        # A switch to say that all further items on the command line are
        # arguments and not switches.
        no_more_args=1 ;
        ;;
      -*)
        if [ "x$no_more_args" = "x1" ] ;
        then
          dirs[$num_dirs]="$1";
          let "num_dirs++"
        else
          # Check for a switch that just uses a single dash, not a double
          # dash.  This could actually be multiple switches combined into
          # one word, eg "lsd -alF".  In this case, scan for the -a switch.
          # XXX: FIXME: The use of =~ requires bash v3.0+.
          if [[ "x${1:1:1}" != "x-" && "x$1" =~ "x-.*a.*" ]] ;
          then
            no_dots=0;
          fi
          opts="$opts $1";
        fi
        ;;
      *)
        dirs[$num_dirs]="$1";
        let "num_dirs++"
        ;;
    esac
    shift
  done

  # Remember that we are counting from zero not one.
  if [ $num_dirs -gt 0 ] ;
  then
    let "num_dirs--"
  fi
}

list_things_in_dir ()
{
  local dir

  # Paranoia checks - the user should never encounter these.
  if test "x$1" = "x" ;
  then
    fail "list_things_in_dir called without an argument"
  fi

  if test "x$2" != "x" ;
  then
    fail "list_things_in_dir called with too many arguments"
  fi

  # Use quotes when accessing $dir in order to preserve
  # any spaces that might be in the directory name.
  dir="${dirs[$1]}";

  # Catch directory names that start with a dash - they
  # confuse pushd.
  if test "x${dir:0:1}" = "x-" ;
  then
    dir="./$dir"
  fi
 
  if [ -d "$dir" ]
  then
    if [ $num_dirs -gt 0 ]
    then
      echo "  $dir:"
    fi

    # Use pushd rather passing the directory name to find so that the
    # names that find passes on to xargs do not have any paths prepended.
    pushd "$dir" > /dev/null
    if [ $no_dots -ne 0 ] ; then
      find . -maxdepth 1 -type $type $find_extras -not -name ".*" -printf "%f\000" \
        | xargs --null --no-run-if-empty ls $opts -- ;
    else
      find . -maxdepth 1 -type $type $find_extras -printf "%f\000" \
        | xargs --null --no-run-if-empty ls $opts -- ;
    fi
    popd > /dev/null
  else
    report "directory '$dir' could not be found"
  fi
}

list_objects ()
{
  local i

  i=0;
  while [ $i -le $num_dirs ]
  do
    list_things_in_dir i
    let "i++"
  done
}

# Invoke main
main ${1+"$@"}

via: https://opensource.com/article/20/2/script-large-files

作者:Nick Clifton 选题:lujun9972 译者:wxy 校对:wxy

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

使用 Linux 命令行向其他用户发送消息或许非常容易,这里有一些相关的命令你可以考虑使用。在这篇文章中,我们会考察 4 个这样的命令,看看它们是怎么工作的。

wall

wall(“Write ALL” 的简称)命令允许你向所有系统中已登录的用户发送一条信息。这里我们假设用户都使用命令行在同一台服务器上工作。虽然 wall 命令最常被系统管理员用于向用户发布公告和传递信息(比如说,服务器即将因维护而关闭),但它可以被任何用户使用。

系统管理员可能会用类似下面的方式发送信息:

$ wall The system will be going down in 15 minutes to address a serious problem

而所有登录的用户都将看到类似这样的信息:

Broadcast message from admin@dragonfly (pts/0) (Thu Mar  5 08:56:42 2020):
The system is going down in 15 minutes to address a serious problem

如果希望在消息中使用单引号,你可以像这样将信息用双引号括起来:

$ wall "Don't forget to save your work before logging off"

最外层的双引号不会出现在发出的消息中,但是如果没有它们,wall 会停下并等待输入一个配对的单引号。

mesg

如果出于某种理由你不想接收来自另一个用户的消息,你可以使用 mesg 命令来屏蔽这些消息。这个命令可以接受一个 n 作为参数来拒绝某用户的消息,或者接收一个 y 作为参数来接收用户发来的消息。

$ mesg n doug
$ mesg y doug

被屏蔽的用户不会被告知这一事实。你也可以像这样使用 mesg 来屏蔽或者接收所有消息:

$ mesg y
$ mesg n

write

另一个在不使用电子邮件的情况下发送文本的命令是 write,这个命令可以用来和一个特定的用户通信。

$ write nemo
Are you still at your desk?
I need to talk with you right away.
^C

输入你的信息后用 ctrl-c 退出,这样就完成了通信。这个命令允许你发送文本,但并不会建立一个双向的通话。它只是将文本发送过去而已。如果目标用户在多个终端上登录,你可以指定你想将消息发送到哪一个终端,否则系统会选择空闲时间最短的那个终端。

$ write nemo#1

如果你试图向一个将消息屏蔽了的用户发送信息,你应该会看到这样的输出:

$ write nemo
write: nemo has messages disabled

talk/ytalk

talkytalk 命令让你可以和一个或多个用户进行交互式的聊天。它们会展示一个有上下两个子窗口的界面,每个用户向显示在他们屏幕上方的窗口内输入内容,并在下方的窗口看到回复信息。要回复一个talk 请求,接收方可以输入 talk,在后面加上请求方的用户名。

Message from Talk_Daemon@dragonfly at 10:10 ...
talk: connection requested by [email protected].
talk: respond with:  talk [email protected]

$ talk dory

如果使用的是 ytalk,那么窗口中可以包含多于两个参与者。正如下面的例子所展示的(这是上面 talk dory 命令的结果),talk 通常指向 ytalk

----------------------------= YTalk version 3.3.0 =--------------------------
Is the report ready?

-------------------------------= nemo@dragonfly =----------------------------
Just finished it

如上所述,在通话的另一侧,talk会话界面的窗口是相反的:

----------------------------= YTalk version 3.3.0 =--------------------------
Just finished it

-------------------------------= dory@dragonfly =----------------------------
Is the report ready?

同样的,使用 ctrl-c 来退出。

如果要和非本机的用户通讯,你需要加上 -h 选项和目标主机名或IP地址,就像这样:

$ talk -h 192.168.0.11 nemo

总结

Linux 上有若干基本的命令可以用来向其他登录的用户发送消息。如果你需要向所有用户快速发送信息或是需要便捷的电话替代品,又或是希望能简单地开始一个多用户快速通讯会话,这些命令会十分实用。

一些命令如 wall 允许广播消息但却不是交互式的。另外的一些命令如 talk 允许多用户进行长时间通讯,当你只需要非常快速地交换一些信息,它们可以你你避免建立一个电话会议。


via: https://www.networkworld.com/article/3530343/communicating-with-other-users-on-the-linux-command-line.html

作者:Sandra Henry-Stocker 选题:lujun9972 译者:linusboyle 校对:wxy

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

Arch Linux 是一款 Linux 发行版,主要由针对 x86-64 微处理器计算机的二进制软件包组成。Arch Linux 使用的是滚动发布模型,这种模式会频繁的给应用程序交付更新。它使用名为 pacman 的软件包管理器,可以用来安装、删除和更新软件包。

由于 Arch Linux 是为有经验的用户构建的,建议新手在使用过其他 Linux 后再来尝试。

什么是 AUR(Arch 用户软件仓库)?

Arch 用户软件仓库 通常称为 AUR,是给 Arch 用户的基于社区的软件存储库。

根据软件包在 AUR 社区的流行程度,用户编译的软件包会进入到 Arch 的官方存储库。

什么是 AUR 助手?

AUR 助手是一个包装程序,允许用户从 AUR 存储库安装软件包,而无需手动干预。

很多用例实现了自动化,比如包搜索、解决依赖关系、检索和构建 AUR 包、Web 内容检索和 AUR 包提交之类。

以下列出了 6 种最佳的 AUR 助手:

  • Yay(Yet another Yogurt)
  • Pakku
  • Pacaur
  • Pikaur
  • Trizen
  • Aura

1)Yay(Yet another Yogurt)

Yay 是 Arch Linux 下基于 CLI 的最佳 AUR 助手,使用 Go 语言编写。Yay 是基于 yaourt、apacman 和 pacaur 设计的。

这是最合适推荐给新手的 AUR 助手。类似于 Pacman,其使用方法和 pacman 中的命令和选项很相似,可以让用户在搜索过程中找到匹配的软件包提供程序,并进行选择。

如何安装 yay

依次运行以下命令以在 Arch Linux 系统上安装。

$ sudo pacman -S git go base-devel
$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si

如何使用 yay

yay 语法与 pacman 相同,使用以下命令安装软件包。

$ yay -s arch-wiki-man

2)Pakku

Pakku 可以被视为一个初始阶段的 Pacman。它是一个包装程序,可以让用户从 AUR 中搜索或安装软件包。

它在删除依赖项方面做得不错,并且还允许通过克隆 PKGBUILD 来安装软件包。

如何安装 Pakku

要在 Arch Linux 的系统上安装 Pakku,请依次运行以下命令。

$ sudo pacman -S git base-devel
$ git clone https://aur.archlinux.org/pakku.git
$ cd pakku
$ makepkg -si

如何使用 Pakku

pakku 语法与 pacman 相同,使用以下命令安装软件包。

$ pakku -s dropbox

3)Pacaur

另一个基于 CLI 的 AUR 助手,可帮助减少用户与提示符的交互。

Pacaur 专为倾向于自动化重复任务的高级用户而设计。用户需要熟悉 makepkg 及其配置的 AUR 手动构建过程。

如何安装 Pacaur

要在 Arch Linux 的系统上安装 Pakku,请依次运行以下命令。

$ sudo pacman -S git base-devel
$ git clone https://aur.archlinux.org/pacaur.git
$ cd pacaur
$ makepkg -si

如何使用 Pacaur

pacaur 语法与 pacman 相同,使用以下命令安装软件包。

$ pacaur -s spotify

4)Pikaur

Pikaur 是具有最小依赖性的 AUR 助手,可以一次查看所有 PKGBUILD,无需用户交互即可全部构建。

Pikaur 将通过控制 pacman 命令来告知 Pacman 要执行的下一个步骤。

如何安装 Pikaur

要在 Arch Linux 的系统上安装 Pakku,请依次运行以下命令。

$ sudo pacman -S git base-devel
$ git clone https://aur.archlinux.org/pikaur.git
$ cd pikaur
$ makepkg -fsri

如何使用 Pikaur

pikaur 语法与 pacman 相同,使用以下命令安装软件包。

$ pacaur -s spotify

5)Trizen

Trizen 是用 Perl 编写的基于命令行的 AUR 轻量级包装器。这个面向速度的 AUR 助手,它允许用户搜索、安装软件包,还允许阅读 AUR 软件包注释。

支持编辑文本文件,并且输入/输出使用 UTF-8。内置与 pacman 的交互功能。

如何安装 Trizen

要在 Arch Linux 的系统上安装 Trizen,请依次运行以下命令。

$ sudo pacman -S git base-devel
$ git clone https://aur.archlinux.org/trizen.git
$ cd trizen
$ makepkg -si

如何使用 Trizen

trizen 语法与 pacman 相同,使用以下命令安装软件包。

$ pacaur -s google-chrome

6)Aura

Aura 是用 Haskell 编写的,是用于 Arch Linux 和 AUR 的安全的多语言包管理器。它支持许多Pacman 操作和子选项,可轻松进行开发并编写精美的代码。

它可以自动从 AUR 安装软件包。使用 Aura 时,用户通常会在系统升级方面遇到一些困难。

如何安装 Aura

要在 Arch Linux 的系统上安装 Pakku,请依次运行以下命令。

$ sudo pacman -S git base-devel
$ git clone https://aur.archlinux.org/aura.git
$ cd aura
$ makepkg -si

如何使用 Aura

aura 语法与 pacman 相同,使用以下命令安装软件包。

$ pacaur -s android-sdk

结论

用户可以凭借这些分析在上述 6 个 AUR 助手中进行选择。


via: https://www.2daygeek.com/best-aur-arch-user-repository-helpers-arch-linux-manjaro/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:hkurj 校对:wxy

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

Amazon 已经推出了自己的基于 Linux 的开源操作系统 Bottlerocket(“瓶装火箭”)。但在你兴奋地想要尝试安装和运行它之前,我必须告诉你,它不是常规的如 Ubuntu、Fedora 或 Debian 这样的 Linux 发行版。那它是什么?

Bottlerocket:来自 Amazon 的 Linux 发行版,用于运行容器

如果你不了解 Linux 容器,建议你阅读 Red Hat 的这篇文章

自从首次提出云计算一词以来,IT 行业发生了许多变化。得益于 Amazon AWS、Google、Linode、Digital Ocean 等云服务器提供商,部署 Linux 服务器(通常在虚拟机中运行)只需几秒钟。最重要的是,你可以借助 Docker 和 Kubernetes 之类的工具在这些服务器上以容器形式部署应用和服务。

问题是,当你唯一目的是在 Linux 系统上运行容器时,并不总是需要完整的 Linux 发行版。这就是为什么容器专用 Linux 仅提供必要软件包的原因。这将大大减少操作系统的大小,从而进一步减少部署时间。

Bottlerocket Linux 由 Amazon Web Services(AWS)专门构建,用于在虚拟机或裸机上运行容器。它支持 docker 镜像和其他遵循 OCI 镜像格式的镜像。

Bottlerocket Linux 的特性

这是来自 Amazon 的新 Linux 发行版提供的特性:

没有逐包更新

传统的 Linux 发行版更新过程由更新单个软件包组成。Bottlerocket 改用基于镜像的更新。

由于采用了这种方法,可以避免冲突和破坏,并可以进行快速而完整的回滚(如有必要)。

只读文件系统

Bottlerocket 还使用了只读主文件系统。在启动时通过 dm-verity 检查其完整性。在其他安全措施上,也不建议使用 SSH 访问,并且只能通过管理容器(附加机制)使用。

AWS 已经统治了云世界。

自动更新

你可以使用 Amazon EKS 之类的编排服务来自动执行 Bottlerocket 更新。

Amazon 还声称,与通用 Linux 发行版相比,仅包含运行容器的基本软件可以减少攻击面。

你怎么看?

Amazon 并不是第一个创建“容器专用 Linux” 的公司。我认为 CoreOS 是最早的此类发行版之一。CoreOS 被 Red Hat 收购,Red Hat 又被 IBM 收购。Red Hat 公司最近停用了 CoreOS,并用 Fedora CoreOS 代替了它。

云服务器是一个巨大的行业,它将继续发展壮大。像 Amazon 这样的巨头将竭尽所能与它竞争对手保持一致或领先。我认为,Bottlerocket 是对 IBM Fedora CoreOS(目前)的应答。

尽管 Bottlerocket 仓库可在 GitHub 上找到,但我还没发现就绪的镜像(LCTT 译注:源代码已经提供)。在撰写本文时,它仅可在 AWS 上预览

你对此有何看法?Amazon 会从 Bottlerocket 获得什么?如果你以前使用过 CoreOS 之类的软件,你会切换到 Bottlerocket 么?


via: https://itsfoss.com/bottlerocket-linux/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

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

在本教程中,你将学习在 Ubuntu 和其他 Linux 发行版上安装 Netbeans IDE 的各种方法。

NetBeans 是一个开源集成开发环境,具有良好的跨平台支持。此工具已被 Java 和 C/C++ 开发社区广泛认可。

开发环境相当灵活。你可以配置它以支持各种开发。实际上,你可以用它来开发 Web、桌面和移动应用,而无需离开此平台。这太神奇了,不是吗?除此之外,用户可以添加许多已知语言,如 PHP、C、C++、HTML、Ajax)、JavaScript、JSP、Ruby on Rails 等。

如果你正在了解如何在 Linux 上安装 Netbeans,那么有几种方法可以做到。我编写本教程主要是为了 Ubuntu,但一些安装方法也适用于其他发行版。

使用 Apt 包管理器在 Ubuntu 上安装 Netbeans IDE

如果在 Ubuntu 软件中心搜索 Netbeans,你将找到两个版本的 Netbeans。Apache Netbeans 是 snap 版本,大小较大,但提供了最新的 Netbeans。

只需单击一下即可安装它。无需打开终端。是最简单的方法。

Apache Netbeans in Ubuntu Software Center

你也可以选择使用 apt 命令,但使用 apt 时,你无法获得最新的 Netbeans。例如,在编写本教程时,Ubuntu 18.04 中 Apt 提供 Netbeans 10,而 Snap 有最新的 Netbeans 11。

如果你是 apt 或 apt-get 的粉丝,那么可以启用 universe 仓库,并在终端中使用此命令安装 Netbeans:

sudo apt install netbeans

使用 Snap 在任何 Linux 发行版上安装 Netbeans IDE

Snap 是一个通用包管理器,如果发行版上启用了 Snap,那么可以使用以下命令安装它:

sudo snap install netbeans --classic

此过程可能需要一些时间才能完成,因为总下载大小约为 1 GB。完成后,你将在应用程序启动器中看到它。

你不仅可以通过 Snap 获取最新的 Netbeans,已安装的版本将自动更新到较新版本。

使用 Flatpak 安装 Netbeans

Flatpak 是另一个类似 Snap 的包安装器。默认情况下,某些发行版支持 Flatpak,在其他发行版上你可以启用 Flatpak 支持

发行版支持 Flatpak 后,你可以使用以下命令安装 Netbeans:

flatpak install flathub org.apache.netbeans

另外,你可以下载源码并自己编译。

希望你使用了上面其中一个方法在你的 Ubuntu 上安装了 Netbeans。但你使用的是哪个方法?有遇到问题么?让我们知道。


via: https://itsfoss.com/install-netbeans-ubuntu/

作者:Srimanta Koley 选题:lujun9972 译者:geekpi 校对:wxy

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

在这有关 Linux 命令的十大文章中,了解如何使 Linux 发挥所需的作用。

很好地使用 Linux 意味着了解有哪些命令以及它们可以为你执行的功能。

《在 Linux 命令行下使用“原力”》

原力 force 有光明的一面和黑暗的一面。正确理解这个对于真正掌握它至关重要。Alan Formy-Duval 在他的文章《在 Linux 命令行下使用“原力”》中,解释了一些流行的、有时是危险的命令的 -f 选项(也称为 --force)。

《Linux useradd 命令介绍》

共享帐户是一个坏主意。相反,请使用典型的 useradd 命令为不同的人(甚至是不同的角色)分配单独的帐户。作为其经典的 Linux 管理基础系列的一部分,Alan Formy-Duval 提供了《Linux useradd 命令介绍》,并且像往常一样,他用朴实明白的语言对其进行了解释,以便新老管理员都可以理解。

《用 Linux 命令显示硬件信息》

机器里面是什么?有时不使用螺丝刀检查硬件很有用。无论是你正在使用的计算机,还是在商店购买前进行测试的计算机、或者是正在尝试维修的计算机,在《用 Linux 命令显示硬件信息》中,Howard Fosdick 提供了或流行或晦涩难懂的命令,以帮助你深入了解计算机的硬件信息。

《如何在 Linux 上使用 gocryptfs 加密文件》

从社会保险号到个人信件再到亲人,我们的文件中包含了许多私人数据。在《如何在 Linux 上使用 gocryptfs 加密文件》中,Brian Bex Exelbierd 解释了如何保持*隐私的私密性。此外,他展示了一种加密文件的方式,这种方式对你现有的工作流程几乎没有影响。这不是复杂的 PGP 风格的密钥管理和后台密钥代理的难题,这是快速、无缝和安全的文件加密。

《如何使用 rsync 的高级用法进行大型备份》

在新的一年中,许多人会下定决心要更加努力地进行备份。Alan Formy-Duval 早在几年前就已经做出了解决方案,因为在《如何使用 rsync 的高级用法进行大型备份》中,他表现出对文件同步命令的极其熟悉。你可能不会马上记住所有语法,但其思路是读取和处理选项、构造备份命令,然后使其自动化。这是使用 rsync 的明智方法,也是可靠地执行备份的唯一方法。

《在 Linux 命令行使用 more 查看文本文件》

在 Scott Nesbitt 的文章《在 Linux 命令行使用 more 查看文本文件》中,古老而良好的默认分页器 more 引起了人们的关注。许多人安装和使用 less,因为它比 more 更灵活。但是,随着越来越多的系统在新出现的容器中实现,有时甚至不存在像 lessmost 之类的新颖的豪华工具。了解和使用more 很简单,这是常见的默认设置,并且是生产系统最后的调试工具。

《关于 sudo 你可能不知道的》

sudo 命令因其过失而闻名。人们知道 sudo 一词,我们大多数人认为我们知道它的作用。我们的观点是正确的,但是正如 Peter Czanik 在他的文章《关于 sudo 你可能不知道的》中所揭示的那样,该命令所包含的不仅仅是“ 西蒙说的 Simon says ”(LCTT 译注:国外的一个儿童游戏)。就像这个经典的童年游戏一样,sudo 命令功能强大,也容易犯愚蠢的错误 —— 有更多的可能产生可怕都后果,而这是你绝不想遇上的事情!

《怎样用 Bash 编程:语法和工具》

如果你是 Linux、BSD 或 Mac(以及近来的 Windows)用户,你也许使用过交互式 Bash shell。它是快速的、一次性命令的绝佳 shell,这就是为什么这么多 Linux 用户喜欢将其用作主要用户界面的原因。但是,Bash 不仅仅是个命令提示符。它也是一种编程语言,如果你已经在使用 Bash 命令,那么自动化的道路从未如此简单过。在 David Both 的出色作品《怎样用 Bash 编程:语法和工具》中对其进行全面了解。

《精通 Linux 的 ls 命令》

ls 命令是那些两个字母的命令之一。单字母命令是针对慢速终端的优化,因为慢速终端的输入的每个字母都会导致明显的延迟,而这对于懒惰的打字员来说也是不错的奖励。一如既往地,Seth Kenlon 清晰实用地解释了你可以怎样《精通 Linux 的 ls 命令》。最重要的是,在“一切都是文件”的系统中,列出文件至关重要。

《Linux cat 命令入门》

cat 命令(concatenate 的缩写)看似简单。无论是使用它来快速查看文件的内容还是将内容通过管道传输到另一个命令,你都可能没有充分利用 cat 的功能。Alan Formy-Duval 的《Linux cat 命令入门》提供了一些新思路,可以使你没有打开文件的感觉就可以看到文件内容。另外,了解各种有关 zcat 的知识,这样你就可以无需解压缩就可以得到压缩文件的内容!这是一件小而简单的事情,但是是使 Linux 很棒的原因。

继续旅程

不要让这些关于 Linux 命令的 10 篇最佳文章成为你的旅程终点。关于 Linux 及其多才多艺的提示符,还有更多值得去发现,因此,请继续关注以获取更多知识。而且,如果你想让我们介绍一个 Linux 命令,请在评论中告诉我们。


via: https://opensource.com/article/19/12/linux-commands

作者:Moshe Zadka 选题:lujun9972 译者:wxy 校对:wxy

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