《Linux命令行大全》学习笔记

第一部分  学习shell

第1章  shell是什么
date:显示当前系统的时间和日期
cal:显示当月的日历
df:显示磁盘驱动器当前的可用空间
free:显示可用内存
exit:结束终端会话

第2章  导航
pwd:查看当前工作目录
cd:改变目录
ls:列出目录内容
.代表工作目录,..代表工作目录的父目录,几乎所有情况下都可以省略./
cd:将工作目录改变成主目录
cd-:将工作目录改变成先前的工作目录
cd~username:将工作目录改变成username的主目录
ls-a:列出以.字符开头的隐藏的文件

第3章  Linux系统
ls:列出目录内容
file:确定文件类型
less:查看文件内容
ls命令的常用选项:
-a --all 列出所有文件,包括以点号开头的文件,这些文件通常不列出来
-d --directory 查看目录的信息,而不是目录中的内容
-F --classify 在每个所列出的名字后面加上类型指示符,例如,如果名字是目录名,则会加上一个斜杠
-h --human-readable 以长格式列出,以人们可读的方式而不是字节数来显示文件的大小
-l 以长格式显示结果
-r --reverse 以相反的顺序显示结果,通常,ls命令按照字母升序排列显示结果
-S 按文件大小对结果排序
-t 按修改时间排序
ls长列表字段:-rw-r-- 1 root root 32059 2012-04-03 11:05 oo-cd-cover.odf
-rw-r-r 对文件的访问权限。第一个字符表示文件的类型。在不同类型之间,开头的-表示该文件是一个普通文件,d表示目录。接着的三个字符表示文件所有者的访问权限,再接着的三个字符表示文件所属组中成员的访问权限,最后三个字符表示其他所有人的访问权限。
1 文件硬连接数目
root 文件所有者的用户名
root 文件所属用户组的名称
32059 以字节数表示的文件大小
2012-04-03 11:05 上次修改文件的日期和时间
oo-cd-cover.odf 文件名
less命令:
PAGE UP或b 后翻一页
PAGE DOWN或Spacebar 前翻一页
向上箭头键 向上一行
向下箭头键 向下一行
G 跳转到文本文件的末尾
1G或g 跳转到文本文件的开头
/charecters 向前查找指定的字符串
n 向前查找下一个出现的字符串,这个字符串是之前所指定查找的
h 显示帮助屏幕
q 推出less

第4章  操作文件与目录
cp:复制文件和目录
mv:移动或重命名文件和目录
mkdir:创建目录
rm:移除文件和目录
in:创建硬链接和符号链接
通配符:
* 匹配任意多个字符(包括0个和1个)
? 匹配任一单个字符(不包括0个)
[characters] 匹配任意一个属于字符集中的字符
[!characters] 匹配任意一个不属于字符集中的字符
[[:class:]] 匹配任意一个属于指定字符类中的字符
常用字符类:
[:alnum:] 匹配任意一个字母或数字
[:alpha:] 匹配任意一个字母
[:digit:] 匹配任意一个数字
[:lower:] 匹配任意一个小写字母
[:upper:] 匹配任意一个大写字母
midir dir1:创建单个dir1目录
mkdir dir1 dir2 dir3:创建3个目录,分别命名为dir1,dir2和dir3
cp item1 item2:将单个文件或目录item1复制到文件或目录item2中
cp item... directory:将多个项目(文件或目录)复制进一个目录中
cp命令选项:
-a --archive 复制文件和目录及其属性,包括所有权和权限。通常来说,复制的文件具有用户所操作文件的默认属性
-i --interactive 在覆盖一个已存在的文件前,提示用户进行确认。如果没有指定该选项,cp会默认覆盖文件
-r --recursive 递归地复制目录及其内容。复制目录时需要这个选项(或-a选项)
-u --update 当将文件从一个目录复制到另一个目录时,只会复制那些目标目录中不存在的文件或是目标目录相应文件的更新文件
-v --verbose 复制文件时,显示信息性消息
mv item1 item2:将文件(或目录)item1移动(或重命名)为item2
mv item... directory:将一个或多个条目从一个目录移动到另一个目录下
mv选项:
-i --interactive 覆盖一个已存在的文件之前,提示用户确认。如果没有指定该选项,mv会默认覆盖文件
-u --update 将文件从一个目录移动到另一个目录,只移动那些目标目录中不存在的文件或是目标目录里相应文件的更新文件
-v --verbose 移动文件时显示信息性消息
rm选项:
-i --interactive 删除一个已存在的文件前,提示用户确认。如果没有指定这个选项,rm命令会默认删除文件
-r --recursive 递归地删除目录。要删除一个目录,则必须指定该选项。
-f --force 忽略不存在的文件并无需提示确认。该选项会覆盖--interactive选项
-v --verbose 删除文件时显示信息性消息
ln file link:创建硬链接
ln -s item link:创建符号链接

第5章  命令的使用
type:显示命令的类型
which:显示可执行程序的位置
man:显示命令的手册页
apropos:显示一系列合适的命令
info:显示命令的info条目
whatis:显示一条命令的简述
alias:创建一条命令的别名,(在命令行定义的别名当shell会话结束时也随之消失)
手册文档的组织结构:
1 用户命令
2 内核系统调用的程序接口
3 C库函数程序接口
4 特殊文件,如设备节点和驱动程序
5 文件格式
6 游戏和娱乐,例如屏幕保护程序
7 其他杂项
8 系统管理命令
info命令:
? 显示命令帮助
PAGE UP or BACKSPACE 返回上一页
PAGE DOWN or Spacebar 翻倒下一页
n Next-显示下一个节点
p Previous-显示上一个节点
u Up-显示目前显示节点的父节点(通常是一个菜单)
ENTER 进入光标所指的超链接
q 退出
alias foo='cd /usr; ls; cd -':将cd /usr; ls; cd - 这三条命令整合成一条新命令foo

第6章  重定向
cat:合并文件,将它们复制到标准输出文件中
sort:对文本行排序
uniq:报告或删除文件中重复的行
wc:打印文件中的换行符,字和字节的个数
grep:打印匹配行
head:输出文件的第一部分内容
tail:输出文件的最后一部分内容
tee:读取标准输入的数据,并将其内容输出到标准输出和文件中
>:重定向操作符,后接文件名,可以把标准输出重定向到另一个文件中,而不是显示在屏幕上。
ls -l /usr/bin > ls-output.txt:创建/usr/bin目录的一个长列表信息,并把结果输出到ls-output.txt文件中
> ls-output.txt:删除ls-output.txt文件的内容,或创建空的ls-output.txt文件
>>:重定向符,不从文件的首位开始覆盖文件,而是从文件的尾部开始添加输出内容
ls -l /usr/bin >> ls-output.txt:将结果添加到ls-output.txt文件末尾
ls -l /usr/bin 2> ls-error.txt:将标准错误重定向到ls-error.txt文件中(shell在内部将标准输入文件,标准输出文件和标准错误文件分别索引为0,1和2)
ls -l /bin/usr &> ls-output.txt:将标准输出和错误输出重定向到ls-output.txt文件中
ls -l /bin/usr 2> /dev/null:将错误信息丢弃
cat ls-output.txt:显示ls-output.txt文件的内容
cat movie.mpeg.0* > movie.mpeg:将movie.mpeg.001 movie.mpeg.002...movie.mpeg.099连接在一起
cat > lazy_dog.txt:把标准输入复制到文件lazy_dog.txt中
cat < lazy_dog.txt:把文件lazy_dog.txt中的内容输入到标准输出中
ls -l /usr/bin | less:通过管道|将ls -l /usr/bin命令的结果输出到less中
ls -l /bin /usr/bin | sort | less:将/bin和/usr/bin目录下的所有可执行程序合并成一个列表,并按照顺序排列,并查看这个列表;把多个命令合在一起构成一个管道,称为过滤器
ls -l /bin /usr/bin | sort | uniq | less:忽略列表中重复的行
ls -l /bin /usr/bin | sort | uniq -d | less:查看重复的行
wc ls-output.txt:显示ls-output.txt文件中包含的行数,字数和字节数
ls /bin /usr/bin | sort | uniq | wc -l:查看已排序好的列表中的条目数
ls /bin /usr/bin | sort | uniq | grep zip:从列表中搜索出文件名中包含zip的所有文件(-i,搜索时忽略大小写;-v,只输出和模式不匹配的行)
head -n 5 ls-output.txt:输出文件ls-output.txt的前5行,默认是前10行
tail -n 5 ls-output.txt:输出文件ls-output.txt的后5行,默认是后10行
ls /usr/bin | tail -n 5:显示命令ls /usr/bin的后5行结果
tail -f /var/log/messages:显示目录/var/log下的messages文件,-f表示tail将持续监视这个文件,直到按下Ctrl-C才停止
ls /usr/bin | tee ls.txt | grep zip:将目录列表输出到ls.txt文件中,再用grep命令过滤管道中内容

第7章  透过shell看世界
echo:显示一行文本
echo *:将*扩展为当前目录下的所有文件名,然后echo将其显示出来
echo D*:显示当前目录下以D开头的文件名
echo *s:显示当前目录下以s结尾的文件名
echo [[:upper:]]*:显示当前目录下以大写字母开头的文件名
echo /usr/*/share:查看主目录之外的目录,结果为/usr/kerberos/share /usr/local/share
ls -d .* | less:显示以.开头的文件名
ls -d .[!.]?*:显示以.开头的文件名,文件名中并不包含第二个点字符,但包含至少一个额外的字符,后面也可跟着其它字符
echo ~:显示当前用户的主目录
echo ~foo:显示foo用户的主目录
echo $((2+2)):算术扩展,显示2+2的结果,其格式为$((expression))
算术运算符:
+ 加
- 减
* 乘
/ 除
% 求余
** 取幂
echo Front-{A,B,C}-Back:花括号扩展,显示为Front-A-Back Front-B-Back Front-C-Back
echo Number_{1..5}:显示Number_1 Number_2 Number_3 Number_4 Number_5
echo {Z..A}:显示Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
echo a{A{1,2},B{3,4}}b:显示aA1b aA2b aB3b aB4b
mkdir {2009..2011}-0{1..9} {2009..2011}-{10..12}:创建目录2009-01 2009-02 .. 2011-12
echo $USER:显示变量USER中包含的用户名
printenv | less:查看可用的变量列表
echo $(ls):把命令ls的输出作为扩展模式使用
ls -l $(which cp):显示cp所在路径的详细列表
file $(ls /usr/bin/* | grep zip):将管道的输出为file命令的参数列表
echo this is a test:输出this is a text
echo The total is $100.00:输出The total is 00.00,因为$1是一个未定义的变量,所以参数扩展把$1的值替换为空字符串
ls -l "two words.txt":使用双引号可以阻止单词分割,但参数扩展、算术扩展和命令替换在双引号中依然生效,没有用双引号包含起来的空格、制表符和换行符不会被当成文本的一部分,而只是被当成分割符
echo $(cal):输出为五月 2016 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
echo "$(cal)":输出为
      五月 2016     
日 一 二 三 四 五 六
 1  2  3  4  5  6  7
 8  9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31             
单词分割机制会把换行符当成界定符
echo text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER:输出为text /home/me/ls-output.txt a b foo 4 me
echo "text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER:输出为text ~/*.txt {a,b} foo 4 me
echo 'text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER:输出为text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER,单引号能抑制所有扩展,随着引用级别加强,越来越多的扩展将被抑制
echo "The balance for user $USER is: \$5.00":输出为The balance for user me is: $5.00,转义字符常用来消除文件名中某个字符的特殊含义,注意单引号中的反斜杠将失去它的特殊含义
反斜杠转义字符序列:
\a 响铃(警告声-计算机发出的哔哔声)
\b 退格
\n 新的一行
\r 回车
\t 制表
sleep 10; echo -e "Time's up\a":等待10秒,显示Time's up并响铃,在echo命令中带上-e选项,就能够解释转义字符序列

第8章  高级键盘技巧
clear:清屏
history:显示历史列表的记录
光标移动命令:
Ctrl-A: 移动光标至行首
Ctrl-E: 移动光标至行尾
Ctrl-F: 光标向前移动一个字符,和右箭头作用一样
Ctrl-B: 光标向后移动一个字符,和左箭头作用一样
Alt-F: 光标向前移动一个字
Alt-B: 光标向后移动一个字
Ctrl-L:清屏并把光标移到左上角,和clear命令的作用一样
文本编辑命令:
Ctrl-D: 删除光标处的字符
Ctrl-T: 使光标处的字符和它前面的字符对调位置
Alt-T: 使光标处的字和它前面的字对调位置
Alt-L: 把从光标到字尾的字符转换成小写字母形式
Alt-U: 把从光标到字尾的字符转换成大写字母形式
剪切和粘贴命令:
Ctrl-K:剪切从光标到行尾的文本
Ctrl-U:剪切从光标到行首的文本
Alt-D: 剪切从光标到当前词尾的文本
Alt-Backspace: 剪切从光标到词头的文本,如果光标在一个单词的开头,则剪切前一个单词
Ctrl-Y: 把kill-ring缓冲区中的文本粘贴到光标位置
自动补齐:在输入命令时,按Tab键将触发自动补齐功能
自动补齐命令:
Alt-$: 显示所有可能的自动补齐列表,在大多数系统中,可通过按两次Tab键实现
Alt-*: 插入所有可能的匹配项
history | less:查看使用过的命令的历史记录
history | grep /usr/bin:显示包含/usr/bin的历史记录
!88:bash将把!88扩展为历史列表中第88行的命令
历史记录命令:
Ctrl-P: 移动到前一条历史记录,相当于向上箭头键
Ctrl-N: 移动到后一条历史记录,相当于向下箭头键
Alt-<: 移动到历史记录列表的开始处
Alt->: 移动到历史记录列表的结尾处,即当前命令行
Ctrl-R: 逆向递增地搜索。从当前命令行向前递增搜索
Alt-P: 逆向非递增地搜索。按下这个组合键,接着输入待搜索的字符串,按Enter键后,搜索才真正开始执行
Alt-N: 向前非递增地搜索
Ctrl-O: 执行历史记录列表中的当前项,执行完跳到下一项。若要把历史记录中的一系列命令重新执行一遍,使用该组合键将很方便
历史记录扩展命令:
!!: 重复最后一个执行的命令。按向上箭头键再按Enter键也可以实现相同的功能,而且操作简单
!number: 重复历史记录中第number行的命令
!string: 重复最近的以string开头的历史记录
!?string: 重复最近的包含string的历史记录

第9章  权限
id: 显示用户身份标识
chmod: 更改文件的模式(权限)
umask: 设置文件的默认权限
su: 以另一个用户的身份运行shell
sudo: 以另一个用户的身份来执行命令
chown: 更改文件所有者
chgrp: 更改文件所属群组
passwd: 更改用户密码
文件类型:
- 普通文件
d 目录文件
l 符号链接,其剩下的文件属性始终是rwxrwxrwx,它是伪属性值
c 字符设备文件,表示以字节流形式处理数据的设备,如终端或调制解调
  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值