面试资料-Linux基础

Linux

命令:

如何查看进程,如何查看线程,如何查看某个进程的线程,
top -H [-p pid], ps -T [-p pid]
动态的查看进程状态,watch -nl “ps -ef” 或者 top

查看内存的使用情况:
top
free
ps aux –sort -rss ps aux: 列出目前所有的正在内存当中的程序。
cat /proc/meminfo
vmstat -s vmstat命令显示实时的和平均的统计,覆盖CPU、内存、I/O等内容。

查看磁盘的使用状况。df -h
查看目录的使用状况。du -sh
查看某个端口的使用状况 lsof -i:8088
实时的查看日志文件。tailf -n 50 [fileName]
查看某个日志文件中的内容。grep -i “xxx” file
不想查看文件中的内容。grep -v “xxx” file,不想查看多个内容 grep -v “xxx | yyy” file
取文件的前50行。head -n 50 file
查看文件的多少行。wc -l filename
分割一个文件,以1000行为一个文件。spilt -l 1000 filename -d -a 5
将一个文件中的A全部替换成B 。在命令行模式下 输入%s/A/B/g

ls命令 - 显示目录下的内容和属性信息
mkdir命令 - 创建目录
cp命令 - 复制文件或目录
mv命令 - 移动或改名文件
pwd命令 - 显示当前路径
echo命令 - 输出字符串或提取Shell变量的值
sed命令 - 处理编辑文本文件,截取指定时间段日志并输出到指定文件
sed -n ‘/2020-01-01 00:00:/,/2020-12-12 24:00:/p’ xxx.log > xxx.txt
tail命令 - 查看文件尾部内容(实时查看日志)
find命令 - 查找和搜索文件
kill命令
kill [PID] 可将指定的信号发送给相应的进程或工作。

ping命令 - 测试主机间网络的连通性
ifconfig命令 - 显示和配置网络设备信息

chmod
命令 - 改变文件或目录权限
chmod u+r test.txt //增加用户可读
chmod u-w test.txt //撤销用户可写
chmod u=rw test.txt //重置用户权限(可读可写)
chmod u=- test.txt //重置用户权限(无任何权限)
chmod g=rw test.txt //重置用户组权限(可读可写)
角色:
u (user)用户(文件所有者)
g (group)用户组(同一组中除了当前用户的其他用户)
o (other)其他用户(其他用户组下的所有用户)
a (all)所有用户
操作符:

  • 增加权限
  • 撤销权限
    = 设置权限
    权限值:
    r 可读,权限值4
    w 可写,权限值2
    x 可执行,权限值1
  • 无任何权限,权限值0

grep
命令 - 强大的文本搜索工具
支持多文件查询和通配符 *
利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。
1、grep -l ‘boss’ * 显示所有包含boss的文件名。
2、grep -n ‘boss’ file在匹配行之前加行号。
3、grep -i ‘boss’ file显示匹配行,boss不区分大小写。
4、grep -v ‘boss’ file显示所有不匹配行。
5、grep -q ‘boss’ file找到匹配行,但不显示,但可以检查grep的退出状态。(0为匹配成功)
6、grep -c ‘boss’ file只显示匹配行数(包括0)。
7、grep “$boss” file扩展变量boss的值再执行命令。
8、ps -ef|grep “^*user1″ 搜索user1的命令,即使它前面有零个或多个空格。
9、ps -e|grep -E ‘grant_server|commsvr|tcpsvr|dainfo’ 查找多个字符串的匹配(grep -E相当于egrep)
查找包含logField又包含open的文件:
grep “logFileId” *.tbc | grep “open”
找出文件夹下包含 “aaa” 同时不包含 “bbb”的文件
grep -rl “aaa” * | grep -v “bbb”

ps
Process Status的缩写。ps命令用来列出系统中当前运行的那些进程,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。

pwd
以绝对路径的方式显示用户当前工作目录。

top
用于实时显示 process 的动态。
在这里插入图片描述
1.第一行 分别显示:系统当前时间 系统运行时间 当前用户登陆数 系统负载。
系统负载:
任务队列的平均长度,三个数值分别代表最近1分钟,5分钟,15分钟的系统平均负载。
对于单核CPU来说,0表示没有负荷,1表示满负荷,大于1表示超负荷,理想值是0.7;
对于多核CPU来说,用核数按比例放大就好,比如四核CPU,理想值就是4*0.7=2.8。
2.第二行 分别显示:total进程总数、 running正在运行的进程数、 sleeping睡眠的进程数、stopped停止的进程数、 zombie僵尸进程数。
3.第三行 分别显示:
%us 用户空间占用CPU百分比、
%sy 内核空间占用CPU百分比、
%ni 用户进程空间内改变过优先级的进程占用CPU百分比、
%id 空闲CPU百分比、(空闲cpu百分比,这里就表示还剩多少cpu处于空闲状态,一般剩余不到50%就需要关注一下,是否服务器压力可能过大)
%wa 等待输入输出(I/O)的CPU时间百分比 、
%hi指的是cpu处理硬件中断的时间、%si指的是cpu处理软中断的时间 、
%st用于有虚拟cpu的情况,用来指示被虚拟机偷掉的cpu时间。
通常id%值可以反映一个系统cpu的闲忙程度。
4.第四行 内存信息:
total 物理内存总量、 used 使用的物理内存总量、free 空闲内存总量、 buffers 用作内核缓存的内存量。
5.第五行 SWAP:total 交换区总量、 used 使用的交换区总量、free 空闲交换区总量、 cached 缓冲的交换区总量。
6.第六行 进程信息:
PID(进程号)、 USER(运行用户)、
PR(优先级,这意味这这些进程运行在实时态)、
NI(任务nice值,负值表示高优先级,正值表示低优先级)、
VIRT(进程的虚拟内存用量,单位kb)VIRT=SWAP+RES 、
RES(物理内存用量,进程使用的、未被换出的物理内存大小,单位kb,RES=CODE+DATA)、
SHR(共享内存用量)、
S(进程状态,D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)、
%CPU(CPU占用比,上次更新到现在的CPU时间占用百分比。这里可能超过100%,每一个100%表示占用了一个CPU,比如230%,表示目前这个进程占用了2核CPU)、
%MEM(进程使用的物理内存占用比)、
TIME+(进程累计CPU占用时间,使用的CPU时间总计,单位1/100秒)、 
COMMAND 命令名/命令行。

free
查看系统内存使用情况。

df
命令 - 显示磁盘空间使用情况
-h 以易读方式显示
du
命令 - 查看磁盘占用空间
df命令和du命令都是查看磁盘空间情况,但是与df命令不同的是du命令是对文件和目录磁盘使用的空间的查看,而不是某个分区。
du是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。
而df是通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件, df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。

linux 中让java进程以后台形式执行,并输出日志到指定文件中。
举例:
现在linux /home/pro/application/monitor下有一个jar包叫zop-monitor-web.jar,这是个spring-boot web部署包。我们需要用java -jar方式启动,并且将日志输出到zop-monitor-web.log文件中,并且以后台程序启动。
完整的命令将是:
nohup java -jar /home/pro/application/monitor/zop-monitor-web.jar >/logs/zop-monitor-web.log &
启动执行,执行成功。查看日志。
tail -f /logs/zop-monitor-web.log

nohup
nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。
nohup 是 no hang up 的缩写,就是不挂断的意思。
nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。
在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。
nohup:不挂断的运行,注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行
&是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出
那么,我们可以巧妙的吧他们结合起来用就是
nohup COMMAND &
这样就能使命令永久的在后台执行

linux 下查看 java程序的堆栈信息

  1. top
  2. 找到 top 中 消耗CPU 最多的pid
  3. top -Hp 最大的 Pid 查看 该进程中 的 任务 。
  4. 使用 printf “%X\n” pid 转换成 16 进制数
  5. jstack Pid | grep -30 16进制数

linux中设置免密登录远程服务器(ssh)
1、首先本地机器生成密钥,在任意目录下输入命令:
ssh-keygen -t rsa -P ‘’
-P表示密码,-P ''表示空密码
之后系统会提示输入生成的密钥文件的文件名,可以输入任意名称,比如id_rsa,回车
系统会在当前目录下生成id_rsa与id_rsa.pub两个文件
2、在本地机器根目录下新建.ssh文件夹,将生成的密钥文件拷贝过去
mkdir -p ~/.ssh
-p选项表示如果文件夹已经存在则不再新建。
然后将之前生成的两个文件都拷贝到.ssh文件夹中
cp id_rsa* ~/.ssh/
3、把公钥文件id_rsa.pub拷贝到需要登录的服务器上
用scp命令
scp -P port ~/.ssh/id_rsa.pub username@ip_address:~
-P表示要登录服务器的端口好,不加默认为22。
之后系统会提示输入密码,输入即可完成拷贝
4、 登录远程服务器,在用户根目录下新建.ssh文件夹(如果不存在),在其中新建authorized_keys文件(如果不存在),把id_rsa.pub添加到authorized_keys文件中
mkdir -p ~/.ssh
这是在远程服务器上新建ssh文件夹
cat id_rsa.pub >> .ssh/authorized_keys
将id_rsa.pub文件添加到authorized_keys文件中(如文件不存在则新建)
注意:要保证.ssh与authorized_keys用户自己都有写权限
5、退出当前远程登录,之后就可以不使用密码远程登录了
6、可以在环境里面自定义命令,比如设置为“sshterm”,直接登录到远程客户端

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值