目录和文件名的命名规则
除了/外,所有字符可用作目录和文件名
大小写敏感
避免使用非普通字符做文件或目录名
以"."开头的文件和目录是隐含的
命令基本格式
cmd [options] [arguments]
cmd 命令名
options 选项
arguments 参数,也即操作对象
选项和参数作为Shell命令执行时的输入,之间用空格隔开
单字符参数前使用一个减号(-),单词参数前使用两个减号(--)
多个单字符参数前可以只使用一个减号
有些命令不遵从以上规则,如dd、find等
通配符
* 匹配任何字符和任何数目的字符
? 匹配单一数目的任何字符
[] 匹配[]之内的任意一个字符
[!] 匹配[!]之外的任意一个字符
“*”能匹配文件或目录名中的“.”,但不能匹配首字符是“.”的文件或目录名
一、文件与目录操作命令
1.1 目录操作命令
ls 显示文件和目录列表
tree 显示文件和目录树
pwd 显示当前工作目录
cd 切换目录
mkdir 创建目录
rmdir 删除空目录
============================================================
pushd, popd和dirs
cd -
可用于返回上一次的目录,-等同于 $OLDPWD变量
dirs -p -v
显示栈里的目录
dirs -c
清空栈里的目录
pushd dir_name
将目录推入栈,并切换至该目录
pushd +n
切换到栈中的第n个目录,并把此目录以堆栈循环的方式推到栈的顶部
popd
把栈顶端的目录从栈中删除,并切换于位于新的顶端的目录
popd +n
把栈中第n个目录从栈中删除,并切换于位于新的顶端的目录
注意:
pushd和popd都可以只影响栈而不切换目录,用 -n参数即可
============================================================
1.2 文件操作命令
touch 生成新的空文件或更改现有文件的时间戳
------------------------------------------------
GNU/Linux的文件有3种类型的时间戳
mtime:最后修改时间
ctime:状态改变时间
atime:最后访问时间
------------------------------------------------
cp 复制文件或目录
mv 移动文件或目录、文件或目录改名
rm 删除文件或目录
------------------------------------------------
默认情况,rm不删除目录,使用-r或-R可删除每个给定的目录,以及其下的所有内容;
删除第一个字符为“-”的文件(-foo),使用的方法:
$ rm -- -foo
$ rm ./-foo
------------------------------------------------
ln 创建链接文件
symlinks 检查目录中的符号链接,并显示符号链接的类型
------------------------------------------------
链接类型
absolute:使用绝对路径的符号链接
dangling:原始文件已经不存在的符号链接
lengthy: 符号链接路径中包含了多余的“../”
messy: 符号链接路径中包含了多余的“/”
other_fs:原始文件位于其他文件系统中
relative:使用相对路径的符号链接
常用参数
-c:将absolute/messy类型的符号链接转换为relative类型
-d:删除dangling类型的符号链接
-r:检查目录下所有子目录中的符号链接
-s:缩短lengthy类型的符号链接
-v:所有类型的符号链接
------------------------------------------------
1.3 文件大包压缩命令
gzip .gz文件的压缩和解压缩程序
bzip2 .bz2文件的压缩和解压缩程序
tar 文件打包和解包
二、文本处理命令
cat 从文件头到文件尾滚屏显示文本文件内容
tac 从文件尾到文件头显示文本文件内容
rcv 把每行的内容反转
more 从文件头到文件为分屏显示文本文件内容
less 双向分屏显示文本文件内容
head 显示文本文件头部若干行
tail 显示文本文件尾部若干行(-F,用于跟踪显示不断增长的文件尾部内容,如日志文件)
cut 纵向切割出文本指定的部分并写到标准输出
paste 纵向合并多个文本并写到标准输出
sort 以行为单位对文件进行排序
uniq 删除文本文件中相邻的重复行并写到标准输出
wc 统计指定文本文件的行数、单词数、字节数
expand 将文件中的制表符转换为空格,写到标准输出
unexpand 将文件中的空格转换为制表符,写到标准输出
iconv 将文件从一种编码转换成另一种编码
dos2unix 将DOS格式的文本文件转换成UNIX格式的文本文件
unix2dos 将UNIX格式转换成DOS格式
三、信息显示命令
uname 显示系统信息
hostname 显示与主机名相关的信息
dmesg 显示开机信息,kernel会将开机信息存储在ring buffer中,亦保存在/var/log/dmesg中
uptime 显示从开机到当前的时间
file 显示文件类型
stat 从inode中提取并显示文件状态信息或文件系统信息
du 统计文件的磁盘用量,目录取总用量
df 查看磁盘剩余情况
top 实时显示进程任务
free 显示内存使用状态
w 显示登录用户
date 显示和设置日期和时间
cal 显示月历
------------------------------------------------
$ cal 9 1752
九月 1752
日 一 二 三 四 五 六
1 2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
提示:
1752年9月第3日起改用西洋新历,有11天被去除。
------------------------------------------------
which 在环境变量PATH设置的目录下查找指定文件的位置
whereis 在特定目录中查找符合条件的文件
locale 显示本地支持的语言系统信息
apropos 使用正则表达式搜索手册页名称和描述(whatis具有类似功能)
四、基本网络操作命令
telnet 用telnet协议与另一个主机通信
ssh 用ssh协议登录远程主机的客户端
scp 给予ssh协议在本地主机和远程主机之间复制文件
ftp ftp字符界面客户端
lftp 字符界面文档传输工具
wget 使用http和ftp协议,支持代理服务器和断点续传的,基于控制台的下载工具
------------------------------------------------
wget的递归功能允许查看html文件和ftp目录树结构,并在本地建立与远程站点上相同层次关系的目录结构,可用于镜像网页。
wget可以读出并存储http和ftp站点给出的时间戳,从而判断远程文件的更新状况。
------------------------------------------------
w3m 字符界面浏览器(其它浏览器lynx、elinks)
五、命令行补全
输入部分目录名、文件名、用户名、变量名等,然后按Tab键,bash尽其所能地试图补全命令,不行的话发出蜂鸣声提醒,再按一次Tab键,bash将符合条件的目录或文件显示出来。
六、命令历史
历史命令的数目有环境变量HISTSIZE值指定,记录历史命令的文本文件由环境变量HISTFILE指定,默认记录在~/.bash_history中。
1.使用上下方向键、PgUp和PgDn键查看
2.history显示历史命令
3.!!执行最近执行过的命令
4.!<命令事件号>执行命令历史中编号的命令
5.!<已执行过命令的前面部分>执行最近执行过的,前面部分匹配的命令
七、命令别名
命令别名的命令格式
alias [alias_name='original_command']
注意:
1.等号两边不允许有空格,命令中包含空格或其它特殊字符串必须使用引号。
2.要使得别名的定义永久有效,应该将其写入~/.bashrc文件中。
3.若系统的命令与别名同名,别名优先于命令,要执行系统的命令需在命令前加“\”字符
取消别名的命令格式
unalias alias_name
gpm守护进程可以在字符界面下用鼠标来复制与粘贴。按住鼠标左键拖动,使要复制的文字反白显示,此时反白的区域被复制,单击鼠标右键,复制的内容粘贴到光标所在的位置。