本文主要介绍Linux一些常使用到的基本命令以及面试中较常问到的命令:
1、获取文件最前面几行
# 方式一:
head -n 10 file_name
# 方式二:
cat file_name | head -n 10
2、获取文件最后几行
# 方式一:
tail -n 10 file_name
# 方式二:
cat file_name | tail -n 50
使用 cat,tac 和 nl 命令查看文件:
cat、tac都是用来打印文件内容到标准输出(终端),其中 cat 为正序显示,tac 为倒序显示。
nl 命令,添加行号并打印,这是个比 cat -n 更专业的行号打印命令。
3、实现替换文本内容
使用sed流编辑器
-
e:多点编辑
-
<:输入文件
-
>:输出文件
# 替换文本里面的部分内容:
sed -i 's/原字符串/新字符串/' /home/1.txt
sed -i 's/原字符串/新字符串/g' /home/1.txt
# 去掉 “行首” 带“@”的首字母@
sed -i 's/^@//' file
# 特定字符串的行前插入新行
sed -i '/特定字符串/i 新行字符串' file
4、在文件中寻找某字符串
grep 'word' file_name
* : 表示当前目录所有文件,也可以是某个文件名
-r 是递归查找
-n 是显示行号
-R 查找所有文件包含子目录
-i 忽略大小写
5、查看服务端口号
netstat -atnulp
netstat - atulnp会显示所有端口和所有对应的程序,用grep管道可以过滤出想要的字段
-a :all,表示列出所有的连接,服务监听,Socket资料
-t :tcp,列出tcp协议的服务
-u :udp,列出udp协议的服务
-n :port number, 用端口号来显示
-l :listening,列出当前监听服务
-p :program,列出服务程序的PID
6、查看某一端口的占用情况
lsof -i:端口号
7、查看进程
ps -aux
# 查看进程占用前10
top
-A :所有的进程均显示出来
-a :不与terminal有关的所有进程
-u :有效用户的相关进程
-x :一般与a参数一起使用,可列出较完整的信息
-l :较长,较详细地将PID的信息列出
8、tr 命令
删除一段文本信息中的某些文字,或者将其进行转换
# 使用方式
tr [option]...SET1 [SET2]
# 删除 "hello shiyanlou" 中所有的'o','l','h'
$ echo 'hello shiyanlou' | tr -d 'olh'
# 将"hello" 中的ll,去重为一个l
$ echo 'hello' | tr -s 'l'
# 将输入文本,全部转换为大写或小写输出
$ echo 'input some text here' | tr '[:lower:]' '[:upper:]'
# 上面的'[:lower:]' '[:upper:]'你也可以简单的写作'[a-z]' '[A-Z]',当然反过来将大写变小写也是可以的
常用的选项有:
- -d 删除和set1匹配的字符,注意不是全词匹配也不是按字符顺序匹配
- -s 去除set1指定的在输入文本中连续并重复的字符
9、join命令
将两个文件中包含相同内容的那一行合并在一起
join file1 file2
常用的选项有:
- -t 指定分隔符,默认为空格
- -i 忽略大小写的差异
- -1 指明第一个文件要用哪个字段来对比,默认对比第一个字段
- -2 指明第二个文件要用哪个字段来对比,默认对比第一个字段
10、awk的用法
awk 参数 ' BEGIN{}//{action1;action2} ' END{} 文件名
# 格式化输出
awk '{printf "%-5s %.2d",$1,$2}' test
printf 表示格式输出
%格式化输出分隔符
-8表示长度为8个字符
s表示字符串类型,d表示小数
11、常用文件命令
ls -l # 显示文件或目录
# -l 列出文件详细信息l(list)
# -a 列出当前目录下所有文件及目录,包括隐藏的a(all)
mkdir # 创建目录
# -p 创建目录,若无父目录,则创建p(parent)
cd # 切换目录
touch # 创建空文件
echo # 创建带有内容的文件。
cat # 查看文件内容
cp # 拷贝
mv # 移动或重命名
rm # 删除文件
# -r 递归删除,可删除子目录及文件
# -f 强制删除
find # 在文件系统中搜索某文件
wc # 统计文本中行数、字数、字符数
rmdir # 删除空目录
tree # 树形结构显示目录,需要安装tree包
pwd # 显示当前目录
ln # 创建链接文件
more
less # 分页显示文本文件内容
head
tail 显示文件头、尾内容