面试中和工作中常用的linux命令


find|grep|ssh|文件传输scp|sz|清屏|创建链接|查看端口占用情况|管道|重定向|sed|

find查找文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
一.find命令
 基本格式:find path expression
 1.按照文件名查找
  *(1)find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找
  (2)find /etc -name httpd.conf  #在/etc目录下文件httpd.conf
  (3)find /etc -name '*srm*'  #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
  (4)find . -name 'srm*'   #表示当前目录下查找文件名开头是字符串‘srm’的文件
 2.按照文件特征查找     
  (1)find / -amin -10   # 查找在系统中最后10分钟访问的文件(access time)
  (2)find / -atime -2   # 查找在系统中最后48小时访问的文件
  (3)find / -empty   # 查找在系统中为空的文件或者文件夹
  (4)find / -group cat   # 查找在系统中属于 group为cat的文件
  (5)find / -mmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)
  (6)find / -mtime -1   #查找在系统中最后24小时里修改过的文件
  (7)find / -user fred   #查找在系统中属于fred这个用户的文件
  (8)find / -size +10000c  #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
  (9)find / -size -1000k   #查找出小于1000KB的文件
 3.使用混合查找方式查找文件
  参数有: !,-and(-a),-or(-o)。
  (1)find /tmp -size +10000c -and -mtime +2   #在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件
(2)find / -user fred -or -user george   #在/目录下查找用户是fred或者george的文件文件
(3)find /tmp ! -user panda  #在/tmp目录中查找所有不属于panda用户的文件

grep内容查找

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
二、grep命令
基本格式:find expression
 1.主要参数
 [options]主要参数:
  -c:只输出匹配行的计数。
  -i:不区分大小写
  -h:查询多文件时不显示文件名。
  -l:查询多文件时只输出包含匹配字符的文件名。
  -n:显示匹配行及行号。
  -s:不显示不存在或无匹配文本的错误信息。
  -v:显示不包含匹配文本的所有行。

 pattern正则表达式主要参数:
  \: 忽略正则表达式中特殊字符的原有含义。
  ^:匹配正则表达式的开始行。
  $: 匹配正则表达式的结束行。
  \<:从匹配正则表达 式的行开始。
  \>:到匹配正则表达式的行结束。
  [ ]:单个字符,如[A]即A符合要求 。
  [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
  .:所有的单个字符。
  * :有字符,长度可以为0。
 2.实例 
  (1)grep 'test' d*  #显示所有以d开头的文件中包含 test的行
  (2)grep ‘test’ aa bb cc    #显示在aa,bb,cc文件中包含test的行
  (3)grep ‘[a-z]\{5\}’ aa   #显示所有包含每行字符串至少有5个连续小写字符的字符串的行
  (4)grep magic /usr/src  #显示/usr/src目录下的文件(不含子目录)包含magic的行
  *(5)grep -r magic /usr/src  #显示/usr/src目录下的文件(包含子目录)包含magic的行
  (6)grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),

查看网络设置

1
ifconfig

设置ssh

1
2
3
4
5
6
7
8
9
10
安装openssh-server。使用命令:
# apt-get install openssh-server
vim /etc/ssh/sshd_config
将#PasswordAuthentication yes前的注释符#去掉
将#PermitRootLogin prohibit-password前的注释符#去掉,将prohibit-password改为yes
执行service ssh start启动ssh服务
将其设置为开机启动
编辑vim /etc/rc.local
在exit 0前一行添加
/etc/init.d/ssh start

[安装ssh][https://blog.csdn.net/java_dotar_01/article/details/76942563]

使用ssh链接远程主机

1
ssh root@192.168.1.11

文件传输

1
2
3
4
5
6
7
8
9
10
11
12
13
本地>>>远程
scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music
scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music/001.mp3
scp -r /home/space/music/ root@www.runoob.com:/home/root/others/

远程>>>本地
scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3
scp -r www.runoob.com:/home/root/others/ /home/space/music/

如果远程服务器防火墙有为scp命令设置了指定的端口,需要使用 -P 参数来设置命令的端口号,格式如下:
#scp 使用端口 4588
scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator
使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用。

sz命令

在linux之间传输文件使用scp就行了
如果是在windows下使用xshell控制linux时:

1
2
3
上传文件直接到那个目录,然后把文件拖进去就可以
从linux下载文件时,
sz test.txt 然后再选择本地存储目录就可以。

清屏

1
2
clear
或者ctrl+l

创建链接

1
2
3
4
5
6
7
8
9
10
11
ln -s 源目录或文件 目标快捷方式
-s表示创建符号链接
-------------------------------
符号链接的源可以是目录或文件
硬链接一般只能是文件
-------------------------------
硬链接:可以看做一个指针,指向源文件.硬链接与源文件是一个文件.
只要某文件有一个硬链接,该文件就不会真正的物理的删除.
所以,给一个文件创建硬链接之后,把源文件删除,硬链接还表示源文件,可以正常用.
符号链接(软链接):是另外一个文件,相当于windows下的快捷方式.
产出源文件之后,创建的符号链接就没法用了.

查看端口占用

1
2
3
4
netstat -anp | grep 1080 #打印占用1080端口的进程以及PID
kill -9 PID #关闭那个进程
-9 强制结束
-3 ctrl+c时向进程发送这个信号,程序收到这个信号会结束.

管道 重定向

1
2
3
> 写入到新文件 
>> 追加到新文件
| 将上一个程序的输出作为下一个程序的输入,并且两者是同时进行的,不是等到第一个完全输出之后再输入到第二个程序。

sed文本处理

1
2
3
4
5
6
7
8
9
10
nl /etc/passwd | sed '2d'   #删除第二行
nl /etc/passwd | sed '3,$d' #删除3到最后一行

sed -e 4a\newline testfile #使用sed 在第四行后添加新字符串

nl /etc/passwd | sed '2,5d' #nl列出文件内容并带行号(不算空格行)
1 root:x:0:0:root:/root:/bin/bash
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
.....(后面省略).....

参考

欢迎与我分享你的看法。
转载请注明出处:http://taowusheng.cn/