Avishek Kumar 发布的文章

对于那些使用Linux命令行的人来说,‘pwd‘命令是非常有用的,它告诉你你现在在那个目录,从根目录(/)如何到达。特别是对于或许会在目录的切换间容易糊涂的Linux新手而言,‘pwd‘ 可以拯救他们。

15 pwd Command Examples

什么是pwd?

pwd‘ 代表的是‘Print Working Directory’(打印当前目录)。如它的名字那样,‘pwd’会打印出当前工作目录,或简单的来说就是当前用户所位于的目录。它会打印出以根目录 (/)为起点的完整目录名(绝对目录)。这条命令是一条shell内建命令,并且在大多数shell中都可以使用,如bash、Bourne shell,ksh、zsh等等。

pwd的基本语法:

# pwd [OPTION]

pwd的选项

| 选项 | 描述 |
| -L (即逻辑路径logical ) | 使用环境中的路径,即使包含了符号链接 |
| -P (即物理路径physical) | 避免所有的符号链接 |
| –help | 显示帮助并退出 |
| –version | 输出版本信息并退出 |

如果同时使用了‘-L‘和‘-P‘,‘-L‘会有更高的优先级。如果没有指定参数,pwd会避开所有的软链接,也就是说会使用‘-P‘参数。

pwd的退出状态:

| 0 | 成功 |
| 非零值 | 失败 |

本篇的目的是采用例子让你对‘pwd‘有更深入的领悟。

1. 打印当前工作目录.

avi@tecmint:~$ /bin/pwd
/home/avi

Print Working Directory

打印工作目录

2. 为文件夹创建一个符号链接(比如说在home目录下创建一个htm链接指向/var/www/html)。进入新创建的目录并打印出含有以及不含符号链接的目录。

在home目录下创建一个htm链接指向/var/www/html,并进入。

avi@tecmint:~$ ln -s /var/www/html/ htm
avi@tecmint:~$ cd htm

Create Symbolic Link

创建符号链接

3. 从当前环境中打印目录即使它含有符号链接。

avi@tecmint:~$ /bin/pwd -L
/home/avi/htm

Print Current Working Directory

打印工作目录

4. 解析符号链接并打印出物理目录。

avi@tecmint:~$ /bin/pwd -P
/var/www/html

Print Physical Working Directory

打印物理工作目录

5. 查看一下“pwd”和“pwd -P”的输出是否一致,也就是说,如果没有跟上选项,“pwd”时候会自动采用-P选项。

avi@tecmint:~$ /bin/pwd
/var/www/html

Check pwd Output

检查pwd输出

结论: 上面例子4和5的输出很明显(结果相同),当你“pwd”后面不带参数时,pwd会使用“-P”选项。

6. 打印pwd命令的版本。

avi@tecmint:~$ /bin/pwd --version

pwd (GNU coreutils) 8.23
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Jim Meyering.

Check pwd Version

检查pwd命令版本

注意: ‘pwd’ 通常不带选项运行,且没有任何参数

重要: 你可能注意到我们刚才运行的都是 “/bin/pwd” 而不是 “pwd”。

这有什么区别呢?直接使用“pwd”意味着使用shell内置的pwd。你的shell可能有不同版本的pwd。具体请参考手册。当你使用的是/bin/pwd时,我们调用的是二进制版本的命令。虽然二进制的版本有更多的选项,但是它们两者都能打印当前的目录。

7. 打印所有含有可执行pwd的路径

avi@tecmint:~$ type -a pwd
pwd is a shell builtin
pwd is /bin/pwd

Print Executable Locations

打印可执行文件路径

8. 存储“pwd”命令的值到变量中(比如说:a ),并从中打印变量的值(对于观察shell脚本很重要)。

avi@tecmint:~$ a=$(pwd)
avi@tecmint:~$ echo "Current working directory is : $a"
Current working directory is : /home/avi

Store Pwd Value in Variable

存储pwd的值到变量中

下面的例子中也可以用printf来替代。

9. 将工作路径切换到其他地方(比如说 /home),并在命令行中显示。通过执行命令(比如说 ‘ls‘)来验证一切OK

avi@tecmint:~$ cd /home
avi@tecmint:~$ PS1='$pwd> '     [注意例子中的单引号]
> ls

Change Current Working Directory

改变当前工作路径

10. 设置多行显示 (就像下面这样),

/home
123#Hello#!

接着执行命令(比如说 ls)来检验一切OK

avi@tecmint:~$ PS1='
> $PWD
$ 123#Hello#!
$ '

/home
123#Hello#!

Set Multi Commandline Prompt

设置多行显示

11. 一下子检查当前工作路径以及先前的工作路径。

avi@tecmint:~$ echo “$PWD $OLDPWD”
/home /home/avi

Check Present Previous Working Directory

检查当前工作路径

12. pwd文件的绝对路径(以/开始)。

/bin/pwd 

13. pwd源文件文件的绝对路径(以/开始)。

/usr/include/pwd.h 

13. pwd手册的绝对路径(以/开始)。

/usr/share/man/man1/pwd.1.gz

15. 写一个shell脚本分析home目录下的一个目录(比如tecmint)。如果当前目录是tecmint就输出“Well! You are in tecmint directory”接着输出“Good Bye”,不然就在tecmint下面创建一个目录并提示你cd进入它。

让我们首先创建一个‘tecmint’目录,在下面创建一个名为‘pwd.sh’的脚本文件。

avi@tecmint:~$ mkdir tecmint
avi@tecmint:~$ cd tecmint
avi@tecmint:~$ nano pwd.sh

接下来在pwd.sh中加入下面的脚本。

#!/bin/bash

x="$(pwd)"
if [ "$x" == "/home/$USER/tecmint" ]
then
     {
      echo "Well you are in tecmint directory"
      echo "Good Bye"
     }
else
     {
      mkdir /home/$USER/tecmint
      echo "Created Directory tecmint you may now cd to it"
     }
fi

给予执行权限并运行。

avi@tecmint:~$ chmod 755 pwd.sh
avi@tecmint:~$ ./pwd.sh
Well you are in tecmint directory
Good Bye

总结

pwd是一个最简单且会广泛用到的命令。掌握好pwd是使用Linux终端的基础。就是这些了。我很快会再带来另外有趣的文章,请不要走开继续关注我们。


via: http://www.tecmint.com/pwd-command-examples/

作者:Avishek Kumar 译者:geekpi 校对:wxy

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

Linux 命令行有很多的乐趣,我们可以很容易并且完善地执行很多繁琐的任务。比如,我们计算一个文本文件中字和字符的出现频率,这就是我们打算在这篇文章中讲到的。

立刻来到我们脑海的命令,计算字和字符在一个文本文件中出现频率的 Linux 命令是 wc 命令

在使用的脚本来分析文本文件之前,我们必须有一个文本文件。为了保持一致性,我们将创建一个文本文件,man命令的输出如下所述。

$ man man > man.txt

以上命令是将man命令的使用方式导入到man.txt文件里。

我们希望能得到最平常的单词,对之前我们新建的文件执行如下脚本。

$ cat man.txt | tr ' '  '\012' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | grep -v '[^a-z]' | sort | uniq -c | sort -rn | head

Sample Output

7557 
262 the 
163 to 
112 is 
112 a 
78 of 
78 manual 
76 and 
64 if 
63 be

上面的脚本,输出了最常使用的十个单词。

如何看单个的字母呢?那就用如下的命令。

$ echo 'tecmint team' | fold -w1

Sample Output

t 
e 
c 
m 
i 
n 
t 
t 
e 
a 
m

: -w1只是设定了长度

现在我们将从那个文本文件中掰下来的每一个字母,对结果进行排序,得到所需的输出频率的十个最常见的字符。

$ fold -w1 < man.txt | sort | uniq -c | sort -rn | head

Sample Output

8579  
2413 e
1987 a
1875 t
1644 i
1553 n
1522 o
1514 s
1224 r
1021 l

如何区分大小写呢?之前我们都是忽略大小写的。所以,用如下命令。

$ fold -w1 < man.txt | sort | tr '[:lower:]' '[:upper:]' | uniq -c | sort -rn | head -20

Sample Output

11636  
2504 E 
2079 A 
2005 T 
1729 I 
1645 N 
1632 S 
1580 o
1269 R 
1055 L 
836 H 
791 P 
766 D 
753 C 
725 M 
690 U 
605 F 
504 G 
352 Y 
344 .

请检查上面的输出,标点符号居然包括在内。让我们干掉他,用tr 命令。GO:

$ fold -w1 < man.txt | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -20

Sample Output

  11636  
  2504 E 
  2079 A 
  2005 T 
  1729 I 
  1645 N 
  1632 S 
  1580 O 
  1550 
  1269 R 
  1055 L 
   836 H 
   791 P 
   766 D 
   753 C 
   725 M 
   690 U 
   605 F 
   504 G 
   352 Y

现在,我们有了三个文本,那就让我们用如下命令查看结果吧。

$ cat *.txt | fold -w1 | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -8

Sample Output

  11636  
   2504 E 
   2079 A 
   2005 T 
   1729 I 
   1645 N 
   1632 S 
   1580 O

下一步我们将会生成那些罕见的至少十个字母长的单词。以下是简单的脚本:

$ cat man.txt | tr '' '\012' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | tr -d '[0-9]' | sort | uniq -c | sort -n |  grep -E '..................' | head

Sample Output

1        ────────────────────────────────────────── 
1        a all 
1        abc             any or all arguments within   are optional 
1               able  see setlocale for precise details 
1        ab              options delimited by  cannot be used together 
1               achieved by using the less environment variable 
1              a child process returned a nonzero exit status 
1               act as if this option was supplied using the name as a filename 
1               activate local mode  format and display  local  manual  files 
1               acute accent

: 上面的.越来越多,其实,我们可以使用.{10} 得到同样的效果。

这些简单的脚本,让我们知道最频繁出现的单词和英语中的字符。

现在结束了。下次我会在这里讲到另一个有趣的话题,你应该会喜欢读。还有别忘了向我们提供您的宝贵意见。


via: http://www.tecmint.com/play-with-word-and-character-counts-in-linux/

作者:Avishek Kumar 译者:MikeCoder 校对:wxy

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

摘要: 慕尼黑市市长透露了在该市摆脱微软十年之后再次放弃 Linux 重返 Windows 的费用,大约需要数以百万计的欧元。

慕尼黑市市长透露,重返 Windows 将需要花费上百万欧元购买新的硬件。

今年早些时候,该市新当选的市长提出慕尼黑可能重返 Windows,尽管市当局用了若干年才迁移到基于 Linux 的操作系统和开源软件。(摘要译文:http://linux.cn/article-2294-1.html)

作为最著名的从微软迁移到 Linux 桌面系统的案例,慕尼黑投向开源软件的做法一直引发各种争议和讨论。慕尼黑的迁移始于2004年,还有一些德国的地方当局也追随它的脚步转向开源

目前还没有制定好返回 Windows 桌面的计划,但是当局正在调研哪种操作系统和软件包(包括专有软件和开源软件)更适合他们的需求。调研报告也将统计迁移到开源软件所花费的费用。

Dieter Reiter市长在回应慕尼黑的绿党的问询(PDF)时透露了重返 Windows 的费用。

Reiter 说,迁移到 Windows 7 需要替换它14000名以上的职员的所有个人电脑,此举将花费 315万欧元。这还没有包括软件许可证费用和基础设施的投入,Reiter 说由于没有进一步计划,所以还没办法测算。他说,如果迁移到 Windows 8 将花费更多。

Reiter 说,返回微软将导致迁移到 Limux、OpenOffice 及其它开源开源所花费的1400万欧元打了水漂。而部署 Limux 并从微软 Office 迁移的项目实施、支持、培训、修改系统以及 Limux 相关软件的授权等工作都将被搁置,他补充道。

他还透露说,(之前)迁移到 Limux 为市政府节约了大概1100万欧元的许可证和硬件费用,因为基于 Ubuntu 的 Limux 操作系统要比升级较新版本的 Windows 对硬件的需要要低。

在这个回应中 Reiter 告诉 Stadtbild 杂志说,他是微软的粉丝,但是这并不会影响到这份 IT 审计报告。

“在接受 Stadtbild 杂志的采访中我透露我是微软粉丝后,我就收到了大量的信件,询问我们的 IT 团队是否能令人满意的满足用户在任何时候的需求,以及是否有足够的能力为一个现代化大都市的政府服务。”

“这件事有许多方面,用户满意度是其中之一。这和我个人偏好无关,也和我在开源方面的经验无关。”

在他的回应中,并不是由于职员们的对迁移到开源的抱怨而导致本次审计的决定。他说,这是来自对职员在 IT 方面的调查而产生的审计,并不独是 Limux OS。

他还提到了一个 Windows 和基于 Linux 的操作系统的相对安全的问题。他指出,根据德国国家安全局 BSI 的信息,发现 Linux 要比 Windows 漏洞更多,不过只是使用量较少罢了。然而他也补充说,这种比较也许有不同的解释。


via: http://www.zdnet.com/munich-sheds-light-on-the-cost-of-dropping-linux-and-returning-to-windows-7000034718/

作者:Avishek Kumar 译者:wxy

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

echo是一种最常用的与广泛使用的内置于Linux的bash和C shell的命令,通常用在脚本语言和批处理文件中来在标准输出或者文件中显示一行文本或者字符串。

echo命令的语法是:

echo [选项] [字符串]

1. 输入一行文本并显示在标准输出上

$ echo Tecmint is a community of Linux Nerds 

会输出下面的文本:

Tecmint is a community of Linux Nerds 

2. 输出一个声明的变量值

比如,声明变量x并给它赋值为10

 $ x=10

会输出它的值:

$ echo The value of variable x = $x 

The value of variable x = 10 

3. 使用‘\b‘选项

-e‘后带上'\b'会删除字符间的所有空格。

注意: Linux中的选项‘-e‘扮演了转义字符反斜线的翻译器。

$ echo -e "Tecmint \bis \ba \bcommunity \bof \bLinux \bNerds" 

TecmintisacommunityofLinuxNerds 

4. 使用‘\n‘选项

-e‘后面的带上‘\n’行会在遇到的地方作为新的一行

$ echo -e "Tecmint \nis \na \ncommunity \nof \nLinux \nNerds" 

Tecmint 
is 
a 
community 
of 
Linux 
Nerds 

5. 使用‘\t‘选项

-e‘后面跟上‘\t’会在空格间加上水平制表符。

$ echo -e "Tecmint \tis \ta \tcommunity \tof \tLinux \tNerds" 

Tecmint     is  a   community   of  Linux   Nerds 

6. 也可以同时使用换行‘\n‘与水平制表符‘\t

$ echo -e "\n\tTecmint \n\tis \n\ta \n\tcommunity \n\tof \n\tLinux \n\tNerds" 

    Tecmint 
    is 
    a 
    community 
    of 
    Linux 
    Nerds 

7. 使用‘\v‘选项

-e‘后面跟上‘\v’会加上垂直制表符。

$ echo -e "\vTecmint \vis \va \vcommunity \vof \vLinux \vNerds" 

Tecmint 
        is 
           a 
             community 
                       of 
                          Linux 
                                Nerds 

8. 也可以同时使用换行‘\n‘与垂直制表符‘\v

$ echo -e "\n\vTecmint \n\vis \n\va \n\vcommunity \n\vof \n\vLinux \n\vNerds" 


Tecmint 

is 

a 

community 

of 

Linux 

Nerds 

注意: 你可以按照你的需求连续使用两个或者多个垂直制表符,水平制表符与换行符。

9. 使用‘\r‘选项

-e‘后面跟上‘\r’来指定输出中的回车符。(LCTT 译注:会覆写行开头的字符)

$ echo -e "Tecmint \ris a community of Linux Nerds" 

is a community of Linux Nerds 

10. 使用‘\c‘选项

-e‘后面跟上‘\c’会抑制输出后面的字符并且最后不会换新行。

$ echo -e "Tecmint is a community \cof Linux Nerds" 

Tecmint is a community @tecmint:~$ 

11.-n‘会在echo完后不会输出新行

$ echo -n "Tecmint is a community of Linux Nerds" 
Tecmint is a community of Linux Nerds@tecmint:~/Documents$ 

12. 使用‘\a‘选项

-e‘后面跟上‘\a’选项会听到声音警告。

$ echo -e "Tecmint is a community of \aLinux Nerds" 
Tecmint is a community of Linux Nerds

注意: 在你开始前,请先检查你的音量设置。

13. 使用echo命令打印所有的文件和文件夹(ls命令的替代)

$ echo * 

103.odt 103.pdf 104.odt 104.pdf 105.odt 105.pdf 106.odt 106.pdf 107.odt 107.pdf 108a.odt 108.odt 108.pdf 109.odt 109.pdf 110b.odt 110.odt 110.pdf 111.odt 111.pdf 112.odt 112.pdf 113.odt linux-headers-3.16.0-customkernel_1_amd64.deb linux-image-3.16.0-customkernel_1_amd64.deb network.jpeg 

14. 打印制定的文件类型

比如,让我们假设你想要打印所有的‘.jpeg‘文件,使用下面的命令。

$ echo *.jpeg 

network.jpeg 

15. echo可以使用重定向符来输出到一个文件而不是标准输出

$ echo "Test Page" > testpage 

## Check Content
avi@tecmint:~$ cat testpage 
Test Page 

echo 选项列表

| 选项 | 描述 |
| -n | 不输出末尾的换行符。 |
| -e | 启用反斜线转义。 |
| \b | 退格 |
| \ | 反斜线 |
| \n | 新行 |
| \r | 回车 |
| \t | 水平制表符 |
| \v | 垂直制表符 |

就是这些了,不要忘记在下面留下你的反馈。


via: http://www.tecmint.com/echo-command-in-linux/

作者:Avishek Kumar 译者:geekpi 校对:wxy

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

不仅是系统管理员和网络管理员时不时会听到“代理服务器”这个词,我们也经常听到。代理服务器已经成为一种企业常态,而且经常会接触到它。它现在也出现在一些小型的学校或者大型跨国公司的自助餐厅里。Squid(常被视作代理服务的代名词)就是这样一个应用程序,它不但可以被作为代理服务器,其同时也是在该类工具中比较被广泛使用的一种。

本文旨在提高你在遇到关于代理服务器面试点时的一些基本应对能力。

以下为面试问答的内容

1. 什么是代理服务器?代理服务器在计算机网络中有什么用途?

回答 : 代理服务器是指那些作为客户端和资源提供商或服务器之间的中间件的物理机或者应用程序。客户端从代理服务器中寻找文件、页面或者是数据,而且代理服务器能处理客户端与服务器之间所有复杂事务,从而满足客户端的生成的需求。

代理服务器是WWW(万维网)的支柱,它们其中大部分都是Web代理。一台代理服务器能处理客户端与服务器之间的复杂通信事务。此外,它在网络上提供的是匿名信息(LCTT 译注:指浏览者的 IP、浏览器信息等被隐藏),这就意味着你的身份和浏览痕迹都是安全的。代理可以去配置允许哪些网站的客户能看到,哪些网站被屏蔽了。

2. Squid是什么?

回答 : Squid是一个在GNU/GPL协议下发布的既可作为代理服务器,同时也可作为Web缓存守护进程的应用软件。Squid主要是支持像HTTP和FTP那样的协议,但是对其它的协议比如HTTPS,SSL,TLS等同样也能支持。其特点是Web缓存守护进程通过从经常上访问的网站里缓存Web和DNS数据,从而让上网速度更快。Squid支持所有的主流平台,包括Linux,UNIX,微软公司的Windows和苹果公司的Mac。

3. Squid的默认端口是什么?怎么去修改它的操作端口?

回答 : Squid运行时的默认端口是3128。我们可以通过编辑它的配置文件来把它的默认端口修改成未被用户使用的端口,路径是 /etc/squid/squid.conf ,建议如下。

用你的编辑器打开 ‘/etc/squid/squid.conf’ 文件。

# nano /etc/squid/squid.conf

现在把它修改成未被使用的其它端口,并保存退出。

http_port 3128

重新启动Squid代理服务,如下显示。

# service squid restart

4. 你的公司管理层要求你通过Squid代理服务器屏蔽掉一些域名,你怎么做?

回答 : 屏蔽域名是一个在配置文件中实现的功能模块。我们只需要执行一个小的手动配置即可,建议如下。

a. 在 ‘/etc/squid’ 目录下创建一个名为 ‘blacklist’ 的文件。

# touch /etc/squid/blacklist

b. 用nano编辑器打开这个文件。

 # nano /etc/squid/blacklist

c. 以每行一个域名的方式将想要屏蔽的域名写进这个文件里。

.facebook.com
.twitter.com
.gmail.com
.yahoo.com
...

d. 保存退出,然后从 ‘/etc/squid/squid.conf’ 打开Squid配置文件。

# nano /etc/squid/squid.conf

e. 在配置文件中添加如下行。

acl BLACKLIST dstdom_regex -i “/etc/squid/blacklist”
http_access deny blacklist

f. 保存配置文件并退出,重启Squid服务让其生效。

# service squid restart

5. 在Squid中什么是媒体范围限制(Media Range Limitation)和部分下载?

回答 : 媒体范围限制是Squid的一种特殊的功能,它只从服务器中获取所需要的数据而不是整个文件。这个功能很好的实现了用户在各种视频流媒体网站如YouTube和Metacafe看视频时,可以点击视频中的进度条来选择进度,因此整个视频不用全部都加载,除了一些需要的部分。

Squid部分下载功能的特点是很好地实现了类似在Windows更新时能以一个个小数据包的形式下载,并可以暂停,正因为它的这个特点,正在下载文件的Windows机器可以重新继续下载,而不用担心数据会丢失。Squid的媒体范围限制和部分下载功能只有在存储了一个完整文件的副本之后才行。此外,当用户访问另一个页面时,除非Squid进行了特定的配置,部分下载下来的文件会被删除且不留在缓存中。

6. 什么是Squid的反向代理?

回答 : 反向代理是Squid的一个功能,这个功能被用来加快最终用户的上网速度。下面用缩写 ‘RS’ 的表示包含了资源的原服务器,而代理服务器则称作 ‘PS’ 。初次访问时,它会从RS得到其提供的数据,并将其副本按照配置好的时间存储在PS上。这样的话每次从PS上请求的数据就相当于就是从原服务器上获取的。这样就会减轻网络拥堵,减少CPU使用率,降低网络资源的利用率,从而缓解原来实际服务器的负载压力。但是RS统计不了总流量的数据,因为PS分担了部分原服务器的任务。‘X-Forwarded-For HTTP’ 信息能用于记录下通过HTTP代理或负载均衡方式连接到RS的客户端最原始的IP地址。

从技术上说,用单个Squid服务器同时作为正向代理服务器和反向代理服务器是可行的。

7. 由于Squid能作为一个Web缓存守护进程,那缓存可以删除吗?怎么删除?

回答 : 当然!作为一个Web缓存守护进程,Squid能加快网页的访问速度,清除缓存也是非常简单的。

a. 首先停止Squid代理服务,然后从这个 ‘/var/lib/squid/cache’ 目录中删除缓存。

# service squid stop
# rm -rf /var/lib/squid/cache/*<

b. 创建交换分区目录。

# squid -z

8. 你有一台工作中的机器可以访问代理服务器,如果想要限制你的孩子的访问时间,你会怎么去设置那个场景?

把允许访问的时间设置成晚上4点到7点三个小时,跨度为星期一到星期五。

a. 想要限制Web访问时间在星期一到星期五的晚上4点到7点,要先打开Squid的配置文件。

# nano /etc/squid/squid.conf

b. 在配置文件中添加如下行,保存文件并退出。

acl ALLOW_TIME time M T W H F 16:00-19:00
shttp_access allow ALLOW_TIME

c. 重启Squid服务。

# service squid restart

9. Squid存储的数据是什么文件格式?

回答 : Squid存储的数据是UFS文件格式的。UFS是一种老的,使用比较广泛的Squid存储格式

10. Squid的缓存会存储到哪里?

回答 : Squid存储的缓存是位于 ‘/var/spool/squid’ 的特定目录下。

以上就是全部内容了,很快我还会带着其它有趣的内容回到这里。


via: http://www.tecmint.com/squid-interview-questions/

作者:Avishek Kumar 译者:ZTinoZ 校对:wxy

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

在Linux中,‘cd‘(改变目录)命令,是对新手和系统管理员来说,最重要最常用的命令。对管理无图形界面的服务器的管理员,‘cd‘是进入目录,检查日志,执行程序/应用软件/脚本和其余每个任务的唯一方法。对新手来说,是他们必须自己动手学习的最初始命令

Linux中15个cd命令举例

所以,请用心学习,我们在这会带给你15个基础的‘cd‘命令,它们富有技巧和捷径,学会使用这些了解到的技巧,会大大减少你在终端上花费的努力和时间

课程细节

  • 命令名称:cd
  • 代表:切换目录
  • 使用平台:所有Linux发行版本
  • 执行方式:命令行
  • 权限:访问自己的目录或者其余指定目录
  • 级别:基础/初学者
  1. 从当前目录切换到/usr/local
avi@tecmint:~$ cd /usr/local
avi@tecmint:/usr/local$
  1. 使用绝对路径,从当前目录切换到/usr/local/lib
avi@tecmint:/usr/local$ cd /usr/local/lib
avi@tecmint:/usr/local/lib$
  1. 使用相对路径,从当前路径切换到/usr/local/lib
avi@tecmint:/usr/local$ cd lib
avi@tecmint:/usr/local/lib$
  1. (a)切换当前目录到上一个目录
avi@tecmint:/usr/local/lib$ cd -
/usr/local
avi@tecmint:/usr/local$

(b)切换当前目录到上级目录

avi@tecmint:/usr/local/lib$ cd ..
avi@tecmint:/usr/local$
  1. 显示我们最后一个离开的工作目录(使用‘-’选项)
avi@tecmint:/usr/local$ cd --
/home/avi
  1. 从当前目录向上级返回两层
avi@tecmint:/usr/local$ cd ../../
avi@tecmint:/$
  1. 从任何目录返回到用户home目录
avi@tecmint:/usr/local$ cd ~
avi@tecmint:~$

avi@tecmint:/usr/local$ cd
avi@tecmint:~$
  1. 切换工作目录到当前工作目录(LCTT:这有什么意义嘛?!)
avi@tecmint:~/Downloads$ cd .
avi@tecmint:~/Downloads$

avi@tecmint:~/Downloads$ cd ./
avi@tecmint:~/Downloads$
  1. 你当前目录是“/usr/local/lib/python3.4/dist-packages”,现在要切换到“/home/avi/Desktop/”,要求:一行命令,通过向上一直切换直到‘/’,然后使用绝对路径
avi@tecmint:/usr/local/lib/python3.4/dist-packages$ cd ../../../../../home/avi/Desktop/
avi@tecmint:~/Desktop$
  1. 从当前工作目录切换到/var/www/html,要求:不要将命令打完整,使用TAB
avi@tecmint:/var/www$ cd /v<TAB>/w<TAB>/h<TAB>
avi@tecmint:/var/www/html$
  1. 从当前目录切换到/etc/v\_\_ \_,啊呀,你竟然忘了目录的名字,但是你又不想用TAB
avi@tecmint:~$ cd /etc/v*
avi@tecmint:/etc/vbox$

请注意:如果只有一个目录以‘v‘开头,这将会移动到‘vbox‘。如果有很多目录以‘v‘开头,而且命令行中没有提供更多的标准,这将会移动到第一个以‘v‘开头的目录(按照他们在标准字典里字母存在的顺序)

  1. 你想切换到用户‘av‘(不确定是avi还是avt)目录,不用TAB
avi@tecmint:/etc$ cd /home/av?
avi@tecmint:~$
  1. Linux下的pushed和poped

Pushed和poped是Linux bash命令,也是其他几个能够保存当前工作目录位置至内存,并且从内存读取目录作为当前目录的脚本,这些脚本也可以切换目录

avi@tecmint:~$ pushd /var/www/html
/var/www/html ~
avi@tecmint:/var/www/html$ 

上面的命令保存当前目录到内存,然后切换到要求的目录。一旦poped被执行,它会从内存取出保存的目录位置,作为当前目录

avi@tecmint:/var/www/html$ popd
~
avi@tecmint:~$
  1. 切换到名字带有空格的目录
avi@tecmint:~$ cd test\ tecmint/
avi@tecmint:~/test tecmint$

avi@tecmint:~$ cd 'test tecmint'
avi@tecmint:~/test tecmint$

avi@tecmint:~$ cd "test tecmint"/
avi@tecmint:~/test tecmint$
  1. 从当前目录切换到下载目录,然后列出它所包含的内容(使用一行命令)
avi@tecmint:/usr$ cd ~/Downloads && ls
...
.
service_locator_in.xls
sources.list
teamviewer_linux_x64.deb
tor-browser-linux64-3.6.3_en-US.tar.xz
.
...

我们尝试使用最少的词句和一如既往的友好,来让你了解Linux的工作和执行。

这就是所有内容。我很快会带着另一个有趣的主题回来的。


via: http://www.tecmint.com/cd-command-in-linux/

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

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