Linux 常用的命令
一、主要描述一下工作中常用的Linux命令
- cd 、ls、dir 这个不用说,pwd查看目录路径
??????????? ls -al 查看当前所有的文件包含隐藏文件以及子目录;ls -F? 例如可执行文件加"*", 目录则加 "/"
?
?????? 2.复制文件和删除文件 cp -r 源文件路径 目的文件路径 ,rm -r 源文件路径 目标文件路径
????????????? mkdir 生成目录,touch 文件名字;
???????????? rm -rf 目标文件或文件夹 强制删除文件没有提示,如果要有提示可以不带f
????????????? 本地复制到远程服务器上:scp -pr 本地文件路径 服务器名称:/存放目录
?????????????? mv 源 目的?? 是移动文件或者重新命名
?
???????????? 创建软连接相当于windows的快捷方式:ln -s 要连接文件的总路径 定义快捷方式文件名称
???????????? diff命令主要比较两个文件的差异:diff 文件1 文件2???? -i:表示忽略字母大小写;-w忽略整个文本的空格
?
?
?????? 3.??? 史上最强大的命令,查看自己历史的命令:history、命令怎么使用 man? 命令
?
?????? 4.?? 解压文件
????????????? 文件形式是tar.gz格式: tar -zcvf 文件名 压缩的目标路径;tar -zxvf 文件名 -c 解压指定目录
????????????? -c 创建一个新的档案文件;????????? -t 查看档案文件的内容
????????????? -x 分解档案文件的内容; ???????? -f 指定档案文件的名称
????????????? -v 显示过程信息??????????????????? -z 采用压缩方式
?
????????????? tar.BZz tar -jxvf其余同上
?
??????? 5、增加环境变量
?????????????? 如:增加Python环境变量 export PYTHONPATH=指定的路径名称:$PYTHONPATH
??????????????? 打印:echo命令
?
??????? 6、远程操作服务器
?????????????? kinit? 用户名,ssh? 服务器名称
?
?
??????? 7、查找功能
?????????????? 查找文件 find? 查找目录路径 -name? 文件名称(可以接受文件名称和目录名称以及模糊匹配)
?????????????? 载一个文件中查找 文字:grep "文字" 查找的文件
?
????????????? find . -size +500000c -and -mtime +1 查找当前目录下大于50000字节且是24小时内修改的文件
?
????????? 8、查看进程
?????????????? ps aux|grep nginx??
???????? 9、电脑关机
????????? shutdown -r now 立即重启? shutdown -h 立即关机
?
??????? 10、杀死进程
??????????? kill -9 proccess_id 强制杀死某个进程
?
?
??????? 11、绑定host
?????????????? /etc/hosts
??????? 12、cat命令
????????????? 查看多个文件或者将多个文件合并到一个文件里面如:cat file1 file2>file3
?
??????? 13、rsync -ztrlCv --delete --exclude=WEB-INF 源 目标?? 同样删除接收端那些被该选项指定排除的文件
???????????????? rsync -ztrlv? 源 目标
????????? 14、nignx??
????????????????????????? /opt/nginx/sbin/nginx -s reload? 重新加载? /opt/nginx/sbin/nginx -t更新
?
???????? 15、free -b -k -m(字节、KB、MB 单位显示内存的使用率)-s n 多少秒更新一个
?
?
二、vi的使用
?
vi +n 文件 表示光标进入打开的文件的第n行
?
指令模式下的快捷方式:
1、ctrl+f 向文件尾翻一页? ctrl+b 向文件首翻一页
2、G 光标至文件尾部,gg 文件首部
3、0至行首,$至行尾
?
Esc +i 进入输入模式,Esc 进入指令模式
?
进入指令模式后,:wq位保存,:q退出,q!强行退出
?
搜索文件:?? 模式匹配字符,搜索下一个匹配使用n,上一个匹配使用N
? 命令也是模式搜索命令与/ 的区别在于/ 是从光标当前所在位置向文件尾部搜索而? 命令则是由光标当前所在位置向文件头部搜索
?
恢复和撤销模式:u是撤销操作;ctrl+r 恢复操作,:set number编辑器设置行号
?
进入插入模式:
在当前光标的后一个字符位置插入:a在当前行的下一行插入:o在当前行的上一行插入:O复制、粘贴、删除:
复制:yy? 加数字表示复制当前行至下面的行的数字如:yy 6表示复制当前行和下面的五行;p是粘帖复制从当前位置到行尾:y$
所有的粘贴都是:p
?
光标的移动:
?????????? ?? h 光标左移 如果在按h 命令前输入数字n 则光标左移n 个字符
?????????? ?? l不是大写的i 光标右移 如果在按l 命令前输入数字n 则光标右移n 个字符
???????? ? ?? j 光标上移 如果在按j 命令前输入数字n 则光标上移n 个字符
????????????? k 光标下移 如果在按k 命令前输入数字n 则光标xia 移n 个字符
????????????? gg文件的首行,G文件的末行
?
文件的替换:
:s/text1/text2 用于将光标所在段落搜索到的第一个 text1 替换为text2
:s/text1/text2/g 用于将光标所在段落的所有 text1 替换为text2
:m,ns/text1/text2/g 用于将从 m行开始至n 行结束的所有搜索到的text1替换为text2 其中可以使用$表示末行即1,$ 表示替换文档中的所有符合条件的字符
?
三、crontab使用
?
crontab -l? 显示服务器有多少后台定时程序
如:
f1 f2 f3 f4 f5 ?? 命令
第一个表示代表分钟?? 0—59
第二个代表小时 ? ? ? ? ? 0—23
第三个代表日期?????????? 1—31
第四个代表月份?????????? 1—12
第五个代表星期几 ? ? ? 0代表星期日 0—6
?
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推
?
举个实例:在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup?
?
?
我以发送邮件位实例:
?
30 13 * * * /bin/sh /data/xce/QAP/root/qm.rep/pydo/plotFile/mail.sh >> /data/xce/QAP/root/qm.rep/pydo/plotFile/mail.log 2>&1
表示的是: 下午一点半 执行shell脚本? 脚本的路径在/data/xce/QAP/root/qm.rep/pydo/plotFile/mail.sh,并且改脚本的里面的打印信息,记录在mail.log中
?
crontab -e 是编辑后台定时任务,
?
四、好玩的命令
?
1、查看内存和磁盘到cpu的传输速度的命令:/sbin/hdparm? /dev/sda
?
top、uptime查看系统平均负载;
?
五、开发中需要用到的命令
?
1、svn up 更新当前文件
?
2、查看多个文件 tail -f? 路径/*.log
???????? head和tail 在监控日志文件时可以在屏幕上一直显示新增的日志信息,加上-n 数字 表示要显示多少行
???? 如:tail -n 20 example.txt 显示文件 example.txt 的后二十行内容
?
3、连续执行多条命令需要加&&就可以
?
4、搜索当前目录(递归)下某个文件的某个字符串:grep "text" . -R -n,可以只包含或者排除某些文件如:
???? grep "text" .? -R -n --include(exclude) *.{c,cpp}
5、vi?.k5login 编辑用户权限
6、lsof -p 16053 / ps -aux | grep ** 查看某个进程占有的资源
?
?
?
六、开发中Linux设置
?
1、设置JDK 在/etc/profile文件中设置如下:export LANG=en_US.utf8
????????????????????????????????????????????????????????????????????????????? export JAVA_HOME="/opt/j2sdk"
????????????????????????????????????????????????????????????????????????????? export PATH=$PATH:$JAVA_HOME/bin
?
?
?
?