当前位置: 首页 > news >正文

linux:常用基本命令

----------------------------------------------------

vi下快速复制

1)单行复制
在命令模式下,将光标移动到将要复制的行处,按“yy”进行复制;
2)多行复制
在命令模式下,将光标移动到将要复制的首行处,按“nyy”复制n行;其中n为1、2、3……
2、粘贴
在命令模式下,将光标移动到将要粘贴的行处,按“p”进行粘贴

----------------------------------------------------

MV重命名文件夹


mv 源目录  ./新目录名 
mv    /usr/lib/*    /zone
是将 /usr/lib/下所有的东西移到/zone/中。
mv    /usr/lib/*.txt    /zone
是将lib下以txt结尾的所有文件移到/zone中。 其他类型,以此类推。

----------------------------------------------------

通过关键字查询日志文件:

tac catalina.out |grep 关键字  |more

----------------------------------------------------

解压和压缩:

 

----------------------------------------------------

创建软链接:

ln -s aa.t  link_test.txt    //-s代表软链接

注意是后边路径指向前边的路径!

vi一下显示的是aa.t的内容:

 

删除此软链接后,则源文件不会被删除。 

创建硬链接:

ln bb.t yinglianjie.tt

 

删除此硬链接后,则源文件不会被删除。 

----------------------------------------------------

mkdir创建多级目录:

mkdir -p  /usr/local/1111/222/3333

参数:-p 确保目录名称存在,如果目录不存在的就新创建一个。

----------------------------------------------------

head命令

head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

head -n 5 test1.log     显示文件前5行

head   test1.log     显示文件前10行

----------------------------------------------------

快读查找之前用过的命令

ctrl+r  然后输入 关键字,然后右箭头或回车

----------------------------------------------------

脚本传参

vim test1.sh

脚本内编写:
echo "hello $1 and $2"

 

赋予执行权限:chmod +x ./test1.sh

执行:./test1.sh a b

 

----------------------------------------------------

crontab 定时任务

查看所有定时器任务

crontab -l

添加定时器任务

crontab -e

基本格式 :

*  *  *  *  *  command
分  时  日  月   周    命令

// 每分钟执行一次

* * * * *

// 每隔一小时执行一次

00 * * * * * */1 * * * (/表示频率)

// 每小时的15和45分各执行一次

15,45 * * * * (,表示并列)

// 在每天上午 8- 11时中间每小时 15 ,45分各执行一次

15,45 8-11 * * * command (-表示范围)

// 每个星期一的上午8点到11点的第3和第15分钟执行

3,15 8-11 * * 1 command

// 每隔两天的上午8点到11点的第3和第15分钟执行

3,15 8-11 */2 * * command

----------------------------------------------------

cp命令:

拷贝目录:cp -r  目录1 目录2

----------------------------------------------------

机器间拷贝命令:

scp -r  apache-tomcat-7.0.65/  was@10.245.1.73:/was  如果不写后面的路径,默认制定到/home路径

scp -r ./elasticsearch-2.2.1/ sxt@node08:`pwd`        pwd代表一样的目录路径

----------------------------------------------------

移动命令:

实例一:文件改名
mv test.log test1.txt

实例二:将test1.txt文件移到目录test3中
mv test1.txt test3

将文件log1.txt,log2.txt,log3.txt移动到目录test3中。 

实例三:

mv log1.txt log2.txt log3.txt test3 命令将log1.txt ,log2.txt, log3.txt 三个文件移到 test3目录中去

mv -t /opt/soft/test/test4/ log1.txt log2.txt log3.txt 命令又将三个文件移动到test4目录中去
命令:
mv log1.txt log2.txt log3.txt test3
mv -t /opt/soft/test/test4/ log1.txt log2.txt  log3.txt 

实例四:将文件file1改名为file2,如果file2已经存在,则询问是否覆盖
mv -i log1.txt log2.txt

实例五:将文件file1改名为file2,即使file2存在,也是直接覆盖掉。
mv -f log3.txt log2.txt

----------------------------------------------------

退出命令:

ZQ 无条件退出 

:q! 无条件退出 

ZZ 存盘并退出 

:wq 存盘并退出

----------------------------------------------------

ps命令

如:ps -ef | grep java

(1)查看service服务使用哪个端口启动的

ps -ef | grep bo-server-service-beta.jar

然后:

netstat -nap | grep 13638

 

----------------------------------------------------

kill命令:

(1)杀死一个进程:

如:kill -9 8080

(2)如何同时kill掉多个进程

方法一:

比如有3个hive进程,我们要一次性杀死这3个,执行

ps -ef | grep hive | grep -v grep | cut -c 9-15 | xargs kill -9

 

ps -ef | grep hive | grep -v grep |awk '{print$2}' | xargs kill -9

 

未找到是因为没过滤grep的,没添加这句:grep -v grep

第一个命令讲解:ps -ef | grep hive | grep -v grep | cut -c 9-15 | xargs kill -9

管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。下面说说用管道符联接起来的 

几个命令: 

     “ ps - ef”是Red Hat 里查看所有进程的命令。这时检索出的进程将作为下一条命令“grep LOCAL=NO”的输入。 

    “grep LOCAL=NO”的输出结果是,所有含有关键字“LOCAL=NO”的进程,这是Oracle数据库中远程连接进程的共同特点。 

  “grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。 

  “cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。 

  “xargs kill -9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -9”命令的参数,并执行该令。 

         “kill -9”会强行杀掉指定进程,这样就成功清除了oracle的所有远程连接进程。其它类似的任务,只需要修改“grep hive”中的关键字hive就可以了。

第二个命令讲解;ps -ef | grep hive | grep -v grep |awk '{print$2}' | xargs kill -9

awk在文件或字符串中基于指定规则浏览和抽取信息;把文件逐行读入,以空格为默认分隔符将每行切片,然后再进行后序处理。这里利用awk '{print $2}'将上一步中过滤得到的进程进行打印,$2表示打印第二个域(PID,进程号) $0表示所有域,$1表示第一个域,$n表示第n个域。 

----------------------------------------------------

vim 中相关命令:

1.u 撤销 回退操作

(1) 如果你编辑错了或改错某个文件:先按左上角ESC,再按 u   撤销到上一步的操作,你这次编辑的东西全没了
(2) 基于(1)此时按Ctrl+r 恢复上一步被撤销的操作
(3)用“U”恢复行,如果你这个文件本次改了两行,那恢复你改动的最后一行

 

2.快速跳转

(1)快速跳转到第一行::0或:1或 gg(连续按两次键盘键g) 跳到文件第一行

(2)快速跳转到末尾行::$ 或shift+g   跳到文件最后一行

(3)w 快速跳到下一个单词的首字符

(4)e 快速跳到下一个单词的尾字符

(5) shift + 6  快速移动光标至行首(不可小键盘)

(6)shift + 4 快速移动光标至行尾

(7)

(8)

(9)

 

3.快速翻页

(1)向前滚动一页:Ctrl+b

(2)向后滚动一页:Ctrl+f

(3)向前滚动半页 :Ctrl+u

(4)向后滚动半页:Ctrl+d

4.查找命令
/word搜索词   这个是查找文件中“word”这个单词,是从文件上面到下面查找 如 /hello
?word搜索词   这个是查找文件中“word”这个单词,是从文件下上面到面查找

查找下一个:小n向后查找,大N向前查找

5.vim查看模式下的花式删除

x-删除光标所在字符

dd-删除光标所在行

先输入 2 再按dd 则删除两行

长按d 则一直删除,一次删一行

dw 一次删一个单词

其他快捷命令:

yy 复制一行

先输入3再按 yy 则复制3行

p粘贴

先按2 再按p 则粘贴了两次。

ZZ 保存文件内容

O在光标上一行进行插入

o 在光标下一行进行插入

----------------------------------------------------

tail命令:

1.实时监控文件,

(1)比如tomct日志文件:tail -f logs/catalina.out

(2) 打印出之前10行:tail -10f logs/catalina.out

 

----------------------------------------------------

find 查找文件命令:

(1)find 搜索目录  -name 目标名字
如:find /opt  -name zoo.cfg

 

(2)查找名字符合正则表达式的文件,注意前面的‘.*’(查找到的文件带有目录)

find ./ -regex .*so.*\.gz

如下 so 通过过滤 过滤到 /opt/softwares目录下,这个可以自己指定。

 

(3) 模糊查找

如:find  / -name read\*     //最后那个斜杠为转义字符

 

 

find /opt -name  *.log

 

可以用-iname不区分大小写

 

查找权限为777的文件或目录(需完全符合)
find /opt  -perm 777

 

查找文件size大于10M的文件或目录
find /opt  -size +100M

 

查找文件size小于10个字节的文件或目录
find /opt -size -10c

查找文件size等于4个字节的文件或目录
find ./ -size 4c

 

 

 

(3)find命令是可以多个选项一起添加查询的

-a 是前后条件都要满足

-o 是满足一个条件就好

例如刚刚的文件查找,60分钟内被修改的文件,并且文件名字包含conf的,我们可以这样写

find /etc -cmin -60 -a -name *conf

这样我们可以清除的看到被过滤掉的文件

 

----------------------------------------------------

rm 删除命令:

删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。

-f, --force    忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除
-r, -R, --recursive   指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose    详细显示进行的步骤

例子:

rm 文件名       删除文件file,系统会先询问是否删除。

rm -f log1.log  强行删除file,系统不再提示。

rm -i *.log      删除任何.log文件,删除前逐一询问确认。

rm -r test1  或 rm -rf test1   将 test1子目录及子目录中所有档案删除。

 

----------------------------------------------------

touch命令:

linux下touch有两个作用。

touch命令主要是用于新建一个不存在的文件或者是对于文件的时间戳进行修改;

(1)touch -c change1.txt  然后ll 未找到此文件  如下图(忽略打码处)

 

(2)使用touch指令对于文件的时间戳进行修改;

touch -a aaaa.tt对于文件的存取时间进行修改;

 

touch -d 是使用自己已知的时间去修改文件的时间;

touch -d 2015-12-1 9:00:01 aaaa.tt

 

 

----------------------------------------------------

echo命令:

1.输入一行文本并显示在标准输出上 

 

2.输出一个声明的变量值

 

3.echo可以使用重定向符来输出到一个文件而不是标准输出

echo "Test Page" > testpage

 

 

4.

覆盖型写法 (文件里原来的内容被覆盖)
echo "aaa" > a.txt
echo aaa > a.txt

添加型写法 (新内容添加在原来内容的后面)

echo "aaa" >> a.txt
echo aaa >> a.txt

----------------------------------------------------

cat 命令:

cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的;

cat主要有三大功能:
1.一次显示整个文件。
$ cat   filename


2.从键盘创建一个文件。
$ cat  >  filename
只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件。
$cat   file1   file2  > file

 

cat具体命令格式为 : cat [-AbeEnstTuv] [--help] [--version] fileName
说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到另一个档案)
参数:
-n 或 –number 由 1 开始对所有输出的行数编号
-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 –show-nonprinting
范例:
cat -n linuxfile1 > linuxfile2 把 linuxfile1 的档案内容加上行号后输入 linuxfile2 这个档案里

 


cat -b linuxfile1 linuxfile2 >> linuxfile3 把 linuxfile1 和 linuxfile2 的档案内容加上行号(空白行不加)之后将内容附加到linuxfile3 里。

简单描述一下几种常见的使用方式及其作用:
1、cat<<EOF,以EOF输入字符为标准输入结束:EOF只是标识,不是固定的,可以用其他字母代替。


2、cat>filename,创建文件,并把标准输入输出到filename文件中,以ctrl+d作为输入结束:
注意:输入时是没有'>'的。


3、cat>filename<<EOF,以EOF作为输入结束,和ctrl+d的作用一样:

 

---------------------------------------------------- 

nohup命令:

nohup java -jar gporder-onestop-rpc-service-1.0.0.jar >gporder-onestop-rpc-service-1.0.0.log &

将gporder-onestop-rpc-service-1.0.0.jar包启动运行后,日志输出到gporder-onestop-rpc-service-1.0.0.log,同时&符号代表后台启动。

如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。

该命令的一般形式为:nohup command &

使用nohup命令提交作业

如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:

nohup command > myout.file 2>&1 &

在上面的例子中,输出被重定向到myout.file文件中。

使用 jobs 查看任务。

使用 fg %n 关闭。

----------------------------------------------------

wc命令

wc [-clw][--help][--version][文件...]
[root@pf-bdata1 tag]# wc TestHive.scala BusinyTrend.scala
 125  265 3579 TestHive.scala    //# TestHive文件的行数为125、单词数256、字节数3579 
 132  364 5486 BusiyTrend.scala
 257  629 9065 total            //总量
[root@pf-bdata1 tag]# 

 

 

相关文章:

  • Spark:数据倾斜处理一般从什么地方入手
  • MapReduce:中map和reduce的数量设置问题
  • MapReduce: 计数器(Counter)
  • Hive:HiveQL中如何排查数据倾斜问题
  • Java:字符序列:String,StringBuilder,StringBuffer三者的区别
  • Hive:分区和分桶
  • sql:Oracle:驱动表是什么?
  • MapReduce:原理之Word Count 以及Java实现
  • Hive:数据倾斜调优/解决方案总结
  • Spark:对数据倾斜的八种处理方法
  • Spark:spark集群中什么是cpu-core 内核?RDD分区个数?集群的节点个数?及三者与并行度的关系
  • Spark:通过sample算子找出导致数据倾斜的key
  • MapReduce:用通俗易懂的大白话讲解MapReduce原理
  • Spark:任务中如何确定spark分区数、task数目、core个数、worker节点个数、excutor数量
  • JVM :内存初学 (堆(heap)、栈(stack)和方法区(method) ) perfect
  • HTTP那些事
  • js数组之filter
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • React Native移动开发实战-3-实现页面间的数据传递
  • ReactNative开发常用的三方模块
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 力扣(LeetCode)965
  • 深入浅出Node.js
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 责任链模式的两种实现
  • 《码出高效》学习笔记与书中错误记录
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • #pragma multi_compile #pragma shader_feature
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (13)Hive调优——动态分区导致的小文件问题
  • (52)只出现一次的数字III
  • (pojstep1.1.2)2654(直叙式模拟)
  • (笔试题)分解质因式
  • (二)WCF的Binding模型
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (力扣题库)跳跃游戏II(c++)
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .Net 中Partitioner static与dynamic的性能对比
  • .net6+aspose.words导出word并转pdf
  • .Net6使用WebSocket与前端进行通信
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [20140403]查询是否产生日志
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [BT]小迪安全2023学习笔记(第15天:PHP开发-登录验证)
  • [BZOJ1060][ZJOI2007]时态同步 树形dp
  • [C# WPF] DataGrid选中行或选中单元格的背景和字体颜色修改
  • [Codeforces] probabilities (R1600) Part.1
  • [emacs] CUA的矩形块操作很给力啊