Linux常用命令——Java面试必备

基本使用篇

字节跳动面试题出现的Linux命令整理


1. 如何查看进程,如何查看线程,如何查看某个进程的线程,top -H [-p pid], ps -T [-p pid]。
2. 如何查看内存使用状况。
3. 如何查看磁盘的使用状况。df -h
4. 查看目录的使用状况。du -sh
5. 查看某个端口的使用状况。lsof -i:8088
6. 实时的查看日志文件。tailf -n 50 [fileName]
7. 查看某个日志文件中的内容。grep -i "xxx" file
8. 不想查看文件中的内容。grep -v "xxx" file,不想查看多个内容 grep -v "xxx \| yyy" file
9. 取文件的前50行。head -n 50 file
10. 查看文件的多少行。wc -l filename
11. 分割一个文件,以1000行为一个文件。spilt -l 1000 filename -d -a 5
12. 将一个文件中的A全部替换成B 。在命令行模式下  输入%s/A/B/g
13. 动态的查看进程状态,watch -nl "ps -ef" 或者 top

帮助命令

man 帮助命令

man ls
man 2 mkdir 
man 3 printf

文件及目录管理命令

touch

  1. 创建一个文件
touch testfile.txt
  1. 修改时间戳为当前时间
touch testfile.txt

mkdir

  1. 创建一个空目录
mkdir testdir
  1. 递归创建多个目录
mkdir -p testdir1/testdir2

rm remove

  1. 删除一个或多个文件
rm testfile1 testfile2
  1. 删除一个或多个目录
rm -r testdir1 testdir2
  1. 强制删除文件/目录
rm -rf testfile testdir

注意:千万不要运行 rm -rf /*,

mv

  1. 移动文件/目录
mv testfile.txt testdir
  1. 更改文件名
mv testfile1.txt testfile2.txt

cp

  1. 复制文件/目录
cp file1.txt file2.txt

cp -r dir1 dir2
ps: dir2如果已经存在,则dir1将被复制到dir2目录下。 如果dir2不存在,则dir1将复制成dir2

目录切换

cd

. 当前目录,
.. 上一层目录。 
cd 进入用户主目录; 
cd ~ 进入用户主目录; 
cd - 返回进入此目录之前所在的目录,上一个目录; 
cd .. 返回上级目录 
cd ../.. 返回上两级目录;

pwd 查看当前所在路径

列出目录项

ls

  1. 列出当前目录所有文件
ls
  1. 列出当前目录所有文件(包括隐藏文件)
 ls -a
  1. 以列表形式列出当前目录所有文件(包括隐藏文件)
ls -l --> ll
  1. 以易于人类阅读形式列出当前目录所有文件
 ls -lh

tree

tree 以树形显示目录的文件架构

tree 
tree dir

权限及所有者相关

在这里插入图片描述
在这里插入图片描述

chown :change owner

更改文件所有者 chown [-R] 
所有者 文件或目录 chown [-R] 所有者:所属组 文件或目录

chgrp :change group

修改文件(或目录)的所属组 chgrp [-R] 所属组 文件名(目录名)

chmod

  1. 使用数字修改文件权限 x:可执行
    rwx = 1 + 2 + 4 = 7
    x : 1
    w : 2
    r : 4
chmod 777 file
  1. 使用字母修改文件权限
u-user, g-group, o-other, a-all
chmod a+w file 
chmod u=rwx,go=rx .bashrc

在这里插入图片描述

文本处理命令

cat

cat不是猫,是单词concatenate的缩写,代表“连接”

  1. 在终端查看文本内容
cat file.txt
  1. 从键盘创建一个文件
cat > file.txt
crt + c 结束键盘输入
  1. 将几个文件合并为一个文件
cat file1.txt file2.txt > file.txt

more

可以翻页查看文件

q:退出 more 
空格键:向下滚动一屏 
b:返回上一屏 
回车:向下滚动一行
  1. 分页显示文本文件内容
more file.txt
  1. 通过管道分页显示结果
 ll /etc | more

less

基本操作 与man命令相同(实际上man命令的结果正是调用了less命令)

  1. 分页显示文本文件内容
less file.txt
  1. 通过管道分页显示结果
ll /etc | less

head

显示文本文件前n行内容(默认显示前10行)

head -n 5 file.txt

tail

  1. 显示文件末尾内容
tail -n 5 file.txt
  1. 循环查看文件内容 循环查看文件最新的内容
tail -f file.txt
  1. 从第5行开始显示文件
tail -n +5 file.txt

sort

  1. 按ASCII码升序排序
sort file.txt
  1. 排序并去除重复行
sort -u file.txt
  1. 按ASCII码降序排序
sort -r file.txt

uniq

删除重复行

uniq file.txt

磁盘管理命令

df

磁盘文件的可用空间

df df ~
df -h

du

  1. 显示目录或者文件所占空间
du (-h)
  1. 显示指定文件所占空间
du file.txt

tar

  1. 压缩文件
tar zcvf file.tar.gz file1 file2
  1. 解压文件
tar zxvf file.tar.gz
-z 支持gzip属性的文件
-v 显示操作过程
-f 必须,使用档案名字,这个参数是最后一个参数,后面只能接档案名
-c 建立压缩档案
-x 解压

进程管理

ps process status编写,用来列出系统中当前运行的那些进程
列出目前所有的正在内存当中的程序

ps aux - grep hello

ps aux USER:该 process 属于那个使用者账号的 PID :该 process 的号码 %CPU:该 process
使用掉的 CPU 资源百分比 %MEM:该 process 所占用的物理内存百分比 VSZ :该 process 使用掉的虚拟内存量
(Kbytes) RSS :该 process 占用的固定的内存量 (Kbytes) TTY :该 process
是在那个终端机上面运作,若与终端机无关,则显示 ? STAT:该程序目前的状态,主要的状态有 R
:该程序目前正在运作,或者是可被运作 S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal)
唤醒。 T :该程序目前正在侦测或者是停止了
Z :zombie (疆尸) 程序 START:该 process 被触发启动的时间 TIME :该 process 实际使用 CPU 运作的时间 COMMAND:该程序的实际指令

top

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状 况,类似于Windows的任务管理器。

kill

linux下向进程发送信号的命令。

  1. 列出所有命令名称
 kill -l
  1. 杀死进程
kill –9 3268

killall

杀死指定名字的进程

 killall vi

网络工具

ssh

  1. 连接到远程主机
ssh name@remoteserver
  1. 通过SSH运行远程shell命令
ssh name@10.203.138.129 “uname -a”

wget

  1. 使用wget下载单个文件
wget https://dl.bintray.com/boostorg/release/1.71.0/source/boost_1_71_0.tar.bz2
  1. 断点续传
wget -c https://dl.bintray.com/boostorg/release/1.71.0/source/boost_1_71_0.tar.bz2

scp

  1. 上传文件
scp /home/alvin/file.txt  root@10.203.138.129:/home/root
  1. 下载文件
scp root@10.203.138.129:/home/root/file.txt /tmp

ping

向指定的网络地址发送一定长度的数据包,按照约定,若指定网络地址存在的话,会返 回同样大小的数据包

  1. 测试网络连通性
 ping baidu.com
  1. ping指定次数
ping -c 5 baidu.com

用户管理工具

sudo

以系统管理者的身份执行指令

sudo command

adduser: 会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码。 useradd:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密 码、无主目录、没有指定shell版本。

useradd

sudo useradd -d "/home/alvin" -m -s "/bin/bash" alvin

-d “/home/alvin" :就是指定/home/alvin为主目录

-m 就是如果/home/alvin不存在就强制创建

-s 就是指定shell版本

adduser

adduser user

userdel

删除用户 userdel -r user

passwd

更改密码 passwd alvin

groupadd

添加一个新组

groupadd leader 

查询组

cat /etc/group | grep leader
  1. 更改组名
 groupmod -n leaders leader
  1. 更改组GID
groupmod -g 3000 leaders

一些终端快捷键

tab : 路径/命令 补全
ctrl + f 向前移动光标
crtl + b 向后移动光标
ctrl + a 光标移动到行首
ctrl + e 光标移动到末尾
crtl + p page up
crtl + n page down
ctrl + l 清屏
ctrl + c 终止当前运行的程序
ctrl + z 将当前运行的程序转到后台 与&效果一样
ctrl + r 查找历史命令

在这里插入图片描述

高级篇 (重要)

grep命令

grep(global regular expression print) 使用正则表达式搜索文本,并把匹配的行打印出来

  • 查找文件file.log 中的“possport”字段
grep "passport" file.log
  • 查找文件file.log中“passport”字段,并且统计出出现次数:
grep "passport" file.log | wc -l

或者

grep "passport" file.log -c

管道操作符号 "I"的作用,管道命令操作符仅仅能处理精油前面一个指令传出来的正确的输出信息,也就是standard output信息,对于 standard error信息没有直接的处理能力,然后传递给下一个命令,作为标准的输入 standard input。 然后 wc(word count)可以统计指定文件的字节数,字数,行数,并将统计结果显示输出, 当然-c也可以起到统计次数的作用

ps -ef | grep tomcat | grep -v "grep"
grep 'partial\[true\]' bas-plat-al-data.info.log
grep -o 'engine\[[0-9a-z]*\]'
grep -v 'grep'

awk命令

awk命令主要是将一行分为多个字段做处理,格式如下

awk [-F field-separator] 'commands' input-file(s)

其中,commands是真正的awk命令,[-F域分隔符]是可选的, input-file(s)是待处理的文件。在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指明-F域分隔符的情况下,默认的与域分隔符是空格。

假设我们现在有一个文件,里面内容有三行,如下所示,使用awk来做一个简单的统计

  • 去掉第一行
  • 对第一行求和
  • 去掉列数不为3的列

在这里插入图片描述


top和ps命令:探测进程

ps

ps命令,默认只会显示运行在当前控制台下的属于当前用户的进程

  • ps -A 和 ps -e可以显示所有进程
  • ps -ef 显示完整格式的所有进程
  • 指定进程名, ps -ef | grep "java"找出进程名中包括java的所有进程

top

top命令可以实时的检测进程,输出的第一部分是显示系统的概括

  • 第一行显示了当前时间,系统的运行时间,登录的用户数目和系统的平均负载
  • 第二行显示了进程的概要信息,有多少进程处于运行、休眠、停止或者僵化状态
  • 第三行是CPU的概要信息
  • 第四行是系统内存的状态

ps和top命令的区别

  • ps看到的是命令执行瞬间的进程信息,而top可以持续的监视
  • ps只是查看进程而top还可以监视系统性能,如平均负载,cpu和内存的消耗
  • top可以操作进程,如改变优先级和关闭进程
  • ps主要是查看进程,所以关注点在于查看需要查看的进程
  • top主要看cpu,内存使用情况,及占用资源最多的进程由高到低排序,关注点在于资源占用的情况

sed命令

sed stream editor
sed命令式利用脚本来处理文本文件。sed可依照脚本的指令来处理、编辑文本文件。sed主要自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等

  • 可以将文件的第二行和第三行裁剪出来
sed -n '2,p' test.txt

sort

sort命令可以实现堆文件进行排序

  • 正序排序 sort -n test.txt
  • 你序排序 sort -nr test.txt

tail和head命令

  • tail -n 2 file.log 可以查看文件的最后2行
  • tail - f file.log 可以实时的查看文件的后边追加的部分
  • head - n 2 file.log 可以查看文件的开始两行

find

  • find ~ -name “target3.java” :精确查找文件
  • find ~ -name “target*” :模糊查找
  • find ~ -iname “target*” :不区分大小写去查找文件
  • man find:更多关于find指令的使用说明
  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值