Linux常用命令总结

Linux常用命令总结(精简)

vim

w:后移一个单词,停在下一个单词开头
e:后移一个单词,停在下一个单词末尾
b:前移一个单词
Ctrl+u:up,上移半页
Ctrl+d:down,下移半页
( :前移一句
) :后移一句
100:跳转到100行,数字可配合部分命令代替重复操作
. :点,重复执行上一次操作
dw:删除一个单词
dd:删除一行
x :单个字删除
u:取消一次改动
ctrl+r: 重做
/ :查找,n下一个,N上一个
i :在当前光标前开始插入模式
a:在当前光标后开始插入模式
:e :刷新
gg:回到顶部
G :到达末尾
:set nu :设置行号
:set hls :设置搜索高亮
:e ++enc==utf-8 :临时设置编码
vimdiff:比较文档
v 可视模式:可以选择
ctrl+v:可视列模式 shift+i可插入内容
常用方法,选中后 = 可以自动排版
yy 复制整行 p 粘贴
ctrl + u : 清除此行(常用)
shift + * :快速搜索光标所在单词

cd & pwd

没有为cd指定目标路径,将切换到用户主目录,pwd命令可以显示出shell会话当前目录

ls

ls输出按字母列排序,ls用不同颜色区分不同类型文件,LS_COLORS环境变量控制
ls -F区分文件和目录 目录:music/ 可执行文件:script*
ls -al 显示所有文件及采用长列表模式展示

touch

创建空文件

cp

复制文件 cp source destination
cp -i 强制询问是否覆盖已有文件
cp -r 递归复制目录及其子目录内所有内容,不会删除目标路径中的内容,若目标文件已存在,则替换为更新的文件
-p:与文件的属性一起复制,而非使用默认属性

ln

符号链接:等同于windows的快捷方式,ln-s创建符号链接 ln-s source destination
硬链接:会创建独立的虚拟文件,包含了原始文件及位置 ln不加参数及创建硬链接

mv

重命名文件 mv source destination

rm

删除文件
rm -i 提示是否真的要删除
rm -rf 递归删除且不受提示符打扰
rm -rf !(keep) 删除除keep之外

tree

树状展示目录结构

file

展示文件是什么类型的

cat

查看整个文件
cat -n 加上行号
cat -A 显示所有字符(包括不可见字符)
cat /dev/null > xxx.x 清空文件

tail

展示文件末尾
tail -20 展示末尾20行
tail -f 实时展示变动

ps

ps监测进程
默认情况下ps只会显示运行在控制台当前用户的进程
最常用ps -ef 所有进程及完整格式的输出
ps -efH H树状,用来显示父进程
ps -eo pid,tty,user,comm,lstart,etime
-o 指定相关参数

pmap

常用法:pmap -d pid
提供了进程的内存映射
可以看到该进程内存被哪些库、哪些文件所占用,据此我们定位程序对内存的使用
几个字段介绍一下:
Address:占用内存的文件的内存起始地址。
Size:占用内存的字节数。
RSS:实际占用内存大小。
PSS:实际使用的物理内存(比例分配共享库占用的内存)PSS相对于RSS计算共享库内存大小是按比例的。N个进程共享,该库对PSS大小的贡献只有1/N。
Dirty:脏页大小。(当进程修改了高速缓存里的数据时,该页就被内核标记为脏页,内核将会在合适的时间把脏页的数据写到磁盘中去,以保持高速缓存中的数据和磁盘中的数据是一致的。)
Mapping:占用内存的文件,[anon] 为已分配的内存,[stack] 为程序堆栈
[heap]为程序堆

top

实时监测进程
S:进程的状态(D代表可中断的休眠状态,R代表正在运行,S代表休眠)

kill

kill可以通过PID给进程发信号
kill -9 最常用
9 KILL 无条件终止
killall 支持通过进程名而不是PID来结束进程

mount & umount

mount 输出当前系统上挂载的设备列表
umount 卸载

df & free

df用来查看磁盘空间
常用法:df -h df -m等
free用来查看内存

du

显示某个特定目录的磁盘使用情况
常用法查看目录下总大小:du -sh s:显示每个输出参数总计
du -sh * 可以查看当前目录下每个目录的大小

sort

排序,默认按照字符排序
sort -n 把数字识别为数字
sort -k 5 以第五列为基准排序
du | sort -n 则可以递归从小到大排序当前目录所有文件
-r 反序排序

ftp

用法:ftp 182.119.111.111
get 获取文件 mget批量获取文件
put 放置文件 mput批量放置文件

wc

wc是word count的缩写,统计指定文件中的字节数、字数、行数,并将统计结果显示输出
-c 统计字节数
-l 统计行数
-m 统计字符数。该参数不能与-c一起使用

grep

grep xxx *
grep在指定文件中查找匹配模式的
-v 反向搜索
-n 显示行号
-c 知道匹配到了多少行
-E 增强正则
-h 查询多文件时不显示文件名
-i 忽略大小写

find

查找文件
常用法 :find . -name “*.log” | xargs grep xxx
xargs 为传参给grep,找到log结尾的文件并在这些文件中搜索xxx

tar

归档打包工具
常用法:
tar -zxvf 解tar.gz包
tar -zcvf 打包成tar.gz
tar -cvf 打包不压缩
unzip 解zip包,常用于windows压缩包解压

type

了解某个命令是否是内建的
内建命令和外部命令的区别在于前者不需要使用子进程来执行,已经和shell编译成了一体
外部命令存一般在于文件系统的/bin等目录下
部分命令存在内建外部两种实现方式
type -a 查看所有实现方式

which

显示外部命令文件位置

history

查看最近用过的命令列表
命令历史记录被保存在隐藏文件.bash_history文件中,bash历史记录先放在内存中,shell退出时才被写入文件中
history -a :退出shell之前强制将命令写入.bash_history文件

alias

为命令创建别名
alias l=‘ls -al’

printenv & echo

系统环境变量基本上都是用全大写字母,区别用户环境变量
printenv查看全局环境变量
echo $HOME 查看单个全局变量

set

set会显示为某个特定进程设置的所有环境变量,包括局部变量、全局变量以及用户定义变量
-o参数将特殊特性打开
set -o vi
+o参数将关闭某些特性

allexport                -a              从设置开始标记所有新的和修改过的用于输出的变量         
braceexpand         	-B               允许符号扩展,默认选项  
emacs                                    在进行命令编辑的时候,使用内建的emacs编辑器, 默认选项
errexit                   -e             如果一个命令返回一个非0退出状态值(失败),就退出.
histexpand           -H                  在做临时替换的时候允许使用!和!! 默认选项
history                                  允许命令行历史,默认选项
ignoreeof                                禁止coontrol-D的方式退出shell,必须输入exit。
interactive-comments                     在交互式模式下, #用来表示注解
keyword             -k                   为命令把关键字参数放在环境中
monitor               -m                 允许作业控制
noclobber           -C                   保护文件在使用重新动向的时候不被覆盖
noexec                 -n                在脚本状态下读取命令但是不执行,主要为了检查语法结构。
noglob                -d                 禁止路径名扩展,即关闭通配符     
notify                 -b                在后台作业以后通知客户
nounset              -u                  在扩展一个没有的设置的变量的时候,显示错误的信息     
onecmd               -t                  在读取并执行一个新的命令后退出       
physical              -P                 如果被设置,则在使用pwd和cd命令时不使用符号连接的路径 而是物理路径
posix                                    改变shell行为以便符合POSIX要求
privileged                               一旦被设置,shell不再读取.profile文件和env文件 shell函数也不继承任何环境
verbose             -v                   为调试打开verbose模式
vi                                       在命令行编辑的时候使用内置的vi编辑器
xtrace                  -x               打开调试回响模式
export

将局部变量变成全局环境变量

unset

删除已存在的环境变量

useradd & userdel

useradd:添加新用户
userdel:删除用户
userdel -r:额外删除用户home

usermod

可以修改/etc/passwd文件中的大部分字段
usermod -l 修改用户账号名
usermod -a -G 添加到组中,不离开原组
usermod -G 添加到组中,离开原组

passwd

修改用户密码

chmod

修改权限
u:设置属主权限
g:设置属组权限
o:设置其他用户权限
chmod o+r file :设置其他用户有读权限
chmod u-x file :去除属主的执行权限
chmod g+w file :设置属组的写权限

chown & chgrp

chown:改变文件的属主
chgrp:改变文件的属组
chown -R :递归的改变子目录和文件的所属关系
-h :可以改变该文件所有符号链接文件的所属关系

各类系统安装工具

PSM(包管理系统)

  1. dpkg :基于Debian(ubuntu、Linux Mint)
    apt-get
    apt-cache
    aptitude
  2. rpm:基于Red Hat(Fedora、openSUSE、Mandriva)
    yum 在Red Hat和Fedora中使用
    urpm 在Mandriva中使用
    zypper 在openSUSE中使用
    这些前端都是基于rpm命令行工具的
    rpm -ivh 离线安装rpm包
    rpm -qa 显示所有安装的包
    rpm -ql xxx list xxx安装目录

通过源码安装
./configure :检查Linux系统,确保编译器和依赖
make :编译源码
make install :安装到常用位置

nohup

nohup会解除终端与进程的关联,进程不再和STDOUT和STDERR联系在一起
命令后加上 & 会使其后台运行
故 nohup 命令 & 可以使进程在终端退出后仍然运行

at

at命令允许指定Linux系统何时运行脚本
at -f file.sh 13:30

locale

查看本地系统编码

lsb_release -a

查看系统版本信息

sed

用法太多,常用为
sed -f file 处理文件中的脚本
s:替换 echo “test” | sed ‘s/test/big test/g’
big test 替换 test,g表示替换每一处匹配的地方
d:删除 sed ‘/number 1/d’ data.txt
删除匹配到number 1的行
i:在行前增加新行 sed ‘i\Test Line 1’ file
a:在行后增加新行 sed ‘a\Test Line 1’ file
p:打印文本行 sed -n ‘/number 3/p’ data.txt
-n选项禁止输出其他行,只打印包含匹配文本模式的行

gawk

用法太多,常用为
gawk -F: ‘{print $1}’ /etc/passwd -F指定分隔符为: $1代表第一个数据字段

cut

分割
cut -f12 -d " " file :以空格为分隔符,列出12位置

who

查看当前系统所有登录用户

source & .

source等价于. ,依次执行文件中的所有语句
sh filename 重新建立一个子shell,在子shell中执行脚本里面的语句。
source filename:没有建立新的子shell。

netstat

打印网络连接、路由表、接口统计、伪装连接和多播成员关系
常用 netstat -an
显示所有状态的socket 且不做名字解析,不加此参数,80端口会显示成http,127.0.0.1显示成localhost,uid为0显示成root等等

test

如果test命令中列出的条件成立,test命令就会退出并返回退出码0
bash shell提供了另一种test方法,[ ] 方括号定义了测试条件
1.数值比较 类似[ n1 -eq n2 ]
-eq <=> ==
-ge <=> >=
-gt <=> >
-le <=> <=
-lt <=> <
-ne <=> !=
2.字符串比较
str1 = str2 检查是否相同
str1 != str2
str1 < str2
str1 > str2
-n str1 检查str1的长度是否非0
-z str1 检查str1的长度是否为0
3.文件比较
-d file 检查file是否存在并是一个目录
-e file 检查file是否存在
-f file 检查file是否存在并是一个文件
-r file 检查file是否存在并可读
-s file 检查file是否存在并非空
-w file 检查file是否存在并可写
-x file 检查file是否存在并可执行
-O file 检查file是否存在并属当前用户所有
-G file 检查file是否存在并且默认组与当前用户相同
file1 -nt file2 检查file1是否比file2新
file1 -ot file2 检查file1是否比file2旧

$

$1 获取第一个参数,以此类推
$0 获取脚本名
$# 获取传给脚本参数个数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

[ ]

在将一个数学运算结果赋值给某个变量时,可以用美元符和方括号
var1=$[ 1 + 5 ]
test,无需在if-then中声明test命令
if [ condition ]

strings

在对象文件或二进制文件中查找可打印的字符串(基本上是程序中被双引号包起来的字符串)
-f –print-file-name:在显示字符串前先显示文件名

正则表达式

点号字符 . :特殊字符点号用来匹配除换行符之外的任意单个字符
星号字符 * :在字符后放置星号表明该字符必须在匹配模式中出现0次或多次
例子:ABC.*ABC可以匹配 ABCwefreaacABC
脱字符 ^ : 定义从数据流中文本行的行首开始的模式
美元字符 $ : 定义数据行必须以该文本模式结尾
例子:^Book与good$都可以匹配 Books are good
字符组 [ ] :方括号中包含所有你希望出现在该字符组中的字符
例子 :[ch]at可以匹配 cat和hat

 ^[0-9][0-9]$ 可以匹配12 23 34等
man

在这里插入图片描述

man 1 ls
分章节1查看ls命令的操作文档
man 2 socket
分章节2(系统调用)查看socket函数的手册

curl

curl是一个利用URL规则在命令行下工作的文件传输工具,一款很强大的http命令行工具

curl http://www.linux.com
测试一台服务器是否可以到达一个网站

ldd

使用ldd命令可以查看一个可执行程序依赖哪些库

nm

nm工具可以打印出库中的涉及到的所有符号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值