标签 导航 下的文章

ranger 是一个很好的工具,它为你的 Linux 文件提供了一个多级视图,并允许你使用方向键和一些方便的命令进行浏览和更改。

ranger 是一款独特且非常方便的文件系统导航器,它允许你在 Linux 文件系统中移动,进出子目录,查看文本文件内容,甚至可以在不离开该工具的情况下对文件进行修改。

它运行在终端窗口中,并允许你按下方向键进行导航。它提供了一个多级的文件显示,让你很容易看到你在哪里、在文件系统中移动、并选择特定的文件。

要安装 ranger,请使用标准的安装命令(例如,sudo apt install ranger)。要启动它,只需键入 ranger。它有一个很长的、非常详细的手册页面,但开始使用 ranger 非常简单。

ranger 的显示方式

你需要马上习惯的最重要的一件事就是 ranger 的文件显示方式。一旦你启动了 ranger,你会看到四列数据。第一列是你启动 ranger 的位置的上一级。例如,如果你从主目录开始,ranger 将在第一列中列出所有的主目录。第二列将显示你的主目录(或者你开始的目录)中的目录和文件的第一屏内容。

这里的关键是超越你可能有的任何习惯,将每一行显示的细节看作是相关的。第二列中的所有条目与第一列中的单个条目相关,第四列中的内容与第二列中选定的文件或目录相关。

与一般的命令行视图不同的是,目录将被列在第一位(按字母数字顺序),文件将被列在第二位(也是按字母数字顺序)。从你的主目录开始,显示的内容可能是这样的:

shs@dragonfly /home/shs/backups     <== current selection
 bugfarm   backups            0  empty
 dory      bin               59
 eel       Buttons           15
 nemo      Desktop            0
 shark     Documents          0
 shs       Downloads          1
   ^         ^                ^      ^
   |         |                |      |
 homes     directories    # files    listing
           in selected    in each    of files in
           home           directory  selected directory

ranger 显示的最上面一行告诉你在哪里。在这个例子中,当前目录是 /home/shs/backups。我们看到高亮显示的是 empty,因为这个目录中没有文件。如果我们按下方向键选择 bin,我们会看到一个文件列表:

shs@dragonfly /home/shs/bin      <== current selection
 bugfarm   backups            0    append
 dory      bin               59    calcPower
 eel       Buttons           15    cap
 nemo      Desktop            0    extract
 shark     Documents          0    finddups
 shs       Downloads          1    fix
   ^         ^                ^      ^
   |         |                |      |
 homes     directories    # files    listing
           in selected    in each    of files in
           home           directory  selected directory

每一列中高亮显示的条目显示了当前的选择。使用右方向键可移动到更深的目录或查看文件内容。

如果你继续按下方向键移动到列表的文件部分,你会注意到第三列将显示文件大小(而不是文件的数量)。“当前选择”行也会显示当前选择的文件名,而最右边的一列则会尽可能地显示文件内容。

shs@dragonfly /home/shs/busy_wait.c   <== current selection
 bugfarm   BushyRidge.zip    170 K  /*
 dory      busy_wait.c       338 B   * program that does a busy wait
 eel       camper.jpg       5.55 M   * it's used to show ASLR, and that's it
 nemo      check_lockscreen   80 B   */
 shark     chkrootkit-output 438 B  #include <stdio.h>
   ^         ^                ^       ^
   |         |                |       |
 homes     files            sizes    file content

在该显示的底行会显示一些文件和目录的详细信息:

-rw-rw-r—- shs shs 338B 2019-01-05 14:44    1.52G, 365G free  67/488  11%

如果你选择了一个目录并按下回车键,你将进入该目录。然后,在你的显示屏中最左边的一列将是你的主目录的内容列表,第二列将是该目录内容的文件列表。然后你可以检查子目录的内容和文件的内容。

按左方向键可以向上移动一级。

q 键退出 ranger

做出改变

你可以按 ? 键,在屏幕底部弹出一条帮助行。它看起来应该是这样的:

View [m]an page, [k]ey bindings, [c]commands or [s]ettings?  (press q to abort)

c 键,ranger 将提供你可以在该工具内使用的命令信息。例如,你可以通过输入 :chmod 来改变当前文件的权限,后面跟着预期的权限。例如,一旦选择了一个文件,你可以输入 :chmod 700 将权限设置为 rwx------

输入 :edit 可以在 nano 中打开该文件,允许你进行修改,然后使用 nano 的命令保存文件。

总结

使用 ranger 的方法比本篇文章所描述的更多。该工具提供了一种非常不同的方式来列出 Linux 系统上的文件并与之交互,一旦你习惯了它的多级的目录和文件列表方式,并使用方向键代替 cd 命令来移动,就可以很轻松地在 Linux 的文件中导航。


via: https://www.networkworld.com/article/3583890/navigating-your-linux-files-with-ranger.html

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

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

苹果内部员工透露:iPhone 因性能问题而屏蔽北斗导航

从技术上看,苹果近几代手机都是实用英特尔基带,最新的是 XMM7660,官方文档中是确认支持北斗导航定位的,所以 iPhone 是可以支持北斗导航的。但苹果官方文档中曾经提到 iPhone 手机使用北斗信号有性能问题,因此苹果屏蔽了北斗信号。

来源:集微网

拍一拍:是这样吗?

微软提议改善 Chrome 在 Windows 10 上性能表现

在 Edge 浏览器拥抱 Chromium 平台之后,微软加大了对该平台的贡献力度,并携手谷歌修复和解决了耗电、无障碍工具以及开发者工具在内的诸多问题。微软指出谷歌 Chrome 浏览器会运行一段代码来确认 Chrome.exe 浏览器是否被固定在任务栏上。这段代码检查会在 Chrome 浏览器启动 45 秒之后进行,会消耗 300ms 的 CPU。微软认为这些代码是冗余的。

来源:cnBeta.COM

拍一拍:“没有人比我更熟悉 Windows” —— 微软

苹果想将 iPhone 打造成“身份证”

届时手机可取代护照、驾照和其他身份证明。上述文件的拷贝将被直接存在手机中。苹果公司会给出公共名称为“提供经验证的用户身份声明”的一系列专利使用申请表供用户填写,并会在其中描述存储和使用个人数字鉴别标识的方法。

来源:网易科技

拍一拍:微信和支付宝已经做到了。

Paddle.js 1.0 发布,浏览器中的深度学习框架

Paddle.js 是百度 Paddle 的 web 方向子项目。Paddle.js 可以加载提前训练好的 paddle 模型,或者将 paddle hub 中的模型通过 paddle.js 的模型转换工具变成浏览器友好的模型进行在线推理预测使用。目前,paddle.js 仅可以在支持 webGL 的浏览器中运行。

来源:开源中国

拍一拍:百度具有较大影响力的开源项目不多,这个项目就是一个。

cd 命令可能是任何 Linux 用户学习的前 10 个命令之一,但这并不是在 Linux 文件系统中导航的唯一方法,这里还有其他一些方法。

无论你是在文件系统中四处查看、寻找文件还是尝试进入重要目录,Linux 都可以提供很多帮助。在本文中,我们将介绍一些技巧,使你可以在文件系统中移动,查找和使用所需的命令也更加轻松。

添加到 $PATH

确保你不必花费大量时间在 Linux 系统上查找命令的最简单、最有用的方法之一就是在 $PATH 变量中添加适当的目录。但是,添加到 $PATH 变量中的目录顺序非常重要。它们确定系统在目录中查找要运行命令的目录顺序–在找到第一个匹配项时停止。

例如,你可能希望将家目录放在第一个,这样,如果你创建的脚本与其他可执行文件有相同的名称,那么只要输入该脚本的名称,它便会运行。

要将家目录添加到 $PATH 变量中,可以执行以下操作:

$ export PATH=~:$PATH

~ 字符代表家目录。

如果将脚本保存在 bin 目录中,下面的会有效:

$ export PATH=~/bin:$PATH

然后,你可以运行位于家目录中的脚本,如下所示:

$ myscript
Good morning, you just ran /home/myacct/bin/myscript

重要提示:上面显示的命令会添加到你的搜索路径中,因为 $PATH(当前路径)被包含在内。它们不会覆盖它。你的搜索路径应该在你的 .bashrc 文件中配置,任何你打算永久化的更改也应该添加到那里。

使用符号链接

符号链接提供了一种简单而明显的方式来记录可能经常需要使用的目录的位置。例如,如果你管理网站的内容,那么可能需要通过创建如下链接来使你的帐户“记住”网页文件的位置:

ln -s /var/www/html www

参数的顺序很重要。第一个(/var/www/html)是目标,第二个是你创建的链接的名称。如果你当前不在家目录中,那么以下命令将执行相同的操作:

ln -s /var/www/html ~/www

设置好之后,你可以使用 cd www 进入 /var/www/html

使用 shopt

shopt 命令还提供了一种让移动到其他目录更加容易的方法。当你使用 shoptautocd 选项时,只需输入名称即可转到目录。例如:

$ shopt -s autocd
$ www
cd -- www
/home/myacct/www
$ pwd -P
/var/www/html

$ ~/bin
cd -- /home/myacct/bin
$ pwd
/home/myacct/bin

在上面的第一组命令中,启用了 shopt 命令的 autocd 选项。输入 www,就会调用 cd www 命令。由于此符号链接是在上面的 ln 命令示例之一中创建的,因此将我们移至 /var/www/htmlpwd -P 命令显示实际位置。

在第二组中,键入 ~/bin 会调用 cd 进入在用户家目录的 bin 目录。

请注意,当你输入的是命令时,autocd 行为将不会生效,即使它也是目录的名称。

shopt 是 bash 内置命令,它有很多选项。这只是意味着你不必在要进入每个目录的名称之前输入 cd

要查看 shopt 的其他选项,只需输入 shopt

使用 $CDPATH

可能进入特定目录的最有用技巧之一,就是将你希望能够轻松进入的路径添加到 $CDPATH 中。这将创建一个目录列表,只需输入完整路径名的一部分即可进入。

一方面,这可能有点棘手。你的 $CDPATH 需要包含要移动到的目录的父目录,而不是目录本身。

例如,假设你希望仅通过输入 cd html 就可以移至 /var/www/html 目录,并仅使用 cd 和简单目录名即可移至 /var/log 中的子目录。在这种情况下,此 $CDPATH 就可以起作用:

$ CDPATH=.:/var/log:/var/www

你将看到:

$ cd journal
/var/log/journal
$ cd html
/var/www/html

当你输入的不是完整路径时,$CDPATH 就会生效。它向下查看其目录列表,以查看指定的目录是否存在于其中一个目录中。找到匹配项后,它将带你到那里。

$CDPATH 开头保持 . 意味着你可以进入本地目录,而不必在 $CDPATH 中定义它们。

$ export CDPATH=".:$CDPATH"
$ Videos
cd -- Videos
/home/myacct/Videos

在 Linux 文件系统键切换并不难,但是如果你使用一些方便的技巧轻松地到达各个位置,那你可以节省一些大脑细胞。


via: https://www.networkworld.com/article/3533421/tricks-for-getting-around-your-linux-file-system.html

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

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

有时候,通过命令来在 Linux 文件系统导航是一件非常痛苦的事情,特别是对于一些新手。通常情况下,我们主要使用 cd(改变目录)命令在 Linux 文件系统之间移动。

在之前的文章中,我们回顾了一个非常简单但很有用的 Linux 上的 CLI 工具,文章叫做 bd:快速返回某级父目录而不用冗余地输入 “cd ../../..”

在这个教程中,我们将讨论两个相关的命令:pushdpopd ,使用它们可以高效的浏览 Linux 目录结构。这两个命令在大多数 shell ,比如 bash、tcsh 中都存在。

推荐阅读:Autojump:快速浏览 Linux 文件系统的一个高级 cd 命令

pushd 和 popd 命令在 Linux 系统中如何工作

pushdpopd 命令根据 ‘LIFO’(后进先出)原则工作。在这个原则之下,只有两个操作是允许的:把一个目录压入栈,以及把一个目录弹出栈。

pushd 命令会增加一个目录到栈顶,而 popd 命令会从栈顶移除一个目录。

为了显示目录栈中(或历史)的目录,我们可以使用下面展示的 dirs 命令:

$ dirs
或
$ dirs -v

Dirs - Display Directories in Directory

dirs - 显示位于目录栈中的目录

pushd 命令:将一个目录路径添加到/放入目录栈(历史)中,之后,你可以浏览位于目录栈(历史)中的任意目录。当把一个新的目录入栈时,会打印出当前位于栈中的所有目录。

下面这些命令会展示这个命令是如何工作的:

$ pushd  /var/www/html/
$ pushd ~/Documents/
$ pushd ~/Desktop/
$ pushd /var/log/

pushd - Add Directories to Stack

pushd - 添加新目录入栈

根据上面输出的目录栈可知(目录索引按倒序排列):

  • /var/log 是目录栈中的第五个目录,索引为 0
  • ~/Desktop/ 是第四个,索引为 1
  • ~/Document/ 是第三个,索引为 2
  • /var/www/html 是第二个,索引为 3
  • ~ 是第一个,索引为 4

另外,我们也可以使用目录索引的形式 pushd +#pushd -# 来添加目录入栈。为了进入目录 ~/Documents ,我们可以输入:

$ pushd +2

pushd - Directory Navigation with Number

pushd -通过数字浏览目录

注意,经过上一步操作以后,栈的内容便发生了改变。所以,要从上面的例子中进入目录 /var/www/html ,我们应该使用下面的命令:

$ pushd +1

pushd - Navigate Directory with Number

pushd -通过数字浏览目录

popd 命令-从栈顶或历史中移除一个目录。为了列出目录栈中的所有目录,只需输入:

$ popd

为了从目录栈中移除一个目录,我们可以使用 popd +#popd -# 命令,在这时,我们需要输入下面的命令来移除目录 ~/Documents

$ popd +1

popd - Remove Directory from Stack

popd-从栈中以移除目录

在这篇文章中,我们阐述了 pushdpopd 命令,使用它们可以高效的访问目录结构。你可以通过下面的反馈表和我们分享你关于这篇文章的想法。


作者简介:

Aaron Kili 是 Linux 和 F.O.S.S 爱好者,将来的 Linux 系统管理员和网络开发人员,目前是 TecMint 的内容创作者,他喜欢用电脑工作,并坚信分享知识。


via: https://www.tecmint.com/pushd-and-popd-linux-filesystem-navigation/

作者:Aaron Kili 译者:ucasFL 校对:wxy

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

在 Linux 系统上通过命令行切换文件夹时,为了回到父目录(长路径),我们通常会重复输入 cd 命令cd ../../..),直到进入感兴趣的目录。

对于经验丰富的 Linux 用户或需要进行各种不同任务的系统管理员而言,这可能非常乏味,因此希望在操作系统时有一个快捷方式来简化工作。

建议阅读: Autojump - 一个快速浏览 Linux 文件系统的高级 “cd” 命令

在本文中,我们将在 bd 工具的帮助下,用这个简单而有用的工具快速回到 Linux 中的父目录。

bd 是用于切换文件夹的便利工具,它可以使你快速返回到父目录,而不必重复键入 cd ../../.. 。 你可以可靠地将其与其他 Linux 命令组合以执行几个日常操作。

如何在 Linux 中安装 bd

运行下面的命令,使用 wget 命令下载并安装 bd 到 /usr/bin/ 中,添加执行权限,并在 ~/.bashrc 中创建需要的别名:

$ wget --no-check-certificate -O /usr/bin/bd https://raw.github.com/vigneshwaranr/bd/master/bd
$ chmod +rx /usr/bin/bd
$ echo 'alias bd=". bd -si"' >> ~/.bashrc
$ source ~/.bashrc

注意:如果要启用大小写敏感的目录名匹配,请在上面创建的别名中,设置 -s 标志而不是 -si 标志。

要启用自动补全支持,运行这些命令:

$ sudo wget -O /etc/bash_completion.d/bd https://raw.github.com/vigneshwaranr/bd/master/bash_completion.d/bd
$ sudo source /etc/bash_completion.d/bd

如何在 Linux 中使用 bd

假设你目前在这个路径的顶层目录:

/media/aaronkilik/Data/Computer Science/Documents/Books/LEARN/Linux/Books/server $ 

你想要快速进入 “Documents” 目录,只要输入:

$ bd Documents

接着直接进入到 Data 目录,你可以输入:

$ bd Data

Switch Between Directories Quickly

目录间快速切换

实际上,bd 让它变得更加直接,你要做的是输入 “bd <开头几个字母>”,比如:

$ bd Doc
$ bd Da

Quickly Switch Directories

快速切换目录

重要:如果层次结构中有不止一个具有相同名称的目录,bd 将会移动到最接近的目录,而不考虑最近的父目录,如下面的例子那样。

例如,在上面的路径中,有两个名称相同的目录 Books,如果你想移动到:

/media/aaronkilik/Data/ComputerScience/Documents/Books/LEARN/Linux/Books

输入 bd Books 会进入:

/media/aaronkilik/Data/ComputerScience/Documents/Books

Move to 'Books' Directory Quickly

快速进入 ‘Books’ 目录

另外,在反引号``中使用 bd 如 bd <开头几个字母> 会打印出路径而不更改当前目录,所以你可以与其他常见的 Linux 命令,如 [ls](http://www.tecmint.com/tag/linux-ls-command/),[echo](http://www.tecmint.com/echo-command-in-linux/) 等一起使用 bd <开头几个字母>`` 。

在下面的例子中,当前在 /var/www/html/internship/assets/filetree 目录中,要打印出绝对路径、详细列出内容、统计目录 html 中所有文件的大小,你不必进入它,只需要键入:

$ echo `bd ht`
$ ls -l `bd ht`
$ du -cs `bd ht`

Switch Directory with Listing

列出切换的目录

要在 Github 上了解更多关于 bd 的信息:https://github.com/vigneshwaranr/bd

就是这样了!在本文中,我们展示了使用 bd 程序在 Linux 中快速切换文件夹的便捷方法。

通过下面的反馈栏单发表你的看法。此外,你还知道其他类似的工具么,在评论中让我们知道。


作者简介:

Aaron Kili是一名 Linux 和 F.O.S.S 的爱好者,未来的 Linux 系统管理员、网站开发人员,目前是 TecMint 的内容创作者,他喜欢用电脑工作,并乐于分享知识。


via: http://www.tecmint.com/bd-quickly-go-back-to-a-linux-parent-directory/

作者:Aaron Kili 译者:geekpi 校对:wxy

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

到目前为止,在该系列指南中,我们已经讨论了 cd -pushd/popd 命令的基本使用方法和相关细节,以及 CDPATH 环境变量。在这第四期、也是最后一期文章中,我们会讨论别名的概念以及你可以如何使用它们使你的命令行导航更加轻松和平稳。

一如往常,在进入该指南的核心之前,值得指出本文中的所有命令以及展示的例子都在 Ubuntu 14.04LTS 中进行了测试。我们使用的命令行 shell 是 bash(4.3.11 版本)。

Linux 中的命令行别名

按照外行人的定义,别名可以被认为是一个复杂命令或者一组命令(包括它们的参数和选项)的简称或缩写。所以基本上,使用别名,你可以为那些不那么容易书写/记忆的命令创建易于记忆的名称。

例如,下面的命令为 cd ~ 命令创建别名 home

alias home="cd ~"

这意味着现在在你的系统中无论何地,无论何时你想要回到你的主目录时,你可以很快地输入 home 然后按回车键实现。

关于 alias 命令,man 手册是这么描述的:

alias 工具可以创建或者重定义别名定义,或者把现有别名定义输出到标准输出。别名定义提供了输入一个命令时应该被替换的字符串值

一个别名定义会影响当前 shell 的执行环境以及当前 shell 的所有子 shell 的执行环境。按照 IEEE Std 1003.1-2001 规定,别名定义不应该影响当前 shell 的父进程以及任何 shell 调用的程序环境。

那么,别名到底如何帮助命令行导航呢?这是一个简单的例子:

假设你正在 /home/himanshu/projects/howtoforge 目录工作,它包括很多子目录以及子子目录。例如下面就是一个完整的目录分支:

/home/himanshu/projects/howtoforge/command-line/navigation/tips-tricks/part4/final

现在想象你在 final 目录,然后你想回到 tips-tricks 目录,然后再从那里,回到 howtoforge 目录。你会怎么做呢?

是的,一般情况下,你会运行下面的一组命令:

cd ../..

cd ../../..

虽然这种方法并没有错误,但它绝对不方便,尤其是当你在一个很长的路径中想往回走例如说 5 个目录时。那么,有什么解决办法吗?答案就是:别名。

你可以做的是,为每个 cd .. 命令创建容易记忆(和书写)的别名。例如:

alias bk1="cd .."  
alias bk2="cd ../.."  
alias bk3="cd ../../.."  
alias bk4="cd ../../../.."  
alias bk5="cd ../../../../.."

现在无论你什么时候想从当前工作目录往回走,例如说 5 个目录,你只需要运行下面的命令:

bk5

现在这不是很简单吗?

相关细节

尽管当前我们在 shell 中用于定义别名的技术(通过使用 alias 命令)实现了效果,别名只存在于当前终端会话。很有可能你会希望你定义的别名能保存下来,使得此后你可以在任何新启动的命令行窗口/标签页中使用它们。

为此,你需要在 ~/.bash_aliases 文件中定义你的别名,你的 ~/.bashrc 文件默认会加载该文件(如果你使用更早版本的 Ubuntu,我没有验证过是否有效)。

下面是我的 .bashrc 文件中关于 .bash_aliases 文件的部分:

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then 
      . ~/.bash_aliases
fi

一旦你把别名定义添加到你的 .bash_aliases 文件,该别名在任何新终端中都可用。但是,在任何其它你定义别名时已经启动的终端中,你还不能使用它们 - 解决办法是在这些终端中重新加载 .bashrc。下面就是你需要执行的具体命令:

source ~/.bashrc

如果你觉得这要做的也太多了(是的,我期待你有更懒惰的办法),那么这里有一个快捷方式来做到这一切:

"alias [the-alias]" >> ~/.bash_aliases && source ~/.bash_aliases

毫无疑问,你需要用实际的命令替换 [the-alias]。例如:

"alias bk5='cd ../../../../..'" >> ~/.bash_aliases && source ~/.bash_aliases

接下来,假设你已经创建了一些别名,并时不时使用它们有一段时间了。突然有一天,你发现它们其中的一个并不像期望的那样。因此你觉得需要查看被赋予该别名的真正命令。你会怎么做呢?

当然,你可以打开你的 .bash_aliases 文件在那里看看,但这种方式可能有点费时,尤其是当文件中包括很多别名的时候。因此,如果你正在查找一种更简单的方式,这就有一个:你需要做的只是运行 alias 命令并把别名名称作为参数。

这里有个例子:

$ alias bk6
alias bk6='cd ../../../../../..'

你可以看到,上面提到的命令显示了被赋值给别名 bk6 的实际命令。这里还有另一种办法:使用 type 命令。下面是一个例子:

$ type bk6
bk6 is aliased to `cd ../../../../../..'

type 命令产生了一个易于人类理解的输出。

另一个值得分享的是你可以将别名用于常见的输入错误。例如:

alias mroe='more'

最后,还值得注意的是并非每个人都喜欢使用别名。他们中的大部分人认为一旦你习惯了你为了简便而定义的别名,当你在其它相同而不存在别名(而且不允许你创建)的系统中工作时就会变得非常困难。更多(也是更准确的)为什么一些专家不推荐使用别名的原因,你到这里查看。

总结

就像我们之前文章讨论过的 CDPATH 环境变量,别名也是一把应该谨慎使用的双刃剑。尽管如此也别太丧气,因为每个东西都有它自己的好处和劣势。遇到类似别名的概念时,更多的练习和完备的知识才是重点。

那么这就是该系列指南的最后章节。希望你喜欢它并能从中学到新的东西/概念。如果你有任何疑问或者问题,请在下面的评论框中和我们(以及其他人)分享。


via: https://www.howtoforge.com/tutorial/command-line-aliases-in-linux/

作者:Ansh 译者:ictlyh 校对:wxy

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