练习 3:Bash:Shell、.profile、.bashrc、.bash_history。
当使用 CLI(命令行界面)来使用 Linux 时,你正在与一个名为 shell 的程序进行交互。所有你输入的都传递给 shell,它解释你输入的内容,执行参数扩展(这有点类似于代数中的花括号扩展),并为你执行程序。我们将使用的 Shell 称为 Bash,它代表 Bourne Again Shell,而 Bourne Again Shell 又是一个双关语。现在我将使用纯中文,向大家介绍一下 bash 的工作方式:
我重复一下,你输入的任何命令都不会直接执行,而是首先扩展,然后执行。例如,当你输入 现在你将学习如何修改你的配置,以及如何编写和查看你的历史记录。 这样做1: ls -al 2: cat .profile 3: echo Hello,$LOGNAME! 4: cp -v .profile .profile.bak 5:echo 'echo Hello,$LOGNAME!' >> .profile6:tail -n 5 .profile7:history -w8: ls -altr 9: cat .bash_history10: exit 你会看到什么user1@vm1's password: Linux vm1 2.6.32-5-amd64 #1 SMP Sun May 6 04:00:17 UTC 2012 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY,to the extent permitted by applicable law. Last login: Thu Jun 7 12:03:29 2012 from sis.site Hello,user1! user1@vm1:~$ ls -al total 20 drwxr-xr-x 2 user1 user1 4096 Jun 7 12:18 . drwxr-xr-x 3 root root 4096 Jun 6 21:49 .. -rw-r--r-- 1 user1 user1 220 Jun 6 21:48 .bash_logout -rw-r--r-- 1 user1 user1 3184 Jun 6 21:48 .bashrc -rw-r--r-- 1 user1 user1 697 Jun 7 12:04 .profile user1@vm1:~$ cat .profile # ~/.profile: executed by the command interpreter for login shells. # This file is not read by bash(1),if ~/.bash_profile or ~/.bash_login # exists. # see /usr/share/doc/bash/examples/startup-files for examples. # the files are located in the bash-doc package. # the default umask is set in /etc/profile; for setting the umask # for ssh logins,install and configure the libpam-umask package. #umask 022 # if running bash if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi # set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi echo Hello,$LOGNAME! user1@vm1:~$ echo Hello,$LOGNAME! Hello,user1! user1@vm1:~$ cp -v .profile .profile.bak `.profile' -> `.profile.bak' user1@vm1:~$ echo 'echo Hello,$LOGNAME!' >> .profile user1@vm1:~$ tail -n 5 .profile # set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi echo Hello,$LOGNAME! user1@vm1:~$ history -w user1@vm1:~$ ls -altr total 28 -rw-r--r-- 1 user1 user1 3184 Jun 6 21:48 .bashrc -rw-r--r-- 1 user1 user1 220 Jun 6 21:48 .bash_logout drwxr-xr-x 3 root root 4096 Jun 6 21:49 .. -rw-r--r-- 1 user1 user1 741 Jun 7 12:19 .profile.bak -rw------- 1 user1 user1 308 Jun 7 12:21 .bash_history -rw-r--r-- 1 user1 user1 697 Jun 7 12:25 .profile drwxr-xr-x 2 user1 user1 4096 Jun 7 12:25 . user1@vm1:~$ cat .bash_history ls -al cat .profile echo Hello,$LOGNAME! cp -v .profile .profile.bak echo 'echo Hello,$LOGNAME!' >> .profile tail -n 5 .profile history -w ls -altr user1@vm1:~$ exit logout 不要害怕,所有命令都会解释。行号对应“现在输入它”的部分。 解释
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |