1.Linux命令缩写英文对照记忆
ls:list (列出目录内容)
cd:更改目录(更改目录)
su :切换用户切换用户
rpm : redhat 软件包管理器
pwd :打印工作目录打印当前目录显示出当前工作目录的绝对路径
ps :进程状态(进程状态,多个windows的任务管理器)常用参数:-auxf
ps - auxf显示进度状态
df :免费的磁盘,其功能是显示磁盘上可用的空间数量信息和空间结点信息。换句话说,就是报告在任何安装的设备或目录中,还剩多少自由的空间。
rpm:即RedHat软件包管理,是RedHat的发明之一
rmdir:删除目录(删除目录)
rm:删除(删除目录或文件)
cat :连接连锁cat file1 file2 >> file3把文件1和文件2的内容联合起来放到file3中
insmod :安装模块,加载模块
ln - s : link - soft创建一个软链接,相当于创建一个快捷方式
mkdir:制作目录(创建目录
触摸
男子:手册
pwd:打印工作目录
su:切换用户
cd:更改目录
ls:列出文件
ps:处理状态
mkdir:制作目录
rmdir:删除目录
mkfs: Make file system
fsck:File system check
cat: Concatenate
uname: Unix name
df: Disk free
du: Disk usage
lsmod: List modules
mv: Move file
rm: Remove file
cp: Copy file
ln: Link files
fg: Foreground
bg: Background
chown: Change owner
chgrp: Change group
chmod: Change mode
umount: Unmount
dd: 本来应根据其功能描述“Convert an copy”命名为“cc”,但“cc”已经被用以代表“C Complier”,所以命名为“dd”
tar:Tape archive
ldd:List dynamic dependencies
insmod:Install module
rmmod:Remove module
lsmod:List module
文件结尾的"rc"(如.bashrc、.xinitrc等):Resource configuration
Knnxxx / Snnxxx(位于rcx.d目录下):K(Kill);S(Service);nn(执行顺序号);xxx(服务标识)
.a(扩展名a):Archive,static library
.so(扩展名so):Shared object,dynamically linked library
.o(扩展名o):Object file,complied result of C/C++ source file
RPM:红帽包装经理
dpkg:Debian 软件包管理员
apt:高级打包工具(Debian或基于Debian的发行版中提供)
部分Linux命令缩
bin = BINaries #下面的是一些二进制程序文件
/dev = DEVices #下面的是一些硬件驱动
/etc = ETCetera #目录存放着各种系统配置文件, 类似于windows下的system
/lib = LIBrary
/proc = PROCesses
/sbin = Superuser BINaries
/tmp = TeMPorary
/usr = Unix Shared Resources
/var = VARiable ?
/boot=boot #下面的是开机启动文件
FIFO = First In, First Out
GRUB = GRand统一引导加载程序
IFS =内部字段分隔符
LILO = LInux懒汉
MySQL = My是最初作者女儿的名字,SQL =结构化查询语言
PHP =个人主页工具= PHP超文本预处理程序
PS =提示字符串
Perl = “实用提取和报告语言” = “病态折衷的垃圾清单”
Python得名于电视剧Monty Python的马戏团
Tcl =工具命令语言
Tk =工具包
VT =视频终端
YaST = Yet Another Setup Tool
apache = "a patchy" server
apt = Advanced Packaging Tool
ar = archiver
as = assembler
awk = "Aho Weiberger and Kernighan" 三个作者的姓的第一个字母
bash = Bourne Again SHell
bc = Basic (Better) Calculator
bg = BackGround
biff = 作者Heidi Stettner在U.C.Berkely养的一条狗,喜欢对邮递员汪汪叫。
cal = CALendar
cat = CATenate
cd =更改目录
chgrp =更改组
chmod =更改模式
chown =更改所有者
chsh =更改外壳
cmp =比较
cobra =通用对象请求代理体系结构
comm =普通
cp = CoPy
cpio =输入和输出CoPy
cpp = C预处理器
cron = Chronos希腊文时间
cups =通用Unix打印系统
cvs =当前版本系统
守护程序=磁盘和执行监视器
dc =桌面计算器
dd =磁盘转储
df =可用磁盘
差异=差异
dmesg =诊断消息
du =磁盘使用率
ed =编辑
egrep =扩展GREP
elf =可扩展链接格式
榆木=电子邮件
emacs =编辑器MACroS
评估= EVALuate
ex =扩展
exec =执行
fd =文件描述符
fg =前地面
fgrep =固定GREP
fmt =格式
fsck =文件系统检查
fstab =文件系统标签
fvwm = F ** *虚拟窗口管理器
gawk = GNU AWK
gpg = GNU Privacy Guard
groff = GNU troff
hal =硬件抽象层
joe =乔自己的编辑
ksh = Korn SHell
me脚= me脚不是MP3编码器
lex = LEXical分析器
口齿不清=列表处理=大量的刺激多余圆括号
ln =铌酸锂
lpr =行打印
ls =清单
lsof = List打开文件
m4 =宏处理器版本4
man =手册页
mawk = Mike Brennan的AWK
mc =午夜指挥官
mkfs = MaKe文件系统
mknod = MaKe节点
MOTD =消息的该日
mozilla = MOsaic GodZILLa
mtab =安装TABle
mv =移动
nano = Nano的ANOther编辑器
NAWK =新AWK
NL =数的行
nm =名称
nohup =没有挂断
nroff =新的ROFF
od =八进制转储
passwd =通行证
pg =传呼机
pico = PIne的消息构成编辑器
pine = “ Internet新闻和电子邮件计划” = “ Pine不是Elm”
ping =拟声又= Packet InterNet石斑鱼
pirntcap =打印能力
popd = POP目录
pr =前
printf = PRINT格式化
ps =进程状态
pty =伪tty
PUSHD = PUSH目录
pwd =打印工作目录
rc = runcom =运行命令, rc还是plan9的shell
rev = REVerse
rm = ReMove
rn = Read News
roff = RunOFF
rpm = RPM Package Manager = RedHat Package Manager
rsh, rlogin, rvim中的r = Remote
rxvt = ouR XVT
seamoneky = 我
sed = Stream EDitor
seq = SEQuence
shar = SHell ARchive
slrn = S-Lang rn
ssh = Secure SHell
ssl = Secure Sockets Layer
stty = Set TTY
su =替代用户
svn = SubVersioN
tar =磁带存档
tcsh = TENEX C外壳
tee = T ( T形水管接口)
telnet =网络上的TEminaL
termcap =终端能力
terminfo =终端信息
tex = τέχνη的缩写,希腊文art
tr =翻译
troff =排字员新 ROFF
tsort =拓扑排序
tty = TeleTypewriter
twm =汤姆的窗户管理员
tz =时区
udev =用户空间DEV
ulimit =用户的LIMIT
umask =用户的掩码
uniq = UNIQue
vi =视觉=非常不便
vim = Vi已改进
墙=全部写
wc =字数
wine = WINE不是模拟器
xargs =扩展参数
xdm = X显示管理器
xlfd = X逻辑字体描述
xmms = X多媒体系统
xrdb = X资源数据库
xwd = X窗口转储
yacc =另一个编译器
鱼=友善互动壳
su =切换用户
MIME =多用途Internet邮件扩展
ECMA =欧洲计算机制造商协会
2.Linux常用技巧
(一篇文章学习 linux 命令Github Star 3.8W+)[cloud.tencent.com/developer/a…]
cloud.tencent.com/developer/i…
查看命令帮助
info ls # 查看ls使用方法
help cd # cd命令基本用法提示
info cd # 使用方法说明书
mv --help # 基本用法提示(没有help mv)
info mv # mv使用方法说明书
q键 #退出 使用方法说明书
解压 压缩
tar -xf archive.tar.gz
示例
tar -cf archive.tar foo bar # 从文件 foo 和 bar 创建归档文件
archive.tar。
tar -tvf archive.tar # 详细列举归档文件 archive.tar
中的所有文件。
tar -xf archive.tar # 展开归档文件 archive.tar
中的所有文件。
tab
tab #自动补全
tab tab #tab x2双击来列出所有以此关键字开头的内容;直接敲两次tab 可以展示全部1400多个命令
cat、more、less三种命令异同;以及head、tail;tac
cat 可以将多个小文件内容拼接在一起输出,
more
cat是一次性显示整个文件的内容,还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况; more和less一般用于显示文件内容超过一屏的内容,并且提供翻页的功能。more比cat强大,提供分页显示的功能,less比more更强大,提供翻页,跳转,查找等命令。而且more和less都支持:用空格显示下一页,按键b显示上一页
1.滚屏键
more常用键中,空格键<Space>表示显示下一屏内容;
回车键<Enter>表示显示文本的下一行内容;
字母<H>显示帮助,意为help;
字母<B>上一页;
字母<Q>退出more过滤器。
2.指定一屏显示的行数
在命令行中输入“more -5 dsp.log”,这句命令的意思是显示dsp.log的内容,一屏显示5行。
当按下空格键时,内容从5行显示变为10行,再按一次变为15行。
说明:这是由于滚屏才这样显示的,如果不想滚屏,需要使用参数-c。
在命令行中输入“more -5 -c dsp.log”,那么再次按下空格键后,屏幕只是5行5行的显示。
3.从指定行开始显示
在命令行中输入“more -5 +10 dsp.log”,这句命令的意思是,一屏5行,从第10行开始显示。
4.查找指定字符串
在命令行中输入“more -5 +trigger_time dsp.log”,这句命令的意思,先找到trigger_time字符串,
然后在这个字符串所在行的前两行开始显示。
less
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
待补充
head、tail
head展示文件前n行,比较简单,使用 more -5 filename.log 就可以替代; tail -f 是比较常用的命令,和head不同的是tail是从文件footer开始取数据,查看当前日志时可以结合其他命令一起使用,tail单独梳理一下使用方法。
tail:
-n 是显示行号;相当于nl命令;例子如下:
tail -100f test.log 实时监控100行日志
tail -n 10 test.log 查询日志尾部最后10行的日志;
tail -n +10 test.log 查询10行之后的所有日志;
head:
跟tail是相反的,tail是看后多少行日志;例子如下:
head -n 10 test.log 查询日志文件中的头10行日志;
head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;
这里很符合实际应用场景。
grep -c 和 grep '' | wc -l 管道符后加wc也可统计的
tac
tac filename 查看日志,会打开整个文件,倒序显示,不常用
find
查找目录下文件内容
// 查找具体文件时可以在vim 后直接 /关键字
// 日志文件比较大,每一行有不是很大的情况下 要在不打开的情况下查找 可以使用grep
// 文件比较多,查找关键字在哪个文件中
mac:
find ./ -name "*.js"|xargs grep "require"
find ./ -name "*.js"|xargs grep -l "require" // 所在文件 -l, --files-with-matches 只打印匹配FILES 的文件名
linux:
find -name "*.js"|xargs grep "require"
自实现一个tree2 命令
which tree2
tree2: aliased to find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
# 加遍历层数
find ./ -maxdepth 2 -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
xargs
xargs命令的作用,是将标准输入转为命令行参数。
$ echo "one two three" | xargs mkdir
相当于
mkdir one two three
xargs是 Unix 系统的一个很有用的命令,但是常常被忽视,很多人不了解它的用法。 www.ruanyifeng.com/blog/2019/0…
pdoX、awk
# 日志批处理
pdoX -b 集群 -r 5 -c "grep -c -i '关键字' 日志文件" -y > statistic.log
cat statistic.log | awk -F '>> ' '{sum=sum+$3;} END{print "timesum:"sum}'
# 或者直接统计
pdoX -show row -r 20 -y -q -a 产品集群 "grep -c '关键字' 日志文件"| awk -F':' '{sum+=$2} END {print "Sum = ", sum}'
# 行首字符匹配 或 尾字符匹配
echo 'werdwerwe efff' | grep -nE '^w'
1:werdwerwe efff
echo 'werdwerwe efff' | grep -nE 'f$'
1:werdwerwe efff
# grep转译
转译字符:
echo '\' | grep '\\' #正确;
echo '\$ww"' | grep '"' #正确;
1、$ 美元符;2、\ 反斜杠;3、` 反引号 4、双引号
使用规则:一般常量用单引号''括起,如果含有变量则用双引号""括起。https://www.cnblogs.com/zhushuaishuai/p/10843416.html
# 定义变量
key='2233'
# 查找变量
'344522334455' | grep '$key' # 错误
'344522334455' | grep "$key" # 正确
# grep排除 例如需要排除 abc.txt 中的 mmm nnn
grep -v 'mmm\|nnn' abc.txt
# grep and or
And: grep -E '99017434.*nativeError' file.txt
Or: grep -E "Tech|Sales"
egrep和grep -E功能完全相同
TP分位统计
# 先筛选出需要统计的日志,去处数值、排序、取分位值
grep "字段名称" XX.log | awk -F "字段名称=" '{print $2}' | awk -F "]" '{print $1}' | sort -n |awk 'BEGIN {total_lines = 0} {lines[total_lines++] = $0} END {print lines[int(total_lines * 0.99)]}'
3965
grep "字段名称" XX.log | awk -F "字段名称=" '{print $2}' | awk -F "]" '{print $1}' | sort -n |awk 'BEGIN {total_lines = 0} {lines[total_lines++] = $0} END {print lines[int(total_lines * 0.90)]}'
1665
expect
expect自动交互流程
能够在工作中熟练的使用Shell脚本就可以很大程度的提高工作效率,如果再搭配上expect,那么很多工作都可以自动化进行,对工作的展开如虎添翼。如果你会Python的话,你的视野将会更加开阔,那个时候你又会“嫌弃”expect了
Linux基本命令操作命令
1.history
history的使用方法:
1.光标上下键
2. ctrl+r进入search 输入想要查找的关键字,然后按下光标键,过滤历史记录
3.命令行:第一步输入 history,进入历史记录;第二步输入:!10,就是进入命令历史列表的第十行
4.命令行:输入 !mkdir、!sys 等等 可以查看该命令最后执行的历史(看最后执行历史有什么用?
可能对于软件开发功能有用)
history -c # 清理历史记录
2.curl
curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。 它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。 www.ruanyifeng.com/blog/2019/0…
3.进程管理
要对进程进行检测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程运行状态。
Linux 系统中我们可以使用 ps 命令查看进程。
ps 命令介绍
ps(process status) 命令是 Linux 下最常用的进程查看工具,
使用该命令可以确定哪些进程正在运行和运行的状态、进程是否结束、
进程有没有僵尸、哪些进程占用了过多的资源等等。
ps -ef | grep 8123 # 查找端口的进程
sudo kill -9 进程id # 直接杀死进程
https://www.cnblogs.com/zjdxr-up/p/8408885.html # 关于list of 等命令描述
netstat -anp | grep
-a,显示所有
-n,不用别名显示,只用数字显示
-p,显示进程号和进程名 # mac 貌似不支持
注意:ps 命令工具显示的是进程的瞬间状态,并不是动态连续显示,如果想对进程状态进行实时监控应该用 top 命令。
top 在linux和mac上的option是不一样的使用的时候要注意。
查找进程目录
cd /proc/6482
ls -ail
## 展示进程详细信息
cwd -> 进程目录
## 可以学习一下/proc/这个目录
Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过ll或ls –l命令即可查看。 ll /proc/PID cwd符号链接的是进程运行目录; exe符号连接就是执行程序的绝对路径; cmdline就是程序运行时输入的命令行命令; environ记录了进程运行时的环境变量; fd目录下是进程打开或使用的文件的符号连接。
4.终端上传下载
# 首先安装lrzsz
yum -y install lrzsz
# rz 上传 sz下载
5.dev目录
dev是系统的设备目录,比如键盘等输入设备、硬盘挂载;
mnt是挂载点目录,挂载硬件设备需要先在mnt下创建一个目录,然后用mount命令挂载;硬盘和u盘的挂载格式是不同的
linux的文件格式有很多种,ntfs、
6.dig
Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具。
7.linux下如何查看已安装的centos版本信息:
1.Linux查看当前操作系统版本信息 cat /proc/version
Linux version 2.6.32-696.el6.x86_64 (mockbuild@c1bm.rdu2.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) ) #1 SMP Tue Mar 21 19:29:05 UTC 2017
2.Linux查看版本当前操作系统内核信息 uname -a
Linux localhost.localdomain 2.4.20-8 #1 Thu Mar 13 17:54:28 EST 2003 i686 athlon i386 GNU/Linux
3.linux查看版本当前操作系统发行信息 cat /etc/issue 或 cat /etc/centos-release
CentOS release 6.9 (Final)
4.Linux查看cpu相关信息,包括型号、主频、内核信息等 cat /etc/cpuinfo