linux-常用命令
最近,常在windows上使用用SecureCRT链接Linux管理java项目,好久不操作了,简单命令也记不起来了。因此,开通了博客园,开始记录自己的点滴
1.想要知道连接的linux版本
- cat /proc/version
- cat /etc/issue
- lsb_release -a
2.cd,改变目录(pwd,显示当前目录)
- cd /:进入根目录(cd /)
- cd ..:回到上级目录(cd ..)
- pwd:显示当前所在的目录(pwd)
3.ls,列出文件名
4.touch 文件名,创建文件
5.less 文件名,从文件头开始分页查看文件内容,支持上下键,很神奇
之后通过 /A00021003011504210004 查找关键字
使用 ctrl + F(前进一页),ctrl + B(后退一页),g(移动到开始),G(移动到最后),n(下一个),N(上一个)
6.q,退出打开的文件,与less配合使用
7.cat,显示全部文件内容
8.tail,显示文件尾部内容
常用参数
-f,自动刷新读取
-n<行数>,读取<行数>行
例如:tail -n 5 log2014.log,读取最后5行
tail -n +5 log2014.log,从第5行开始读取
9.文件夹
- mkdir 文件夹名,创建文件夹
- cp -rf 源目录 目标目录,目录复制
- mv 源目录/文件 目标目录,剪切目录/文件
- mv 源目录 目标目录,目录重命名
- rm -rf /home/hadoop/*,删除hadoop下所有子目录和文件
- rm -rf /home/hadoop,删除hadoop及子目录、文件
- rmdir删除空目录
10.文件
- touch 文件名,新建文件
- vi 文件名,打开或新建文件,并将光标置于第一行首
- vi +n 文件名 ,打开文件,并将光标置于第n行首
- vi + 文件名,打开文件,并将光标置于最后一行首
- vi +/pattern 文件名,打开文件,并将光标置于第一个与pattern匹配的串处
- vi -r 文件名,在上次正用vi编辑时发生系统崩溃,恢复“文件名”
- vi之后使用键入 i, a, o 等命令,可进入插入模式
i 在光标之前插入
a 在光标之后插入
I 在光标所在行的行首插入
A 在光标所在行的行末插入
o 在光标所在的行的上面插入一行
O 在光标所在的行的下面插入一行
r 替换当前字符
R 替换当前字符及其后的字符,直至按ESC键
s 删除光标后的一个字符,然后进入插入模式
S 删除光标所在的行,然后进入插入模式
x 删除一个字符
dd 删除光标当前行
ndd 删除n行
yy 复制当前行
nyy 复制n行
p,P 粘贴
u 撤消
[Ctrl]+r 重做上一个动作
- 编辑之后,"Esc"键,使用以下命令保存/退出
:w 保存文件但不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
:q 不保存文件,退出vi
:q!不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑
- echo 字符串 >> 文件,附加输出文字
- echo -n 字符串 >> 文件,附件输出文字后不换行
- echo -e 字符串 >> 文件,附加输出文字,对字符串使用转义
- rm 删除文件
- mv 源文件 目标文件,文件重命名/移动文件
注:echo 字符串 > 文件,覆盖输出哦
11.rz,上传文件, 选择要传送的文件
12.sz 文件名,下载文件, 指定文件名,enter敲,即下载到个人目录download目录下
13.jps,显示java进程
14.nohup java -jar /home/cargo/ctas/mf-ffm-receiver/ffm-receiver.jar >/dev/null 2>&1 &,执行可执行jar包并不输出
注:linux有三种重定向:
0
:表示标准输入1
:标准输出,在一般使用时,默认的是标准输出 2
:标准错误信息输出“>/dev/null 2>&1”,把标准输出重定向到/dev/null,错误输出重定向到标准输出,最终就是什么也不输出
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
这几个参数是根据需要在压缩或解压档案时可选的
- su 不加任何参数, 切换为root用户,但没有改变root登录环境
- su - ,表示默认切换到root用户,并且改变到root用户的环境
- su - 用户名,表示默认切换到用户名,并且改变到用户名的环境
- cargo ALL=/bin/more,也就是cargo用户可以执行:sudo more命令了
- cargo ALL=(ALL) ALL,cargo用户可以执行所有命令
l 长格式输出;
u 按用户名和启动时间的顺序来显示进程;
j 用任务格式来显示进程;
f 用树形格式来显示进程;
a 显示所有用户的所有进程(包括其它用户);
x 显示无控制终端的进程;
r 显示运行中的进程;
ww 避免详细参数被截断
-e 显示所有进程,环境变量
-f 用树形格式来显示进程
USER: 进程所有者
PID: 进程ID
%CPU: 占用的 CPU 使用率
%MEM: 占用的内存使用率
VSZ: 占用的虚拟内存大小
RSS: 占用的内存大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 进程状态:
START: 启动进程的时间;
TIME: 进程消耗CPU的时间;
COMMAND:命令的名称和参数;
命令格式:chmod [who]operator[permission] filename
u 文件属主权限
g 属组用户权限
o 其他用户权限
a 所有用户(文件属主、属组用户及其他用户)
operator包含的选项及其含义:
+ 增加权限
- 取消权限
= 设定权限
permission包含的选项及其含义:
r 读权限
w 写权限
x 执行权限
s 文件属主和组set-ID
t 粘性位*
l 给文件加锁,使其他用户无法访问
u,g,o 针对文件属主、属组用户及其他用户的操作
25.查看空间大小
- df,以磁盘挂载点形式显示使用情况
- du,查看文件/目录的占用空间
- /etc/group,格式如下:
组名:口令:GID:用户列表
- /etc/passwd,格式如下:用户名:口令:UID:GID:注解:用户主目录:登陆后自动执行命令
- /etc/shadow,格式如下:用户名:口令:上一次修改的时间(从1970.1.1的天数):口令在两次修改间的最小天数:口令修改之前向用户发出警告的天数:口令终止后账号被禁用的天数:从1970.1.1起账号被禁用的天数:保留域
常用参数
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令
例如:netstat –apn|grep 8080,查看8080端口占用情况
29. cut,对每行进行分割截取
cut -c 1-500,每行截取1-500字符
30. awk,对每行进行分割
基本语法为:awk [-F] "field-operator" 'comand' inputfiles,-F和field-operator一起使用,field-operator是域分隔符,如果不使用-F选项,则默认的域分隔符为空格。后面command命令一般需要用一堆“{}”括起来,然后进行必要的操作,
command栗子:command命令'{if($1~/^A/) print $1}'
翻译一下这个命令就是,如果第一列($1)里面有匹配(~)正则表达式(/^A/)的话,那么就输出(print)到标准输出。需要注意的是,条件必须要用一堆"()"括起来,正则表达式需要用“//”括起来。当然,完全可以不要条件匹配,可以直接输出指定列,如'{print $1}'
31. top,实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
一行一行的看,top - 后面是系统时间,up后面是系统运行时间,用户,load average后面分别是过去1分钟 5分钟 15分钟系统平均负载
下面一行,total 进程总数, running 正在运行的进程数, sleeping 睡眠的进程数, stopped 停止的进程数, zombie 僵尸进程数
下面一行,如果多个cpu会有多行,分别是 us 用户空间占用CPU百分比, sy 内核空间占用CPU百分比, ni 用户进程空间内改变过优先级的进程占用CPU百分比, id 空闲CPU百分比, wa 等待输入输出的CPU时间百分比,hi硬件CPU中断占用百分比,si:软中断占用百分比,st:虚拟机占用百分比
下面一行KiB Mem是内存,物理内存总大小,空闲,使用,内核缓存
下面一行KiB Swap是交换区,总大小,空闲,使用,数据已在内存中的交换区大小
再下面就是进程明细了,- PID进程id,
- USER 进程所有者的用户名,
- PR 优先级,
- NI nice值 负值表示高优先级 正值表示低优先级,
- VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
- SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
- RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
- SHR 共享内存大小,单位kb
- S 进程状态,S 表示睡眠,D 表示不可中断睡眠,R 表示运行
- %CPU 上次更新到现在的CPU时间占用百分比
- %MEM 进程使用的物理内存百分比
- TIME+ 进程使用的CPU时间总计,单位1/100秒
- COMMAND 命令名/命令行
- CODE 可执行代码占用的物理内存大小,单位kb
- DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
目前用到这些,以后再补充