一、查找文件 find / -name filename.txt 根据名称查找/目录下的filename.txt文件。
-
find . -name "*.xml"
递归查找所有的xml文件 -
find . -name "*.xml" |xargs grep "hello world"
递归查找所有文件内容中包含hello world的xml文件 -
grep -v "String" filename
文件中不匹配“String”的行; -
grep "String" filename
文件中匹配“String”的行 -
grep -H 'spring' *.xml
查找所有的包含spring的xml文件 -
find ./ -size 0 | xargs rm -f &
删除文件大小为零的文件 -
ls -l | grep '.jar'
查找当前目录中的所有jar文件 -
grep 'test' d*
显示所有以d开头的文件中包含test的行。 -
grep 'test' aa bb cc
显示在aa,bb,cc文件中匹配test的行。 -
grep '[a-z]\{5\}' aa
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。 - grep [option] [pattern] [file1,file2]
grep content show.txt
查找show.txt里面包含content的行 - command | grep [option] [pattern]
ps -ef | grep mongo
查看某个服务信息
cat show.txt | grep content
查找show.txt里面包含content的行
二、查看一个程序是否运行
-
ps -ef
显示当前所有进程 -
ps –ef|grep tomcat
查看所有有关 tomcat 的进程 -
ps aux|grep java
查看 java 进程 -
ps aux
查看所有进程
三、启动/终止线程
-
./startup.sh
启动进程 -
kill -9 19979
终止线程号为19979的线程
四、查看文件,包含隐藏文件
ls -al
和 ls -la
显示当前目录下所有文件的详细信息
五、查看当前工作目录
pwd
六、复制文件
-
cp source dest
复制文件
命令:cp
源文件:source
目标文件:dest
描述:复制源文件(source)为目标文件(dest) -
cp -r sourceFolder targetFolder
命令:cp -r
源文件:sourceFolder
目标位置:targetFolder
递归复制整个文件夹(sourceFolder文件包括其子文件 )到指定目录(targetFolder) -
scp sourecFile romoteUserName@remoteIp:remoteAddr
远程拷贝
远程传输文件 scp。先保证服务器间,ssh间能互相跳转。
命令格式:scp -r
源目录 用户名@ip:目标目录
-r参数的作用是递归复制源目录,及复制目录下的子目录和文件
scp -r ~/app hadoop@hadoop001:~/
scp -r ~/app hadoop@hadoop002:~/
分发环境变量
scp ~/.bash_profile hadoop@hadoop001:~/
scp ~/.bash_profile hadoop@hadoop002:~/
七、创建目录
mkdir newfolder
命令:mkdir
创建目标:newfolder
描述:在当前目录下创建newfolder目录
八、创建空文件
touch demo.txt
命令:touch
创建目标:demo.txt
描述:在当前目录下创建文件demo.txt
九、删除目录
rmdir deleteEmptyFolder
删除空目录
命令:rmdir
删除目标:deleteEmptyFolder
描述:该命令只能删除空目录
十、删除文件包括其子文件
-r递归删除,-f强制删除。危险操作,务必小心,切记!
-
rm -rf deleteFile
命令:rm -rf
删除目标:deleteFile -
rm -rf deleteFile*
命令:rm -rf
删除目标:以'deleteFile'开始的所有文件
十一、移动文件
mv /temp/movefile /targetFolder
命令:mv
源文件:/temp/movefile
目标位置:/targetFolder
十二、重命名
mv oldNameFile newNameFile
命令:mv
原名字:oldNameFile
新名字:newNameFile
十三、查看文件头10行/查看文件尾10行
1️⃣头:head -n 10 demo.txt
和head -10 demo.txt
2️⃣尾:tail -n 10 demo.txt
和tail -10 demo.txt
3️⃣tail -f demo.log
命令:tail -f
查看文件:demo.log
描述:这个命令会自动显示新增内容,屏幕只显示10行内容(可设置)。可以实时查看文件的最后内容,一般用来实时查看日志
十四、分页查看文件内容
more demo.txt
命令:more
查看文件:demo.txt
描述:分页查看demo.txt的内容
Enter(向下翻滚一行)
空格(向下滚动一屏)
Q(退出命令)
B(向上滚动一屏)
十五、查看文件内容
cat demo.txt
命令:cat
查看文件:demo.txt
描述:查看 demo.txt 的内容
十六、启动vim编辑器
- vim三种模式:命令模式,插入模式,编辑模式。使用
ESC 或 i 或 :
来切换。 - 命令模式下:
:q
退出;
:q!
强制退出;
:wq
保存退出;
:set number
显示行号
n
跳到下一关键词 - 编辑desc.txt文件
vim desc.txt
1️⃣cat和vi/vim和nano区别
cat
是 linux 系统下一个文本打印的命令,用于输出一个文本的信息到控制台上。该命令的输入类似于使用 word 打开一个文档,但是该文档不能编辑。vi/vim
是 linux 系统下用于文本查看、编辑的命令,不仅仅可以查看,还可以编辑。nano
类似于vim
命令的功能,命令语句为:nano p
(打开p文件)
2️⃣vi和vim区别
- vi 不需要安装,打开代码,颜色一样(黑色)
- vim 需要额外安装,打开代码,用颜色区分代码
十七、uniq
对内容去重,只把相邻且相同的去重,如果想要全局去重,需要先用sort排序
cat fileName | sort | uniq
文件排序并去重
cat file | sort | uniq -c
文件排序并去重,且输出每行出现的次数
十八、sort
cat fileName | sort
对内容进行排序,数据按字典序排列,如果想按数值排,加-n选项
十九、wc
wc -l fileName
文件里有多少行
wc -w fileName
文件有多少个单词
wc -c fileName
文件有多少个字节
wc -m fileName
文件有多少个字符
cat fileName | wc -l
可以和管道符结合使用
二十、网络
ping www.baidu.com
查看网络是否连通
ping www.baidu.com -p 80
查看端口是否开启
wget 文件地址
下载文件
二十一、netstat -ano 是查看端口是否被占用
- cmd:先用命令提示符 "netstat -ano" 命令显示所有端口状态,找到目标端口对应的PID;
- 然后根据该 PID ,输入 “tasklist”命令程序,就可知道其程序名,进而查明程序的来源,采取适当的措施。
二十二、查看端口属于哪个程序
lsof -i :8080
二十三、显示系统当前进程信息/查看内存的使用情况该用什么命令
free 或者 top
free命令可以看到内存以及缓存的使用情况,如下:
total 总内存
used 已用内存
free 空闲内存
buff/cache 已使用的缓存
avaiable 可用内存
已使用的缓存(buff/cache)的命令:sync; echo 3 > /proc/sys/vm/drop_caches
线上执行这条命令不好!!!
二十四、以树状图列出目录的内容
tree a ps: Mac下使用tree命令
二十五、文件下载
wget http://file.tgz mac下安装wget命令 curl http://file.tgz
二十六、网络检测
ping www.just-ping.com
二十七、远程登录
ssh userName@ip
二十八、打印信息
echo $JAVA_HOME
打印 java home 环境变量的值
二十九、关机或重启
- shutdown -h now
立刻关机 - shutdown -r -t 60
60秒后重启
三十、创建链接文件
ln -s /opt/test ./link2test
创建目录/opt/test的符号链接
三十一、查看目录使用情况
du -h /opt/test
查看/opt/test目录的磁盘使用情况
三十二、查看磁盘空间使用情况
df -h
查看磁盘空间使用情况
三十三、改变文件或目录的拥有者和组
- chown nginx:nginx desc.txt
变更文件desc.txt的拥有者为nginx,用户组为nginx - chown -R nginx:nginx test
变更test及目录下所有文件的拥有者为nginx,用户组为nginx
三十四、改变文件或目录的访问权限
权限范围:u(拥有者)、g(郡组)、o(其它用户)。
权限代号:r(读权限/4)、w(写权限/2)、x(执行权限/1)
- chmod u+x test.sh
给文件拥有者增加 test.sh 的执行权限 - chmod u+x -R test
给文件拥有者增加test目录及其下所有文件的执行权限
三十五、服务启停
setsid java -jar java-service.jar
-----➕setsid 后台进程
docker start/stop/restart tomcat
docker start/stop/restart zookeeper
docker start/stop/restart redis
docker start/stop/restart rabbitmq
docker start/stop/restart mysql
三十六、使用超级管理员身份执行命令
sudo rm a.txt 使用管理员身份删除文件
1️⃣sudo 表示 superuser do
。 它允许已验证的用户以其他用户的身份来运行命令。其他用户可以是普通用户或者超级用户。大部分时候用它来以提升的权限来运行命令。
2️⃣在 linux 中通过 su 可以在用户之间切换。超级权限用户 root 向普通或虚拟用户切换不需要密码,而普通用户切换到其它任何用户都需要密码验证。su 为switch user
,即切换用户的简写。格式为两种:
-
su -l USERNAME
(-l 为 login,即登录的简写) su USERNAME
如果不指定 USERNAME(用户名),默认为 root,所以切换到 root 身份的命令即为:su -root 或 su root 或 su - 或 su
。
3️⃣su USERNAME
,与su - USERNAME
的区别
-
su -USERNAME
切换用户后,同时切换到新用户的工作环境中。 -
su USERNAME
切换用户后,不改变原用户的工作目录,及其他环境变量目录。
三十七、帮助命令
-
man ls
查看 ls 命令的帮助文档 -
man java
查看 java 命令的帮助文档 -
man git
查看 git 命令的帮助文档
三十八、在列出文件的同时查看文件的大小
ls -lh
如果某个文件的大小大于或者接近于 1G,那么就会以 GB 为单位显示。如果文件接近 Mb,则会按照 Mb 为单位显示,以此类推。
三十九、java 常用命令
java javac jps , jstat , jmap , jstack
四十、jps
jps(Java Virtual Machine Process Status Tool)是 java 提供的一个显示当前所有 java 进程 pid 的命令,适合在 linux/unix 平台上简单查看当前 java 进程的一些简单情况。
使用 jps 要先安装 jdk(jps 是 jdk 自带的命令)。jps 类似 linux 的 ps 命令,不同的是 ps 是用来显示进程,而 jps 只显示 java 进程,准确的说是当前用户已启动的部分 java 进程信息,信息包括进程号和简短的进程 command。
提示:曾经遇到一个这样的问题:一个 nagios 插件用 jps 监控 java 进程。结果得不到 java 进程信息。这是由于 jps 只能显示当前用户的 java 进程,而执行插件的用户是 nagios,所以显示不了其他用户的 java 进程。
jps 的作用是显示当前系统的 java 进程情况及其 pid 号。可以通过它来查看到底启动了哪些 java 进程(因为每一个 java 程序都会独占一个 java 虚拟机实例)以及进程 PID。并可通过 opt 来查看这些进程的详细启动参数。
命令格式:jps [options] [hostid]
[options]选项 :
- -q:仅输出 VM 标识符,不包括classname、jar name、arguments in main method
- -m:输出 main method 的参数。
- -l:输出完全的包名,应用主类名,jar的完全路径名。
- -v:输出 jvm 参数。
- -V:输出通过 flag 文件传递到 JVM 中的参数(.hotspotrc文件或-XX:Flags=所指定的文件)。
- -J:传递参数到 vm。例如:-J-Xms512m