澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

澳门新萄京官方网站:Shell的台本编程,为Linux管

2019-07-21 作者:服务器运维   |   浏览(78)

尽管Linux桌面在过去二十年中经历了巨大的改变最显著的变化可能是Ubuntu Unity界面),根据可以提供给有经验系统管理员的力量,命令行依然是非平行的。尽管接下来的十个技巧大部分关于Bash shell,所有这些技巧都可以很容易地应用到其它现在shell上。

Linux:十条为系统管理员节省时间的命令  

尽管Linux桌面在过去二十年中经历了巨大的改变(最显著的变化可能是Ubuntu Unity界面),根据可以提供给有经验系统管理员的力量,命令行依然是非平行的。尽管接下来的十个技巧大部分关于Bash shell,所有这些技巧都可以很容易地应用到其它现在shell上。

一、超级工具

中英文资料:

1.运用一条命令来创建并进入目录

尽管Linux桌面在过去二十年中经历了巨大的改变(例如:Ubuntu Unity界面),但命令行操作模式永远是对一个系统开发或维护人员的能力衡量标准,通常我们所理解的Linux高手大多是在命令行模式下操作的,所以接 下来的十个技巧大部分关于Bash shell的。

1.运用一条命令来创建并进入目录

terminals,xterms 和 shells shell是一个全功能的编程环境。其背景知识如下。
DEC公司推出的 PDP-11 ,体积小被称为 mini)而且价格低10000$),在大学中引起了巨大的反响。为了方便移植,1969 年,Ken Thompson 开始写后来成为 Unix与MULTICS相对)的第一行代码。后来, Dennis Ritchie为这个新的操作系统设计了一种新的编程语言--
C 语言。虽然 Unix 的效率不及原来的操作系统,但有三个突出的优点:

the graphical user interface (GUI) 图形界面

创建接着进入一个新目录是一个非常普通的任务,似乎在shell中执行两种命令都该有捷径。虽然没有捷径,你可以将以下函数添加到你的.bashrc文件:

 

创建接着进入一个新目录是一个非常普通的任务,似乎在shell中执行两种命令都该有捷径。虽然没有捷径,你可以将以下函数添加到你的.bashrc文件:

  1. 可以任意移植到其他机器
  2. 其中的 C 语言大大简化了编程
  3. free。
    终端terminals)
    Unix是可以在许多种机器上运行的操作系统,但人们又如何使用这些机器呢?他们是通过哑终端来连接到这些机器,也就是用键盘、显示器及足够的 electronics电子元件)组成的机器与中央计算机(central computer)相连。在这些终端上,用户可以敲字符teletypy),
    这就是字符串'tty'表示终端设备文件,和'getty'命令的名称来历。为了避免键盘布局的混乱,人们创建了一个含有所有不同终端特性的(capability)文件,这就是'termcap',参见'/etc/termcap'。linux 终端大多数用'vt100'或'linux'作为终端类型。
    xterms在八十年代初期,产生了X Window System 。九十年代早期,产生了XFree86 。X Window 中一个很大的好处是可以运行多个虚拟(virtual)终端。甚至在 X Window 下就有这么个应用程序--'xterm'。您将发现'xterm'和'virtual terminal'在很多情况下都是一样的。其他的终端模拟器(terminal emulator),如 rxvt、konsole、aterm、eterm、wterm 等等。终端模拟器又称为虚拟终端)通过伪(pseudo) tty 设备-- pty 与系统相连,并且使用自己的显示标准--xterm 。这导致不同的终端模拟器可能在一些按键或程序上存在细小的差别,取决于模拟器多大程度上遵守了'xterm'的显示标准。
    shells shell是用户和linux或者更准确的说,是你和Linux内核)之间的接口程序。 你在提示符下输入的每个命令都由shell先解释然后传给linux内核。为了在终端中运行程序,需要 shell 。shell 是操作系统的一部分,用来与用户打交道,并且可以用来协调各个命令。第一个真正的 Unix shell -- 'sh',亦称为'Bourne shell',诞生于 1975 年, 作者是Steve Bourne 。很快,出现了其他 shell ,如基于原始'Bourne shell'的'ksh'、'zsh',后者常用作专属 Unixes 系统中的标准 shell ;也有一些从 C 语言中衍生出来的 shell , 如'csh'或'tcsh'。在 linux 中,标注的 shell 是'bash',即 the GNU Bourne-Again Shell 。这个 shell功能非常强大,压缩的 man page 就有 50 KB 。
    Shell 起步
    首先,有一点小说明:在平常应用中,建议您不要用'root'帐号运行 shell , 如果您还是新手,这一点尤其要注意。作为普通用户,不管您有意还是无意,都无法破坏系统;但如果是'root',那就不同了,只要敲几个字母,就可能导致灾难性后果。
    当您登入系统或打开一个 xterm 窗口,首先看到的是提示符(prompt)。Red Hat linux的标准提示符包括了您的用户名、登入的主机名没有设置的话,是'localhost')、 当前所在的目录(working directory)、提示符号:
    [[email protected] tom]$
    我以用户名'tom'登入名为'belbo'的主机,当前在我的 home 目录--'/home/tom'中。
    'root'的提示符:
    [[email protected] root]#
    除了不同的用户名外,提示符号由'$'变成了'#'。根据 Bourne shell 的传统,普通用户的提示符以'$'结尾,而超级用户用'#'。提示符的每个部分都可以定制,您在后面将有更深的了解。
    要运行命令的话,您只要在提示符后敲进命令,然后在按 键。shell将在其路径中详情见后)搜索这个命令,找到以后就运行,并在终端里输出相应的结果如果有的话),命令结束后,再给出新的提示符:
    [[email protected] tom]$ whoami
    tom
    [[email protected] tom]$
    当您敲 ENTER 时,光标(cursor)在哪里并不要紧,因为 shell 总是会整行地读取。
    基本的命令有:'ls'list directory ,列出目录内容)、'cp'copy ,复制)、'mv'move / rename ,移动/重命名),'cd 'change directory ,改变目录),这些命令后面都可以跟上一帮可选项,这方面 man page 有详细的介绍man ls, man mv 等等)。
    下面简单介绍一下几个术语(terminology)。
    命令可能带一些可选项options)、参数arguments):mv -i file dir
    其中'-i'是命令'mv'的一个可选项,而'file'和'dir'则是参数。 所有可选项在该命令的man page 都中有详细的介绍此例中用 man mv),而参数则由您提供。可选项决定命令如何工作,而参数则用于确定命令作用的目标。
    二、自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式

The Command Line 命令行

mkcd()
{
  mkdir $1
  cd $1
}

  1. 运用一条命令来创建并进入目录
mkcd()
{
mkdir $1
cd $1
}

Unix 及后继者 linux)在命令行下面诞生,因此,Unix 中的命令行有许多非常实用的功能。
自动补齐
如何用'cd'改变目录,change directory)最快地从您当前所在的 home 目录跳到'/usr/src/redhat/'呢?
cd /usrr
这称为'命令行自动补齐'(automatic command line completion), 这在平常应用中是不可缺少的。让我们仔细看看这个例子:
cd /u
扩展成了 cd /usr/ ,很简单吧。下面的cd /usr扩展为 cd /usr/src/ 。
如果您只敲了cd /us, '/usr'下匹配的'cd /u*/s*')三个子目录将列出供您选择:'/usr/sbin'、'/usr/share'和'/usr/src'。
因此, 键可以很方便地用于根据前几个字母,来查找匹配的文件或子目录。比如,ls /usr/bin/zip 将列出所有'/usr/bin'下面,以字符串'zip'开头的文件或子目录。当然,完成这类任务还有更厉害的命令,但这个方法确实很管用。另外,碰到长文件名时就显得特别方便。假设您要安装一个名为'boomshakalakwhizbang-4.6.4.5-i586.rpm'的 RPM 包,您输入 rpm -i boom ,如果目录下没有其他文件能够匹配,那 shell 就会自动帮忙补齐。
cd /usrl
将扩展成 cd /usr/src/linux ,并等待继续。'/usr/src'中有两个匹配的目录:'/usr/src/linux-[...]'、'/usr/src/linux'。如何告诉 shell 您想要后面的那个呢? 只要跟一个斜线/ ,slash),就可以选择后面的那个了。
假如您不确定是'/usr/src/linux/Documentation'还是'/usr/src/linux/documentation'。而您知道,linux 是区分大小写的。如果已经仔细读过前面部分的话,您想到可以用:cd /usrl/d
扩展成了'/usr/src/linux/drivers/',因此应该是'Documentation'(大写的'D')。
这种补齐对命令也有效:
[[email protected] tom]$ gre
grecord grefer grep
[[email protected] tom]$ gre
在这里 shell 将列出所有以字符串'gre'开头的已知命令。
命令行的历史记录
通过按向上方向键,您可以向后遍历近来在该控制台下输入的命令。用向下方向键可以向前遍历。与 SHIFT 键连用的话,您还可以遍历以往在该控制台中的输出。 您也可以编辑旧的命令,然后再运行。
按后,shell 就进入"reverse-i(ncremental)-search"向后增量搜索)模式。现在输入您要找的命令的首字母:
(reverse-i-search)`':. 敲入 'i'可能会变成:(reverse-i-search)`i': isdnctrl hangup ippp0
如果您再按 键,上面的命令将再次执行。而如果您按了向右、向左方向键或,上面的命令将回到普通的命令行,这样您就可以进行适当编辑。
编辑命令行
通过光标和功能键Home、End 等键),您可以浏览并编辑命令行,如果您需要,还可以用键盘的快捷方式来完成一般的编辑:
CTRL k : 删除从光标到行尾的部分
CTRL u : 删除从光标到行首的部分
ALT d : 删除从光标到当前单词结尾的部分
CTRL w : 删除从光标到当前单词开头的部分
CTRL a : 将光标移到行首
CTRL e : 将光标移到行尾
ALT a : 将光标移到当前单词头部
ALT e : 将光标移到当前单词尾部
CTRL y : 插入最近删除的单词
!$ : 重复前一个命令最后的参数。
例如:您用命令 mkdir peter/pan/documents/tinkerbell 新建了一个目录,现在您向用命令'cd'进入该目录,您可以用 cd !$,shell 将把前一个命令'mkdir'的参数添加到现在的'cd'后面。
当您更深入了解linux后,将看到这些快捷方式在其他应用程序下输入时,有时也有效,比如,在浏览器中的输入框中。
可用的 Shell 快捷方式
Red Hat linux 带有不少快捷方式,其中一部分是 bash 原来就有的,而还有一些则是为您预先设置的在后面您将看到如何设置)。由于 home 目录是每位用户的活动中心,许多 Unix 对此有特殊的快捷方式。'~'就是您的 home 目录的简写形式。我们假设您在其他目录, 想把一个名为'sometext'的文件复制到您 home 目录下的 'docs'子目录中。除了输入:cp sometext /home/myusername/docs
您还可以用简写:cp sometext ~/docs
理论上,这也可以应用在命令'cd'上。无论当前路径在哪里,cd ~ 将回到您的home目录。其实还可以简化,只要键入 cd ,就可以返回 home 目录了。
Red Hat linux 为您提供了一些预先设置的快捷方式称为'别名',aliases),比如:
ll :将执行'ls -l -k'以长格式列出目录内容,包括一些文件属性,并以 KB 而不是 byte 为单位显示文件大小)
ls :将执行'ls -F --color=auto'列出目录内容,加上文件类型标识,并使用颜色)
现在,您应该对 shell 及一些快捷方式有了进一步的了解,下面我们来看看除了应用一些简单的命令,shell 还能作什么。
三、命令的排列/命令的任务调度/命令的替换

Linux 是以 Unix 家族的操作系统为模型写成的。

接着运行源.bashrc来读取内存中的变化,并运用mkcd命令完成两个服务:

 

接着运行源.bashrc来读取内存中的变化,并运用mkcd命令完成两个服务:

命令的排列
现在您将看到一些常用的命令排列。您可能想在一行中给出所有命令,然后就可以把注意力转移到其他地方。没问题,shell 允许您在不同的命令之间,放上特殊的排列字符(queuing characters) 。这儿将介绍最常用的两种。
请注意,为了看起来更清楚,我在这些字符两旁加了空格。而在实际应用中,您不一定要这么做,'ls -a ; du -hs'和'ls -a;du -hs'的效果是一样的。
command1 ; command2先执行 command1 ,不管 command1 是否出错,接下来执行 command2 。

第二章 什么是 Shell:
bash 是 shell 的一种,来自于 GNU 项目。“bash”是“Bourne Again SHell”的首字母缩写,
所指的是这样一个事实,bash 是 sh 的增强版,sh 是最初 Unix 的 shell 程序,
由 Steve Bourne 写成。

[email protected]:~$ mkcd articles
[email protected]:~/articles $

创建接着进入一个新目录是一个非常普通的任务,似乎在shell中执行两种命令都该有捷径。虽然没有捷径,你可以将以下函数添加到你的.bashrc文件:

[email protected]:~$ mkcd articles
[email protected]:~/articles $

terminals,xterms 和 shells shell是一个全功能的编程环境。其背景知识如下。 DEC公司推出的 PDP-11 ,体积小被称为 mini)而且价格...

KDE 用的是 konsole 程序, 而 GNOME 则使用 gnome-terminal。
还有其他一些终端仿真器可供 Linux 使用,但基本上,它们都是为了完成同样的事情,
让我们能访问 shell

2.回到前一目录

 

2.回到前一目录

[[email protected] ~]$

当你需要从结构复杂的目录中转移并想要回到初始目录时,你可以将之前一路径传递到cd命令,但是鲜为人知的cd命令让这件事变得琐碎。该顺序展示了该行为:

C代码  

当你需要从结构复杂的目录中转移并想要回到初始目录时,你可以将之前一路径传递到cd命令,但是鲜为人知的cd命令让这件事变得琐碎。该顺序展示了该行为:

“$" 普通用户

[email protected]:~/Documents/techtarget_articles/ten_command_line_tricks/test2$ cd
[email protected]:~$ cd -
~/Documents/techtarget_articles/ten_command_line_tricks/test2$
[email protected]:~/Documents/techtarget_articles/ten_command_line_tricks/test2$

mkcd()  

[email protected]:~/Documents/techtarget_articles/ten_command_line_tricks/test2$ cd
[email protected]:~$ cd -
~/Documents/techtarget_articles/ten_command_line_tricks/test2$
[email protected]:~/Documents/techtarget_articles/ten_command_line_tricks/test2$

a pound sign (“#”),提示符的最后一个字符是“#”, 而不是“$”, 那么这个终端会话就有超级用户权限。

3.创建目录书签

{  

3.创建目录书签

命令历史
查看以往的输入的命令,向上箭头

继续跟随目录互动的主题,你会不可避免地一次次回到某些目录。可以通过添加到$CDPATH shell变体的路径在你的.bashrc文件中)来创建能让你快速导航到这些目录的书签:

mkdir -p $1  

继续跟随目录互动的主题,你会不可避免地一次次回到某些目录。可以通过添加到$CDPATH shell变体的路径(在你的.bashrc文件中)来创建能让你快速导航到这些目录的书签:

显示系统当前时间和日期
[[email protected] ~]# date
Tue Nov 26 23:38:14 CST 2013

CDPATH='.:/home/wjgilmore/books'

cd $1  

CDPATH='.:/home/wjgilmore/books'

默认显示当前月份的日历
[[email protected] ~]# cal
November 2013
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

一旦添加,你可以从操作系统路径中的任一处直接导航到书签目录,只需要执行如下命令:

}  

一旦添加,你可以从操作系统路径中的任一处直接导航到书签目录,只需要执行如下命令:

查看磁盘剩余空间(free space on your disk drives)的数量,输入 df:
[[email protected] ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/xvda1 20469760 7366592 13103168 36% /
tmpfs 1960828 0 1960828 0% /dev/shm

$ cd books

 

$ cd books

同样地,显示空闲内存的数量(the amount of free memory),输入命令 free。
[[email protected] ~]# free
total used free shared buffers cached
Mem: 3921656 2141516 1780140 0 656 168692
-/ buffers/cache: 1972168 1949488
Swap: 490488 2348 488140

4.熟练地编辑命令行

 

4.熟练地编辑命令行

结束终端会话,也即退出终端
[[email protected] ~]# exit
logout

你有多少次在沉闷地编辑和执行一系列略微不同的命令?例如我在忙于创建来自Markdown源的不同书本章节的PDF版本时,我通常执行以下命令:

接着运行源.bashrc来读取内存中的变化,并运用mkcd命令完成两个服务:

你有多少次在沉闷地编辑和执行一系列略微不同的命令?例如我在忙于创建来自Markdown源的不同书本章节的PDF版本时,我通常执行以下命令:

第三章:

$ pandoc -o html/chapter06.html chapters/chapter06.md  --template=templates/html.template

C代码  

$ pandoc -o html/chapter06.html chapters/chapter06.md --template=templates/html.template
pwd - 打印当前所在目录的名称
cd  - 改变目录
ls  - 打印目录的内容

为了也创建chapter04.md源文件,命令行初学者会很快厌倦用向上箭头在历史中检索之前执行上一)命令,然后用左指箭头直到用chapter04.md更换了所有chapter06.md实例。还有很多更高效的方式来执行该任务。首先,考虑使用Bash的命令行编辑键盘快捷键两种支持模式:Emacs和vi),这让你可以快速地导航到想去的位置:

[email protected]:~$ mkcd catogory/articles  

为了也创建chapter04.md源文件,命令行初学者会很快厌倦用向上箭头在历史中检索之前执行(上一)命令,然后用左指箭头直到用chapter04.md更换了所有chapter06.md实例。还有很多更高效的方式来执行该任务。首先,考虑使用Bash的命令行编辑键盘快捷键(两种支持模式:Emacs和vi),这让你可以快速地导航到想去的位置:

[[email protected] ~]# pwd
/root

Ctrl a:去往首行
Ctrl e: 去往末行
Alt f: 前进一个字
Alt b: 退后一个字

[email protected]:~/catogory/articles $   

Ctrl a:去往首行

Understanding The File System Tree理解文件系统树
文件系统中的第一级目录称为根目录

第二种且可能更有效的方法是使用命令行替换。接下来的命令会将在之前执行命令中发现的06用04代替:

 

Ctrl e: 去往末行

The Current Working Directory当前工作目录
[[email protected] ~]# pwd
/root

$ pandoc -o html/chapter06.html chapters/chapter06.md  --template=templates/html.template
$ !!:gs/06/04
pandoc -o html/chapter04.html chapters/chapter04.md  --template=templates/html.template

 

Alt f: 前进一个字

Listing The Contents Of A Directory列出目录内容
[[email protected] usr]# ls
bin etc games include lib lib64 libexec local sbin share src tmp

如果你正偶然地使用GNOME终端,那么元Alt)键不会如描述般工作,因为GNO ME终端已经绑定Alt键到工具栏命令。你还可以选择使用Shift Alt作为元键,但是这有点笨拙。相反地,如果你不需要工具栏命令快捷键,通过导航到编辑-> 键盘快捷键来关闭它们…也能关闭启用菜单访问键选项。

  1. 回到前一目录

Alt b: 退后一个字

Changing The Current Working Directory更改当前工作目录
从根目录(用开头的“/”表示)开始,有一个叫 “usr” 的 目录包含了目录 “bin”。
[[email protected] local]# cd /usr/bin/

5.为之后的使用保存长命令

当你需要从结构复杂的目录中转移并想要回到初始目录时,你可以将之前一路径传递到cd命令,但是鲜为人知的cd命令让这件事变得琐碎。该顺序展示了该行为:

第二种且可能更有效的方法是使用命令行替换。接下来的命令会将在之前执行命令中发现的06用04代替:

符号 ”.” 指的是工作目录,”..” 指的是工作目录的父目录。
经常使用 cd .. 返回上级目录
cd ..
cd ../../..

当通过一列系统管理员操作的工作时,可以输入特定的长命令并在执行它之前意识到省去序列中的一个步骤。相比于删除该命令,你可以将其保存到历史,而不用通过添加井号键#)到命令开端:

C代码  

$ pandoc -o html/chapter06.html chapters/chapter06.md --template=templates/html.template
$ !!:gs/06/04
pandoc -o html/chapter04.html chapters/chapter04.md --template=templates/html.template

cd 更改工作目录到主目录。
cd - 更改工作目录到先前的工作目录。
cd ~user_name 更改工作目录到用户主目录。例如, cd ~bob 会更改工作目录到用户“bob”的主目录
第四章:
ls 有一些我们常用的参数, 比如我们要知道当前目录的所有内容, 包括隐藏文件夹和文件和所有属性, 例
[[email protected] logs]# ls
boot2013-06.log

$ #this is some ridiculously long command that I want to save

[email protected]:~/Documents/techtarget_articles/ten_command_line_tricks/test2$ cd  

如果你正偶然地使用GNOME终端,那么元(Alt)键不会如描述般工作,因为GNO ME终端已经绑定Alt键到工具栏命令。你还可以选择使用Shift Alt作为元键,但是这有点笨拙。相反地,如果你不需要工具栏命令快捷键,通过导航到编辑-> 键盘快捷键来关闭它们…也能关闭启用菜单访问键选项。

使用 ls 命令的“-l”选项,则结果以长模式输出:
[[email protected] logs]# ls -l
total 8
-rw-rw-rw- 1 root root 5975 Jun 15 17:34 boot2013-06.log

在按下Enter键后,用向上箭头,你会看见保存的命令。要执行该命令,只要在执行前从行的开始移开井号键。

[email protected]:~$ cd -  

5.为之后的使用保存长命令

显示隐藏文件:
[[email protected] logs]# ls -a
. .. boot2013-06.log

6.运用命令别名保存输入

~/Documents/techtarget_articles/ten_command_line_tricks/test2$  

当通过一列系统管理员操作的工作时,可以输入特定的长命令并在执行它之前意识到省去序列中的一个步骤。相比于删除该命令,你可以将其保存到历史,而不用通过添加井号键(#)到命令开端:

命令 选项 参数
command -options arguments
下面这个例子,ls 命令有两个选项, “l” 选项产生长格式输出,“t”选项按文件修改时间的先后来排序。
[[email protected] ~]$ ls -lt

ls命令的长列表格式ls -l)可以频繁地运用,但是连字符让它在大量输入时有点不实用。你可以使用.bashrc内的别名命令创建命令别名用于长命令。在这个例子中,命令别名dir是ls –l的替代。

[email protected]:~/Documents/techtarget_articles/ten_command_line_tricks/test2$  

$ #this is some ridiculously long command that I want to save

确定一个文件什么文件类型我们用 file, 使用方法如下
[[email protected] logs]# file boot2013-06.log
boot2013-06.log: ASCII text

alias dir='ls -l'

 

在按下Enter键后,用向上箭头,你会看见保存的命令。要执行该命令,只要在执行前从行的开始移开井号键。

[[email protected] assets]# file world.swf
world.swf: Macromedia Flash data (compressed), version 10

7.通过忽略输入错误保存更多输入

 

6.运用命令别名保存输入

用 less 浏览文件内容
[[email protected] ~]$ less /etc/passwd
TODO 表 4-3: less 命令 需要截图哦。

你正处于终端区域,在任意地复制、更新和移除文件时从一个目录激发到下一个。或者你不在终端区域,由于手指比大脑运动得更快,甚至键盘反应时间可以处理,这导致你要不断地返回并更正你的输入错误。在你的.bashrc文件中添加以下行,shell会在识别文件或路径名字时自动地修正所有输入错误。

  1. 创建目录书签

ls命令的长列表格式(ls -l)可以频繁地运用,但是连字符让它在大量输入时有点不实用。你可以使用.bashrc内的别名命令创建命令别名用于长命令。在这个例子中,命令别名dir是ls –l的替代。

小提示:记得复制和粘贴技巧!如果你正在使用鼠标,双击文件名,来复制它,然后按下鼠标中键,粘贴文件名到命令行中。

shopt -s cdspell

继续跟随目录互动的主题,你会不可避免地一次次回到某些目录。可以通过添加到$CDPATH shell变体的路径(在你的.bashrc文件中)来创建能让你快速导航到这些目录的书签:

alias dir='ls -l'

Symbolic Links符号链接
Hard Links硬链接

  8.在后台打开应用程序

C代码  

7.通过忽略输入错误保存更多输入

第五章:操作文件和目录

当巡视命令行时,你也许会需要进行另一个任务,如响应一封邮件。当然,可以按你执行其它命令的方式从终端打开GUI应用,只需通过调用它们的名字完成,在这个例子中,打开Gimp:

CDPATH=’.:/home/tektea/books’  

你正处于终端区域,在任意地复制、更新和移除文件时从一个目录激发到下一个。或者你不在终端区域,由于手指比大脑运动得更快,甚至键盘反应时间可以处理,这导致你要不断地返回并更正你的输入错误。在你的.bashrc文件中添加以下行,shell会在识别文件或路径名字时自动地修正所有输入错误。

cp — 复制文件和目录
mv — 移动/重命名文件和目录
mkdir — 创建目录
rm — 删除文件和目录

$ gimp

 

shopt -s cdspell

ln — 创建硬链接和符号链接 TODO没搞懂 和Window快捷键的区别联系 点击打开链接

但是有效地这么做结束了你的终端会话,因为应用程序会在前台打开。如果你正从命令行中常规打开一个特定程序,考虑在你的.bashrc文件里修改它的默认调用:

一旦添加,你可以从操作系统路径中的任一处直接导航到书签目录,只需要执行如下命令:

8.在后台打开应用程序

cp — 复制文件和目录

gimp()
{
  command gimp "[email protected]" &
}

C代码  

当巡视命令行时,你也许会需要进行另一个任务,如响应一封邮件。当然,可以按你执行其它命令的方式从终端打开GUI应用,只需通过调用它们的名字完成,在这个例子中,打开Gimp:

[email protected]:~$ cp item1 item2 # 把item复制到directory目录

重载你的.bashrc文件见源命令),你将能调用Gimp应用,和任意你想要打开的图像文件名称一起传递,还有保留终端控制的附加福利。

$ cd books  

$ gimp

[email protected]:~$ cp file1 file2 # 复制file1到file2

9.以少换多

 

但是有效地这么做结束了你的终端会话,因为应用程序会在前台打开。如果你正从命令行中常规打开一个特定程序,考虑在你的.bashrc文件里修改它的默认调用:

[email protected]:~$ cp -i file1 file2 # 复制过程中如果有这个文件提示是否覆盖

更多的命令在快速细读文本文件内容时实用。一旦文件负载到页面,你可以运用/来搜索文件。问题并是一旦你发现想要的行,向上导航并检查看上去高于该行的内容不可能。更少的命令并不是劣势,它允许你可以实现向上和向下的文本滚动。以相同的方式调用越少的命令得到的越多:

 

gimp()
{
command gimp "[email protected]" &
}

[email protected]:~$ cp dir1/* dir2 # 复制目录下所有文件或目录到目标目录

$ less sometextfile.txt

  1. 熟练地编辑命令行

重载你的.bashrc文件(见源命令),你将能调用Gimp应用,和任意你想要打开的图像文件名称一起传递,还有保留终端控制的附加福利。

[email protected]:~$ cp -r dir1 dir2 # 递归复制

10.清理你的命令行历史

你有多少次在沉闷地编辑和执行一系列略微不同的命令?例如我在忙于创建来自Markdown源的不同书本章节的PDF版本时,我通常执行以下命令:

9.以少换多

mkdir — 创建目录
[email protected]:~$ mkdir dir

历史命令history command)很容易成为你能支配的最有力工具之一。但是有一个节省时间的命令尤其值得一提:$HISTIGNORE shell变量。

 

更多的命令在快速细读文本文件内容时实用。一旦文件负载到页面,你可以运用/来搜索文件。问题并是一旦你发现想要的行,向上导航并检查看上去高于该行的内容不可能。更少的命令并不是劣势,它允许你可以实现向上和向下的文本滚动。以相同的方式调用越少的命令得到的越多:

[email protected]:~$ mkdir dir1 dir2 dir3 # 创建多个文件夹

随着时间,你的历史列表会变得非常长。利用$HISTIGNORE变量来排泄你认为不相关的记录:

C代码  

$ less sometextfile.txt

[email protected]:~$ mkdir -p /dir1/dir2/dir3 # 递归创建文件夹

$ export $HISTIGNORE="&:cd:exit:ls"

$ pandoc -o html/chapter06.html chapters/chapter06.md –template=templates/html.template  

10.清理你的命令行历史

mv — 移动/重命名文件和目录
[email protected]:~$ mv file1 file2 # 重命名

这会导致所有复制的命令、cd、离开和ls命令从历史命令中遗漏。

 

历史命令(history command)很容易成为你能支配的最有力工具之一。但是有一个节省时间的命令尤其值得一提:$HISTIGNORE shell变量。

[email protected]:~$ mv -i file1 file2 # 如果存在提示是否写入

速度是管理命令行的关键,而这十个技巧应该可以帮助你开始你的命令行管理。

 

随着时间,你的历史列表会变得非常长。利用$HISTIGNORE变量来排泄你认为不相关的记录:

[澳门新萄京官方网站:Shell的台本编程,为Linux管理员节省时间的十条命令行。email protected]:~$ mv file1 file2 dir1 # 移动 file1 file2 至 dir1

Unity界面),根据可以提供给有经验系统管理员的力量,命令行依...

为了也创建chapter04.md源文件,命令行初学者会很快厌倦用向上箭头在历史中检索之前执行(上一)命令,然后用左指箭头直到用 chapter04.md更换了所有chapter06.md实例。还有很多更高效的方式来执行该任务。

$ export $HISTIGNORE="&:cd:exit:ls"

[email protected]:~$ mv dir1 dir2 # 移动 dir1 至 dir2

 

这会导致所有复制的命令、cd、离开和ls命令从历史命令中遗漏。

rm — 删除文件和目录
[email protected]:~$ rm file1

首先,考虑使用Bash的命令行编辑键盘快捷键 (两种支持模式:Emacs和vi),这让你可以快速地导航到想去的位置:

速度是管理命令行的关键,而这十个技巧应该可以帮助你开始你的命令行管理。如果你想与我们分享其它技巧,请通过网站与我联系。

[email protected]:~$ rm file1 dir1

 

原文:

[email protected]:~$ rm -r dir1 #删除文件夹, 递归删除

Ctrl a:去往首行

英文原文:Ten command line time-savers for Linux administrators

[email protected]:~$ rm -rf dir1 强制删除

Ctrl e: 去往末行

Unity界面),根据可以提供给有经验系统管理员的力量,命令行依然...

 

Alt f: 前进一个字

表5-3:通配符范例
模式 匹配对象
* 所有文件
g* 文件名以“g”开头的文件
b*.txt 以"b"开头,中间有零个或任意多个字符,并以".txt"结尾的文件
Data??? 以“Data”开头,其后紧接着3个字符的文件
[abc]* 文件名以"a","b",或"c"开头的文件
BACKUP.[0-9][0-9][0-9] 以"BACKUP."开头,并紧接着3个数字的文件
[[:upper:]]* 以大写字母开头的文件
[![:digit:]]* 不以数字开头的文件
*[[:lower:]123] 文件名以小写字母结尾,或以 “1”,“2”,或 “3” 结尾的文件

Alt b: 退后一个字

 

 

表5-4:cp 选项
选项 意义
-a, --archive 复制文件和目录,以及它们的属性,包括所有权和权限。 通常,复本具有用户所操作文件的默认属性。
-i, --interactive 在重写已存在文件之前,提示用户确认。如果这个选项不指定, cp 命令会默认重写文件。
-r, --recursive 递归地复制目录及目录中的内容。当复制目录时, 需要这个选项(或者-a 选项)。
-u, --update 当把文件从一个目录复制到另一个目录时,仅复制 目标目录中不存在的文件,或者是文件内容新于目标目录中已经存在的文件。
-v, --verbose 显示翔实的命令操作信息



表 5—5: cp 实例
命令 运行结果
cp file1 file2 复制文件 file1内容到文件 file2。如果 file2已经存在,file2的内容会被 file1的 内容重写。如果 file2不存在,则会创建 file2。
cp -i file1 file2 这条命令和上面的命令一样,除了如果文件 file2存在的话,在文件 file2被重写之前, 会提示用户确认信息。
cp file1 file2 dir1 复制文件 file1和文件 file2到目录 dir1。目录 dir1必须存在。
cp dir1/* dir2 使用一个通配符,在目录 dir1中的所有文件都被复制到目录 dir2中。 dir2必须已经存在。
cp -r dir1 dir2 复制目录 dir1中的内容到目录 dir2。如果目录 dir2不存在, 创建目录 dir2,操作完成后,目录 dir2中的内容和 dir1中的一样。 如果目录 dir2存在,则目录 dir1(和目录中的内容)将会被复制到 dir2中。

 

第六章:点击打开链接

第二种且可能更有效的方法是使用命令行替换。接下来的命令会将在之前执行命令中发现的06用04代替:

type    - 解读一个命令
which   - 显示哪些是可执行程序,which 确定一个可执行程序的位置
man     - 显示命令手册
apropos - 显示一个合适的命令列表
info    - 显示一个命令信息
whatis  - 显示非常简短的描述一个命令
alias   - 为命令创建一个别名 

[[email protected] test]$ type type
type is a shell builtin

[[email protected] test]$ type ls
ls is aliased to `ls --color=tty'

[[email protected] test]$ type cp
cp is hashed (/bin/cp)

[[email protected] test]$ which ls #which 确定一个可执行程序的位置
alias ls='ls --color=tty'
        /bin/ls

[[email protected] test]$ which vim
/usr/bin/vim

C代码  

help 获得帮助信息, 在每个shell命令的后面加上--help参数, 如

$ pandoc -o html/chapter06.html chapters/chapter06.md –template=templates/html.template  

[[email protected] test]$ ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort.

[[email protected] test]$ help cd
cd: cd [-L|-P] [dir]
     Change the current directory to DIR.  The variable $HOME is the
    default DIR.  

$ !!:gs/06/04  

注意表示法:出现在命令语法说明中的方括号,表示可选的项目。一个竖杠字符 表示互斥选项。在上面 cd 命令的例子中:
cd [-L|-P] [dir]

pandoc -o html/chapter04.html chapters/chapter04.md –template=templates/html.template  

这种表示法说明,cd 命令可能有一个”-L”选项或者”-P”选项,进一步,可能有参数”dir”。

 

man 获得命令指南

 

[[email protected] test]$ man ls 

如果你正偶然地使用GNOME终端,那么元(Alt)键不会如描述般工作,因为GNO ME终端已经绑定Alt键到工具栏命令。你还可以选择使用Shift Alt作为元键,但是这有点笨拙。相反地,如果你不需要工具栏命令快捷键,通过导航到编辑-> 键盘快捷键来关闭它们…也能关闭启用菜单访问键选项。

whatis 显示一个简短的描述

 

[[email protected] test]$ whatis ls
ls                   (1)  - list directory contents
ls                   (1p)  - list directory contents

[[email protected] test]$ whatis vim
vim                  (1)  - Vi IMproved, a programmers text editor 

 

用别名(alias)创建你自己的命令

  1. 为之后的使用保存长命令
[email protected]:~$ type test
test is a shell builtin

[email protected]:~$ type foo
/bin/bash: line 0: type: foo: not found      # 什么都没有

[email protected]:~$ alias foo='cd /usr; ls; cd -'

[email protected]:~$ alias name='string'

[email protected]:~$ alias                         # 创建de自定义命令都打印出来
alias foo='cd /usr; ls; cd -'
alias name='string'

[email protected]:~$ foo
bin include lib local man sbin share src
/home/shijiangge

[email protected]:~$ type foo
foo is aliased to 'cd /usr; ls; cd -'

[email protected]:~$ unalias foo                   # 销毁foo

[email protected]:~$ alias                         # 只剩下name了
alia name='string'

[email protected]:~$ type foo                      # 什么都没有
/bin/bash: foo: command not found

[email protected]:~$ unalias name                  # 销毁name 

当通过一列系统管理员操作的工作时,可以输入特定的长命令并在执行它之前意识到省去序列中的一个步骤。相比于删除该命令,你可以将其保存到历史,而不用通过添加井号键(#)到命令开端:

TODO第七章

C代码  

==========================================

$ #this is some ridiculously long command that I want to save  

Lunix 调整时间,就是将服务器时间调快或调慢,线上一般不要调整时间,本地为了测试在调整服务器时间的。

 

date -s 07/09/2013
date -s 17:05:00

在按下Enter键后,用向上箭头,你会看见保存的命令。要执行该命令,只要在执行前从行的开始移开井号键。

==========================================
mysql命令行导入sql文件到指定数据库的方法

 

mysql命令行导入的方式。
以下是各步骤:

 

1、先将数据库通过ftp上传至服务器内
或者使用 rz -y 进行上传

  1. 运用命令别名保存输入

2、登陆mysql数据库:
mysql -u root -p

ls命令的长列表格式(ls -l)可以频繁地运用,但是连字符让它在大量输入时有点不实用。你可以使用.bashrc内的别名命令创建命令别名用于长命令。在这个例子中,命令别名dir是ls –l的替代。

3、选择数据库:

C代码  

use mydbname;

alias dir=’ls -l’  

4、导入文件:

 

[win下] source e:newdb.sql;

 

[linux下] source /root/newdb.sql;

  1. 通过忽略输入错误保存更多输入

导入成功!

你正处于终端区域,在任意地复制、更新和移除文件时从一个目录激发到下一个。或者你不在终端区域,由于手指比大脑运动得更快,甚至键盘反应时间可以处理, 这导致你要不断地返回并更正你的输入错误。在你的.bashrc文件中添加以下行,shell会在识别文件或路径名字时自动地修正所有输入错误。

==============================================
再来一个导出的吧(不用在mysql命令行):
mysqldump -uroot -p dbname table1 table2 > foo.sql

C代码  

mysqldump -uroot -p huo > /usr/local/jiangge/foo.sql

shopt -s cdspell  

压缩:
zip -r webgames.zip webgames

 

===================================================
FTP--ftp 启动命令:
service vsftpd start

 


  1. 在后台打开应用程序

the graphical user interface (GUI) 图形界面 The Command Line 命令行 Linux 是以 Unix 家族的操作系统为模...

当巡视命令行时,你也许会需要进行另一个任务,如响应一封邮件。当然,可以按你执行其它命令的方式从终端打开GUI应用,只需通过调用它们的名字完成,在这个例子中,打开Gimp:

C代码  

$ gimp  

 

但是有效地这么做结束了你的终端会话,因为应用程序会在前台打开。如果你正从命令行中常规打开一个特定程序,考虑在你的.bashrc文件里修改它的默认调用:

 

C代码  

gimp()  

{  

command gimp “[email protected]” &  

}  

 

 

重载你的.bashrc文件(见源命令),你将能调用Gimp应用,和任意你想要打开的图像文件名称一起传递,还有保留终端控制的附加福利。

 

 

  1. 以少换多

更多的命令在快速细读文本文件内容时实用。一旦文件负载到页面,你可以运用/来搜索文件。问题并是一旦你发现想要的行,向上导航并检查看上去高于该行的内容不可能。更少的命令并不是劣势,它允许你可以实现向上和向下的文本滚动。以相同的方式调用越少的命令得到的越多:

C代码  

$ less sometextfile.txt  

 

 

10.清理你的命令行历史

历史命令(history command)很容易成为你能支配的最有力工具之一。但是有一个节省时间的命令尤其值得一提:$HISTIGNORE shell变量。

随着时间,你的历史列表会变得非常长。利用$HISTIGNORE变量来排泄你认为不相关的记录:

 

C代码  

$ export $HISTIGNORE=”&:cd:exit:ls”  

 

 

这会导致所有复制的命令、cd、离开和ls命令从历史命令中遗漏。

 

速度是管理命令行的关键,而这十个技巧看似雕虫小技,但关键时刻(比如:面试)应该可以帮得上你的。

 

尽管Linux桌面在过去二十年中经历了巨大的改变(例如:Ubuntu Unity界面),但命令行操作模式永远是对...

本文由澳门新萄京官方网站发布于服务器运维,转载请注明出处:澳门新萄京官方网站:Shell的台本编程,为Linux管

关键词: