导读
本文并不会对所有命令进行详细讲解,只给出常见用法和解释。具体用法可以使用--help查看帮助或者直接通过google搜索学习。
常用命令
1、查找文件
find / -name filename.txt 根据名称查找/目录下的filename.txt文件。
find . -name "*.xml" 递归查找所有的xml文件
find . -name "*.xml" |xargs grep "hello world" 递归查找所有文件内容中包含hello world的xml文件
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个连续小写字符的字符串的行。
2、查看一个程序是否运行
ps -ef|grep tomcat 查看所有有关tomcat的进程
3、终止线程
kill -9 19979 终止线程号位19979的进程
4、查看文件,包含隐藏文件
ls -al
5、当前工作目录
pwd
6、复制文件
cp source dest 复制文件
cp -r sourceFolder targetFolder 递归复制整个文件夹
scp sourecFile romoteUserName@remoteIp:remoteAddr 远程拷贝
7、创建目录
mkdir newfolder
8、删除目录
rmdir deleteEmptyFolder 删除空目录
rm -rf deleteFile 递归删除目录中所有内容
9、移动文件
mv /temp/movefile /targetFolder
10、重命名
mv oldNameFile newNameFile
11、切换用户
su -username
12、修改文件权限
chmod 777 file.java file.java 的权限-rwxrwxrwx,r表示读、w表示写、x表示可执行
13、压缩文件
tar -czf test.tar.gz /test1 /test2
14、列出压缩文件列表
tar -tzf test.tar.gz
15、解压文件
tar -xvzf test.tar.gz
16、查看文件头10行
head -n 10 example.txt
17、查看文件尾10行
tail -n 10 example.txt
18、查看日志类型文件
tail -f exmaple.log 这个命令会自动显示新增内容,屏幕只显示10行内容的(可设置)。
19、使用超级管理员身份执行命令
sudo rm a.txt 使用管理员身份删除文件
20、查看端口占用情况
netstat -tln | grep 8080 查看端口8080的使用情况
21、查看端口属于哪个程序
lsof -i :8080
22、查看进程
ps aux|grep java 查看java进程
ps aux 查看所有进程
23、以树状图列出目录的内容
tree a
24、文件下载
wget http://file.tgz
curl http://file.tgz
25、网络检测
ping www.just-ping.com
26、远程登录
ssh userName@ip
27、打印信息
echo $JAVA_HOME 打印java home环境变量的值
面试题
28、取出文件aaa.txt的第4到7行
[root@localhost ~]# cat aaa.txt
1.aaa
2.bbbbbbb
3.ccccccccccccc
4.dddddddddddddddddddddd
5.eeeeeeeeeeeeeeeeee
6.ffffffffffffffffffffffffffffffffff
7.gggggggggggggggggggggg
8.hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
9.iiiiiiiiiiiiiiiiiiii
10.jjjjjjjjjjjjjjjjjjjjjjjjjj
11.kkk
12.llllllllll
[root@localhost ~]# sed -n '4,7p' aaa.txt
4.dddddddddddddddddddddd
5.eeeeeeeeeeeeeeeeee
6.ffffffffffffffffffffffffffffffffff
7.gggggggggggggggggggggg
29、找出当前目录下txt结尾的文件
[root@localhost ~]# ls
1.txt 2.txt 3.pdf aaa.txt anaconda-ks.cfg
[root@localhost ~]# find ./ -name "*.txt"
./aaa.txt
./1.txt
./2.txt
30、查找/usr目录下超过1M的文件
[root@localhost ~]# find /usr -type f -size +10240k
/usr/lib/locale/locale-archive
/usr/lib64/libicudata.so.50.1.2
31、mysql主从复制原理
- 主库db的更新事件(update、insert、delete)被写到binlog。 主库创建一个binlog dump thread,把binlog的内容发送到从库。 从库启动并发起连接,连接到主库。 从库启动之后,创建一个I/O线程,读取主库传过来的binlog内容并写入到relay log。 从库启动之后,创建一个SQL线程,从relay log里面读取内容,从Exec_Master_Log_Pos位置开始执行读取到的更新事件,将更新内容写入到slave的db。
32、vim有几种工作模式
- 命令模式。行末模式,编辑模式
33、简述dns解析流程?访问www.baidu.com的解析流程
- 优先查找本地dns缓存,查找本地/etc/hosts文件,是否有强制解析,如果没有去/etc/resolv.conf指定的dns服务器中查找记录(需联网,在dns服务器中找到解析记录后,在本地dns中添加缓存,完成一次dns解析
34、讲解一下DNS查询的两种模式
- 递归查询 递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
- 迭代查询 DNS 服务器另外一种查询方式为迭代查询,DNS 服务器会向客户机提供其他能够解析查询请求的DNS 服务器地址,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果为止。
35、描述一下正向代理和反向代理
- 正向代理 比如我们国内访问国外网站,直接访问访问不到,我们可以通过一个正向代理服务器,请求发到代理服,代理服务器能够访问国外网站,这样由代理去国外网站取到返回数据,再返回给我们,这样我们就能访问了。
- 反向代理 反向代理实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时客户只是访问代理服务器却不知道后面有多少服务器。
喜欢的3连支持一下吧!