《linux 命令行大全》读书笔记

一. shell是什么

date    实践和日期
cal     当前日历
df      磁盘驱动器当前的可用空间
free    可用内存
exit    结束终端回话12345

二. 导航

 

pwd     查看当前工作目录

cd      将工作目录改变为主目录
cd-     将工作目录改变为先前的工作目录
cd~username 将工作目录改变为username的主目录12345

三. Linux系统


ls 列出目录内容,可以指定多个目录
以’.’字符开头的文件名是隐藏的,ls不会列出这些文件,除非输入ls -a
ls命令的常用选项: 
-a 列出所有文件,包括以点号开头的文件 
-l  将输出以长格式显示  
-d 将此选项与-l选项结合使用,可查看目录的详细信息,而不是目录的内容 
-F 在每个所列出的名字后面加上类型指示符(如在目录名后面加上一个斜杠) 
-r 以相反的顺序显示结果  
-S 按文件的大小对结果排序 
-t 按修改时间排序
ls 长列表字段含义: 
-表示一个普通文件,d表示目录(directory),l表示软链接 
文件所有者、文件所属组中成员、其他所有人的访问权限 
硬链接数目 
文件所有者的名字 
文件所属用户组的名称 
文件大小 
修改时间 
文件名
file filename 确定文件类型
less filename 查看文件内容


四.操作文件与目录

 

\* 匹配任意多个字符
?匹配任一单个字符(不包括0个)

[characters] 匹配任意一个属于字符集中的字符
[:alnum:] 匹配任意一个字母或数字
[:alpha:] 匹配任意一个字母
[:digit:] 匹配任意一个数字
[:lower:] 匹配任意一个小写字母
[:upper:] 匹配任意一个大写字母123456789

 

mkdir directory... 创建目录
cp item1 item2  复制单个文件或目录
cp item... directory 复制多个项目进一个目录中

-a archive 复制文件和目录及其属性
-i -interactive 互动,覆盖之前会提示用户
-r -recursive 递归地复制目录及其内容
-u -update 只复制目标目录中不存在的文件或更新文件
-v -verbose 显示信息性消息

mv 移除和重命名文件

rm 删除文件和目录

ln 创建链接

ln file link 创建硬链接

ln -s item link 创建符号链接,item可以是文件也可以是目录12345678910111213141516171819


硬链接的局限性:

硬链接不能引用自身文件系统之外的文件,即不能引用与该链接不在同一磁盘分区的文件,简单地说无法跨越物理设备
硬链接无法引用目录
硬链接和文件本身没有什么区别,当硬链接被删除时,只是删除了这个链接,但是文件本身的内容依然存在,除非该文件的所有链接都被删除了。
符号链接是为了克服硬链接的局限性而创建的,符号链接是通过创建一个特殊类型的文件来起作用的,该文件包含了指向引用文件或目录的文本指针。
当删除一个符号链接时,删除的只是符号链接而没有删除文件本身。如果先于符号链接之前删除文件,那么这个链接依然存在,但却不指向任何文件,此时这个链接就称为坏链接。
由于文件名是由链接创建的,所以一个文件通常至少有一个链接。
ls -li 第一个字段就是索引节点号,看到fun和fun-hard共享同一个索引节点号,这就证实它们是相同的文件。


五. 命令的使用 

 

type 显示命令的类型

which 显示可执行程序的位置

help + shell内置命令  获取帮助文档

可执行程序 + --help  显示命令的使用信息

man 显示程序的手册页

1 用户命令
2 内盒系统调用的程序接口
3 C库函数程序接口
4 特殊文件,如设备节点和驱动程序
5 文件格式
6 游戏和娱乐,例如屏幕保护程序
7 其他杂项
8 系统管理命令

apropos 显示合适的命令,带-k选项的man命令与apropos命令在功能上基本是一致的

whatis 显示命令的简要描述

info 显示程序的info条目

alias 创建自己的命令 alias name='string'

多条命令用;号分割开

删除别名,可使用unalias命令。

alias不带参数可查看在环境中定义的所有别名。1234567891011121314151617181920212223242526272829303132

六. 重定向


使用重定向操作符“>”,后面接文件名,就可以把标准输出重定向到另一个文件中,而不是显示在屏幕上。
当使用重定向付“>”来重定向标准输出时,目的文件通常会从文件开头部分重新改写。
仅仅使用了重定向符,并在它之前不加任何命令,就可以删除一个已存在的文件内容或者创建一个新的空文件。如: > output.txt
使用重定向符“>>”将使得输出内容添加在文件的尾部。如果这个文件并不存在,将与操作符>的作用一样创建这个文件。
标准输入文件、标准输出文件和标准错误文件分别对应为0、1、2
2&>1 把文件描述符2(标准错误)重定向到文件描述符1(标准输出)中
只用一个标记符 &> 就把标准输出和标准错误都重定向到 

ls -l /bin/usr > ls-output.txt 2&>1 
等价于
ls -l /bin/usr &> ls-output.txt

ls -l /bin/usr 2> /dev/null 隐藏一个命令的错误信息12345
通过把输出重定向到一个称为/dev/null的特殊文件中来实现丢弃输出
Ctrl-D 告诉cat命令已经达到了标准输入的文件尾(end of file, EOF)
使用管道操作符“|”可以把一个命令的标准输出传送到另一个命令的标准输入中。
uniq 命令经常和sort命令结合使用,默认情况下,该命令删除文件中重复的行,如果我们想要查看重复的行,可以在uniq命令后面添加-d选项。
wc 打印行数、字数、字节数
grep 打印匹配行
head/tail 打印文件的开头部分/结尾部分
tee 读取标准输入,再把读到的内容复制到标准输出和一个或更多的文件中去。


七. 透过shell看世界


算术运算符: + - * / % **取幂

echo $USER  参数扩展
printenv | less查看可用的变量列表

命令替换:
echo $(ls)
ls -l $(which cp)
file $(ls /usr/bin/* | grep zip)1234567
参数扩展、算数扩展、命令替换在双引号中依然生效。如:echo “$USER $((90+9)) $(cal)”
如果希望抑制所有的扩展,那么应该使用单引号。

制表符:
\a 响铃
\b 退格
\n 换行
\r 回车
\t 制表123456


八. 高级键盘技巧


历史记录命令 
Ctrl-R 逆向非递增地搜索,从当前命令行向前递增搜索,Ctrl-J把搜索结果复制到当前命令行。
历史记录扩展命令 
!! 重复最后一个执行的命令(虽然↑+Enter键更简单) 
!number 重复历史记录中第number行的命令 
! string 重复最近的以string开头的历史记录 
!?string 重复最近的含有string的历史记录


九. 权限

 

文件类型:
- 普通文件
d 目录文件
l 符号链接
c 字符设备文件
b 块设备文件

chmod 更改文件模式
符号表示法:
u 文件或目录的所有者
g 文件所属组
o 其他所有用户
a all

+ 添加一种权限
- 删除一种权限
= 只用指定的权限

umask 设置默认权限12345678910111213141516171819


对于文件来说,这一数字的最大值分别是6,即666。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加执行权限。
目录允许设置执行权限,对于目录来说,umask中各个数字最大可以到7,即777。

chown 更改文件所有者和所属群组

chown [ower][:[group]] file...

chgrp 更改文件所属群组

passwd 更改用户密码1234567


十. 进程

系统启动时,内核先把一些程序初始化为进程,然后运行一个称为init的程序。init程序将依次运行一系列称为脚本初始化的shell脚本(放在/etc目录下),这些脚本将会启动所有的系统服务,其中的很多服务都是通过守护程序(daemon program)来实现的。

 

ps 输出和当前终端会话相关的进程信息

TTY: 进程的控制终端,“?”表示没有控制终端
TIME: 进程消耗的CPU时间总和

添加x选项,告知ps命令显示所有的进程

STAT:state的缩写,显示进程的当前状态

R 运行状态。正在/准备运行
S 睡眠状态。等待某时间发送,如键盘输入或收到网络报文
D 不可中断的睡眠状态。等待I/O操作,如硬盘驱动
T 暂停状态。
Z 无效或者僵尸进程,子进程被终止,但还没有被其父进程彻底释放掉
< 高优先级进程。较不友好,因为消耗更多CPU时间
N 低优先级进程。友好进程(a nice process)
s 包含子进程
+ 位于后台的进程组
L: 有记忆体分页分配并锁在记忆体内

aux选项 输出更多的信息

top 实时显示当前所有任务的资源占用情况,默认3秒更新

在命令后面加上 & 使得进程在后台运行

jobs 列出所有活动作业的状态信息

bg 设置在后台中运行作业

fg 设置在前台中运行作业

fg %[jobspec] 使进程回到前台运行

ctrl + c 可以终止xlogo命令 —— 发出INT中断信号

ctrl + z 暂停前台进程 —— 发出TSTP 终端暂停信号

kill [-signal] PID 发送终止信号给某个进程

kill -l 查看更多信号

killall 杀死指定名字的进程

killall [-u user] [-signal] name...

shutdown 关机或者重启系统

pstree 树状模式显示进程列表,显示父子关系
vmstat 5 每隔五秒输出系统资源使用情况
xload  显示系统时间负载情况的图形化界面程序 
tload  类似xload,但在终端绘制12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152

十一. 环境

printenv: 打印部分或全部的环境信息
set: 设置shell选项
export: 将环境导出到随后要运行的程序中
alias: 为命令创建一个别名
1234

十二. vi

 

vi 启动vi
:q 退出vi
:q! 强制退出vi
不能确定vi所处的状态,可以按ESC键两次返回初始状态

i  进入插入模式,按esc退出插入模式并返回命令模式

:w 将文件写入硬盘

光标移动:
hlkj 分别对应于上下左右方向键
数字0 至本行开头

命令模式下:
o 在当前行的下方开行
O 在当前行的上方开行
u 取消上述操作

删除命令:
x 当前字符
3x 当前字符和之后2个字符
dd 当前行
5dd 当前行之后4行
dW 当前字符到下一单词的起始
d$ 当前字符到当前行的末尾
d0 当前字符到当前行的起始
d^ 当前字符到当前下一个非空字符
dG 当前行到文件末尾
d20G 当前行到文件第20行

命令d不只是删除文本,而是在剪切文本。

命令y会复制文本,其用法与d命令相同。

合并行: 大写的J命令

查找与替换:

行内搜索: f命令,执行过一次之后,输入分号重复上一次搜索。

整个文件搜索: / + 查询的文本, 使用n可以重复搜索。

文本替换: :%s/line/Line/gc  或者 :1,$s/line/Line/gc

: 用于启动一条ex命令

% 确定操作范围,%代表从文件的第一行到最后一行。或者用1,$表示所有的行。

s 替换操作

/line/Line 搜索和替换的文本

g global,对搜索到的每一行和每一个实例都进行替换,如果g缺失,只替换每一行第一个符合条件的实例

c 替换之前请求用户确认

替换确认功能键:
y 执行替换
n 跳过替换
a 所有替换
q 停止替换
l last,此次替换后退出替换


切换文件

:n 切换到下一个文件
:N 切换回上一个文件

:buffers 显示所有文件
:buffer 2 切换到文件2

:e + file添加新的一个文件到编辑会话中,只能用:buffer+文件编号来切换文件。

:r + file 将指定文件内容插入到光标位置之前
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576

十三. 定制提示符

shell提示符转义字符
————————————————
版权声明:本文为CSDN博主「云卷更云舒」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chenht8/article/details/56846201

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值