熟悉Linux Shell

查看当前有哪些用户登录系统

who

who | wc -l

1)Shell 与程序

type命令有助于你了解哪些是shell的内置命令,哪些是Linux提供的外部程序

type who

type cd

1.1)bash Shell

通配符(wildcard)可以匹配文件的名字;“历史命令(command history)”可以快速地调用以前使用的命令;管道(pipe)可以将一个命令的输出作为另一个命令的输入;变量(variable)存储shell用到的数据

1.1.1)通配符

1.1.2)shell变量
可以像下面这样定义变量的值:
$ MYVAR=3
引用该变量时,只需要在变量名前添加“$”符号:
$ echo $MYVAR
3
通常在你登录时,有些预定义的变量就会自动生效。

显示所有shell变量的命令是运行:
$ printenv
变量的默认作用范围只包括定义该变量的shell本身。要使变量作用范围涵盖被shell调用的程序(比如subshells),必须使用export命令定义变量:
$ export MYVAR
或者同时完成变量的定义及赋值:
$ export MYVAR=3
这样定义的变量就是所谓的环境变量(environment variable),因为它的作用范围涵盖当前shell环境下所有程序。因此,上述例子中,变量MYVAR可以被其所在的shell环境下所有正在运行的程序使用(包括shell脚本)。
如果需要变量仅对于特定的命令有效,并且该命令结束后变量立刻回到原值,则必须在命令行的开头加上variable=value:
$ echo $HOME
/home/smith
$ HOME=/home/sally printenv HOME
/home/sally
$ echo  $HOME
/home/smith                  //原先的值不受影响 

1.1.3)搜索路径

环境变量PATH用于告诉shell到哪里去寻找:
$ echo $ PATH
shell在这些目录中逐个搜索,查找程序,找到后即运行。如果所有目录中均未找到指定程序,它将返回如下提示:
bash: xxx: command not found
若要临时增加目录到shell的搜索路径中,需要修改PATH变量的值。例如,将/usr/sbin加入shell的搜索路径,需要进行如下操作:
$ PATH=$PATH:/usr/sbin
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/home/smith/bin:/usr/sbin
这些操作只能改变当前shell的搜索路径。要永久改变,需要修改配置文件~/.bash_profile中的PATH变量,然后重新登录。

1.1.4)命令别名


内置命令alias用于定义命令的别名,让你用较短的字符串代替一长串常用的复杂命令。比如:
$ alias ll='ls  -l'
定义了新的命令ll,它代表命令“ls -l”,ll命令运行如下:
$ ll
total 436
-rw-r--r--  1 smith 3584  Oct  11  14:59  file1
-rwxr-xr-x  1 smith   72  Aug   6  23:04  file2…

无论你何时登录系统,~/.bashrc文件中定义的别名都是有效的。alias命令可以列出所有已定义的别名。


1.1.4)输入/输出重定向
Shell可以将标准输入(stdin)、标准输出(stdout)、标准错误输出(stderr)重定向为文件。也就是说,任何命令都可以用shell的“<”操作符将输入数据来源从stdin重定向为文件,比如:mycommand < infile

任何命令都可以将数据输出的目的地从stdout重定向为文件。
$ mycommand  > outfile       //创建或覆盖outfile
$ mycommand  >> outfile    //附加到outfile原有内容的末尾

一个命令也能够将stderr重定向到文件,同时仍然将写入标准输出的内容打印在屏幕上:
$ mycommand  2> errorfile
下面的命令将stdout及stderr都重定向到文件:
$ mycommand  > outfile  2> errorfile //输出到不同文件
$ mycommand  >& outfile                 //输出到一个文件

1.1.5) 管道

1.1.6) 组合命令

1.1.7)界定

1.1.8) 编辑命令行

1.1.9) 命令历史记录

 

1.1.10) 文件补齐

1.1.11) shell任务控制

结束运行中的命令

cat bigfile

要终止后台运行的程序,可以先用fg命令将其放到前台,然后再按下^C;或者,使用kill命令终止它运行

终止shell运行的方法有两个:执行exit命令或按^D

exit

以上:

准确地说,是共有多少个shell被启动。如果有用户同时启动了两个shell,who所汇报的行数就不等于实际使用系统的人数。

有些系统启动时使用独立的别名定义文件,如~/.bash_aliases。返回单引号中,$HOME被视为字符串;双引号中,$HOME被视为变量,并展开为它实际的值。

^D会向许多读取标准输入的程序发送“文件结束”的消息。因此,在这种情况下,结束的可能是shell所运行的程序,而不是shell本身。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 chmod命令的其他例子 6 1.4.5 可以选择使用符号模式或绝对模式 7 1.5 目录 7 1.6 suid/guid 7 1.6.1 为什么要使用suid/guid 8 1.6.2 设置suid/guid的例子 8 1.7 chown和chgrp 9 1.7.1 chown举例 9 1.7.2 chgrp举例 9 1.7.3 找出你所属于的用户组 9 1.7.4 找出其他用户所属于的组 10 1.8 umask 10 1.8.1 如何计算umask值 10 1.8.2 常用的umask值 11 1.9 符号链接 12 1.9.1 使用软链接来保存文件的多个映像 12 1.9.2 符号链接举例 12 1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改时间查找文件 17 2.1.7 查找比某个文件新或旧的文件 17 2.1.8 使用type选项 17 2.1.9 使用size选项 18 2.1.10 使用depth选项 18 2.1.11 使用mount选项 18 2.1.12 使用cpio选项 18 2.1.13 使用exec或ok来执行shell命令 19 2.1.14 find命令的例子 20 2.2 xargs 20 2.3 小结 21 第3章 后台执行命令 22 3.1 cron和crontab 22 3.1.1 crontab的域 22 3.1.2 crontab条目举例 23 3.1.3 crontab命令选项 23 3.1.4 创建一个新的crontab文件 24 3.1.5 列出crontab文件 24 3.1.6 编辑crontab文件 24 3.1.7 删除crontab文件 25 3.1.8 恢复丢失的crontab文件 25 3.2 at命令 25 3.2.1 使用at命令提交命令或脚本 26 3.2.2 列出所提交的作业 27 3.2.3 清除一个作业 27 3.3 &命令 27 3.3.1 向后台提交命令 28 3.3.2 用ps命令查看进程 28 3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup命令提交作业 29 3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 tee 39 5.6 标准输入、输出和错误 40 5.6.1 标准输入 40 5.6.2 标准输出 40 5.6.3 标准错误 40 5.7 文件重定向 40 5.7.1 重定向标准输出 41 5.7.2 重定向标准输入 42 5.7.3 重定向标准错误 42 5.8 结合使用标准输出和标准错误 43 5.9 合并标准输出和标准错误 43 5.10 exec 44 5.11 使用文件描述符 44 5.12 小结 45 第6章 命令执行顺序 46 6.1 使用&& 46 6.2 使用|| 46 6.3 用()和{ }将命令结合在一起 47 6.4 小结 48 第二部分 文本过滤 第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 5

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值