Skip to content

Linux Basic

Everything is a file

source

效果等同于 .

bash

执行某个文件, 作为子进程 -x 参数查看调试信息

gdb

用来调试C程序

gdb a.out

调试命令

break 16    #断点行
break func  #断点函数
info break  #打印断点

r           # run
n           # next
c           # continue
p i         # print i
bt          # 函数堆栈
finish      # 退出函数
q           # 退出GDB

awk

awk 'pattern {action}'
pattern(all by default) BEGIN, END
action(print by default)
builtin variables
NR:       已输入记录的条数。
NF:       当前记录中域的个数。记录中最后一个域可以以 $NF 的方式引用。
FILENAME: 当前输入文件的文件名。
FS:       域分隔符,用于将输入记录分割成域。其默认值为“空白字符”,即空格和制表符。FS可以替换为其它字符,从而改变域分隔符。
RS:       当前的记录分隔符。默认状态下,输入的每行都被作为一个记录,因此默认记录分隔符是换行符。
OFS:      输出域分隔符,即分隔print命令的参数的符号。其默认值为空格。
ORS:      输出记录分隔符,即每个print命令之间的符号。其默认值为换行符。
OFMT:     输出数字格式(Format for numeric output),其默认值为"%.6g"。
%0:       整个记录
%n:       第n个记录

sed

/模式/p            # 打印
/模式/d            # 删除
s/模式/替换文字/   # 替换
s/模式/替换文字/g  # 替换所有
np                 # 匹配第n行

cp

# 用`.`而不是`*`可以拷贝到隐藏文件
cp -r /PATH/TO/SOURCE/. /PATH/TO/DESTATION/

rsync

rsync -avzP --delete /PATH/TO/SOURCE/. /PATH/TO/DESTATION/

find

其他概念

/dev/sda1 第一块设备第一个分区

/dev/sda5 第一块设备扩展分区的第一个逻辑分区

硬盘 每个扇区 512 Byte 第一扇区MBR最重要

MBR, Master Boot Record 硬盘主引导记录

硬盘分区表 DPT, Disk Partition Table 占64字节

Magic Number 2字节 固定为 55AA

MBR 512 = 446+64+2

type 用于查看命令是内部命令还是外部命令

tee -a 追加保存

tr 'a-z' 'A-Z' 大小写转换

cut -d 指定分隔符 -f 指定字段 -c 用字符串分隔

cut -d: -f3 /etc/passwd

没有-d选项时 默认TAB分隔符

sort 排序 默认按字母排序

-n 按数字排序 -k 字段 -t 分隔符

sort -n -k3 -t: /etc/passwd

-r 反向排序 -u 重复行只显示一次

uniq 连续相同的行只显示一行

sort -u 重复行只显示一次,不管是否联系

uniq -c 重复的次数 -d 只显示重复的行

ps -aux 显示所有进程

pstree 显示进程树

ps -ef 显示所有进程

pgrep -u root 只显示root产生的进程

pidof 显示某一个进程的进程号

kill -l 显示所有64种信号

常用:

1 重新加载

15 完全退出

9 强制杀死

18 继续

19 stop

killall -9 httpd 强制杀死所有httpd进程

进程优先级 数字越小,优先级越大

只有root可以调节优先级,普通用户只能将优先级数字调大

nice -n 5 command 开启一个进程,给予优先级5

renice 5 pid 重新赋予优先级

bg %1 作业号1,继续放到后台运行

fg %1 作业号1放到前台运行

kill -9 %1 强制杀死作业号1

echo $? 显示上次命令执行的返回值

0 代表成功执行 127 代表此命令找不到 其他表示没有成功执行

test -f -d -e -r -w -x -n -z 测试

-f 文件 -d 目录 -e 文件或目录

-r 可读 -w 可写 -x 可执行

-n 是否非空值 -z 是否空值