三 章基本的bash shell命令
1.启动shell
GNU bash shell能提供对linux系统的交互式访问。它是作为常规程序运行的,通常是在用户登录终端时启动。登录时系统启动的shell依赖于用户账户的配置。
/etc/passwd文件包含了所有系统用户账户列表以及每个用户的基本配置信息。如下读取的样例条目:
每个条目有七个字段,字段之间用冒号分隔。系统使用字段中的数据来赋予用户账户某些特定特性。这些字段包括:
① 用户名;
② 用户密码(如果密码存储在其他文件中,则是个占位符)
③ 用户的系统UID(用户ID)
④ 用户的全名
⑤ 用户默认的宿主目录
⑥ 用户的默认主目录
⑦ 用户的默认shell
上面各字段含义将在以后的学习中深入讨论
多数linux系统在为用户启动命令行界面(command line interface,CLI)时采用默认的bash shell程序。Bash shell程序同样使用命令行参数来修改所启动shell的类型。
默认情况下,bash shell启动时会自动处理用户主目录下.bashrc文件中的命令。许多linux发行版在此文件中加载特殊的共用文件,在共用文件中保存着针对所有系统用户的命令和设置。通常该文件位于/etc/bashrc,它经常设置各种应用程序中用到的环境变量。
2.shell提示符
一旦启动了终端模拟包或者从linux控制台登陆,你句会看到shell命令行界面。界面上的提示符就是到shell世界的大门,通常在这里输入shell命令。
Bash shell提示符字符
字符 | 描述 |
\a | 报警字符 |
\d | “日月年”格式显示日期 |
\e | ASCII转义字符 |
\h | 本地主机名 |
\H | 完全限定域名(FQDN) |
\j | Shell当前管理的任务数 |
\l | Shell的终端设备名中的基名 |
\n | ASCII换行符 |
\r | ASCII回车符 |
\s | Shell的名称 |
\t | 24小时制HH:MM:SS格式的当前时间 |
\T | 12小时制HH:MM:SS格式的当前时间 |
\@ | 12小时制am/pm格式的当前时间 |
\u | 当前用户的用户名 |
\v | Bashshell版本 |
\V | Bashshell的发行版 |
\w | 当前工作目录 |
\W | 当前工作目录的基名 |
\! | 这个命令在bashshell历史记录中的位置 |
\# | 这个命令在当前命令行的位置 |
\$ | 普通用户下的美元符($)root用户下的井号(#) |
\nnn | 与八进制数nnn对应的字符 |
\\ | 反斜线(\) |
\[ | 开始一个控制字符序列 |
\] | 结束一个控制字符序列 |
注意,所有提示符特殊字符都从反斜线(\)开始。该字符将提示符中的特殊字符和普通文本分开来。提示符既有特殊字符,也有普通字符(@符合方括号[])。你可以在提示符中创建热河提示符字符的组合。要创建新的提示符,只需给PS1变量附一个新的字符串就行;
想要退出输入:su -
3.linux文件系统
目录 | 用途 |
/ | 虚拟目录的根目录。通常不会在这里存储文件 |
/bin | 二进制目录,存放许多GNU用户级的工具 |
/boot | 启动目录,存放启动文件 |
/dev | 设备目录,linux在这里创建设备节点 |
/etc | 系统配置文件目录 |
/home | 主目录,linux在这里创建用户目录 |
/lib | 库目录,存放系统和应用程序的库文件 |
/media | 媒体目录,存放可移动媒体设备挂载点的地方 |
/mnt | 挂载目录,另一个存放可移动媒体设备挂载点的地方 |
/opt | 可选目录,通常用于存放可选的软件包 |
/root | 根目录 |
/sbin | 系统二进制目录,存放许多GNU管理员级工具 |
/tmp | 临时目录,可以在该目录中创建和删除临时工作文件 |
/usr | 用户安装软件的目录 |
/var | 可变目录,用以存放经常变化的文件,如日志文件 |
1)基本列表功能(ls命令)
ls常用参数
单字母 | 全字 | 描述 |
-a | --all | 输出包括以“.”打头的隐藏文件 |
-A | --almost-all --author | 不要输出“.”和“..”文件 输出每个文件的作者 |
-b | --escape --block-size=size | 输出打印字符的八进制值 按size字节大小的块来计算块大小 |
-B | --ignore-backups | 不要列出名称中包含波浪线(~)的条目 |
-c | 按最后一次修改时间排序 | |
-C | 按列输出条目 | |
-d | --directory | 列出目录条目而非内容,并且不要跟踪符号链接 |
-F | --classify | 给条目追加文件类型标识符 |
-g | 输出除文件属主外所有信息 | |
-G | --no-group | 在长列表输出格式下,不要显示组名 |
-h | --human-reabable | 打印打下,K表示千字节,M表示兆字节,G表示吉字节 |
-i | --inode | 显示每个文件的索引值 |
-l | 按长列表输出格式显示 | |
-L | --dereference | 对于链接文件,显示源文件信息 |
-n | --numeric-uid-gid | 显示数字类型的userid和groupid以代替名字在长列表格式下不要显示组名 |
-r | --reverse | 在输出文件和目录时,反转排序的顺序 |
-R | --recursive | 递归的列出子目录内容 |
-s | --size | 输出每个文件的块大小 |
-S | --sort=size | 按每个文件大小输出 |
-t | --sort=time | 按文件的修改时间输出 |
-u | 输出文件的最后访问时间而非最后修改时间 | |
-U | --sort=none | 不要将输出排序 |
-v | --sort=version | 按文件版本排序输出 |
-x | 按行而非列输出条目 | |
-X | --sort=extension | 按文件扩展名排列输出 |
例如:ls -F
ls -F参数会在目录后加了正斜线(/),以方便用户在输出中分辨它们。
ls -sail
其中第一列数字是文件或目录的索引节点号,第二列是文件块的大小。第三列代表的是文件类型和权限:
(dr-xr-x---)其中前面的“d”代表的是文件类型。如目录是(d),文件是(-),字符型文件是(c),块文件(b)
ls还可以使用通配符:问号(?)代表一个字符。星号(*)代表零个或多个字符。
上面的例子可以看出通配符(?)和(*)号的区别。
2)复制文件(cp命令)
cp命令常用参数
参数 | 描述 |
-a | 归档文件,并保留他们现有的属性 |
-b | 创建已存在目标文件的备份,而非覆盖它 |
-d | 保留 |
-f | 强制覆盖已存在目标文件,不提示 |
-i | 在覆盖目标文件之前提示 |
-l | 创建文件链接而非复制文件 |
-r | 递归的复制文件 |
-R | 递归的复制目录 |
-s | 创建一个符号链接而非复制文件 |
-S | 覆盖默认的备份文件的后缀(默认是~) |
-u | 仅在源文件比目标文件新的情况下复制(相当于更新) |
-v | 详细模式,解释到底发生了什么 |
-x | 仅限于当前文件系统的复制 |
链接文件
Linux有两种不同类型的文件链接:
l 符号链接,即软连接
l 硬链接
软连接和硬链接的区别就是硬链接会创建一个独立文件,其中包含了源文件的信息及位置。引用硬链接文件等同于引用了源文件。
cp -l 源文件 目标文件 (是硬链接)
cp -s 源文件 目标文件 (软连接)
查看文件统计信息stat命令
stat 文件名
查看文件类型file命令
file命令是一个用来查看文件类型的工具。他能探测文件的内部并决定文件是什么类型
File命令将文件分为3类:
文本文件:包含可打印字符的文件。
可执行文件:可在系统上运行的文件
数据文件:包含不可打印二进制字符,又不能在系统上运行的文件。
查看整个文件
cat命令 more命令 less命令
查看部分文件
tail命令显示文件末尾部分的内容,默认情况下他会显示文件的末尾10行。
tail命令常用参数
参数 | 描述 |
-c | 显示文件最后的bytes个字节的字符 |
-n | 显示文件最后的lines行 |
-f | 让tail程序一直保持活动状态,如果有新的内容加到末尾就显示出来 |
--pid | 和-f参数一起,跟踪一个文件直到进程ID为PID的进程结束 |
-s sec | 和-f参数一起,在每次循环输出之间休眠sec秒 |
-v | 总是显示带文件名的头 |
-q | 从不显示带文件名的头 |
-f参数是tail命令的一个突出的特性,它允许你在其它进程使用该文件时查看文件的内容。Tail命令会保持活动状态并不断的显示添加到文件中的内容。这是实时监测系统日志的绝妙方式。
head命令查看文件头
head命令会显示文件开头哪些行的内容,默认情况下,它会显示文件前十行的文本。它也支持-c和-n参数这样就可指定要显示的行数。
用法:head -n 20 文件名
本文出自 “追求探索” 博客,请务必保留此出处http://caesar1990.blog.51cto.com/8821483/1726287
原文地址:http://caesar1990.blog.51cto.com/8821483/1726287