测试面试之linux基础

文章目录

    • 1、如何查看CPU信息?
    • 2、查看占用CPU使用率最高的进程?
    • 3、如何查看一个文件的末尾50行?
    • 4、如何过滤文件内容中包含“ERROR”的行?
    • 5、查看某端口号?
    • 6、查看某进程号?
    • 7、查看IP地址?
    • 8、创建和删除一个多级目录?
    • 9、在当前用户家目录中查找haha.txt文件?
    • 10、如何查询出tomcat的进程并杀掉这个进程,写出linux命令?
    • 11、动态查看日志文件?
    • 12、查看系统硬盘空间的命令?
    • 13、查看目前机器listen的所有端口?
    • 14、把一个文件夹打包压缩成.tar.gz的命令,以及解压拆包.tar.gz命令?
    • 15、Xshell工具如果想要实现从服务器上传或下载文件的话,可以在服务器上安装什么包?
    • 16、以/etc/passwd的前五行内容为例,提取用户名?
    • 17、在linux中find与grep的区别?

参考:
2019测试学习路线图,内附完整自学路线+视频+工具经验+面试篇-黑马程序员技术交流社区
Linux 命令大全 | 菜鸟教程


1、如何查看CPU信息?

/proc/meminfo
rita@rita-localhost:~$ cat /proc/meminfo 
MemTotal:        7071452 kB
MemFree:         4655216 kB
MemAvailable:    5373196 kB
Buffers:           74844 kB
Cached:           874236 kB
SwapCached:            0 kB
Active:          1591648 kB
Inactive:         516584 kB
Active(anon):    1160800 kB
Inactive(anon):    39156 kB
Active(file):     430848 kB
Inactive(file):   477428 kB
Unevictable:          32 kB
Mlocked:              32 kB
SwapTotal:       1555964 kB
SwapFree:        1555964 kB
Dirty:               444 kB
Writeback:             0 kB
AnonPages:       1159220 kB
Mapped:           399064 kB
Shmem:             40808 kB
Slab:             106308 kB
SReclaimable:      58056 kB
SUnreclaim:        48252 kB
KernelStack:       12384 kB
PageTables:        47620 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     5091688 kB
Committed_AS:    5826664 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      316036 kB
DirectMap2M:     3813376 kB
DirectMap1G:     4194304 kB

2、查看占用CPU使用率最高的进程?

ps -aux | sort -k3nr | head -1
rita@rita-localhost:~$ ps -aux | sort -k3nr | head -1
rita      1859 22.8  4.0 2165836 283696 tty2   Sl+  15:43   5:59 /usr/lib/firefox/firefox -new-window

ps命令:

  • 用于报告当前系统的进程状态
  • -a:显示所有终端机不执行的程序,除了阶段作业领导者以外
  • -u:列出属于该用户程序的状况
  • -x:显示所有程序,不以终端机来区分
  • -aux:显示所有包含其他使用者的进程

sort命令:

  • 排序
  • -n:比较数值
  • -kn:比较第n列
  • -r:降序

head命令:

  • 用来显示档案的开头至标准输出当中,默认使用head命令打印其相应文件的开头10行。

3、如何查看一个文件的末尾50行?

查看 /etc/profile的前10行内容应该是:# head -n 10 /etc/profile
查看/etc/profile的最后50行内容应该是:# tail -n 50 /etc/profile
rita@rita-localhost:~$ head -n 10 /etc/profile
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "${PS1-}" ]; then
  if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
rita@rita-localhost:~$ tail -n 50 /etc/profile
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "${PS1-}" ]; then
  if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi
JAVA_HOME=/usr/java/jdk1.8.0_201
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

head命令与tail命令详解

4、如何过滤文件内容中包含“ERROR”的行?

grep "ERROR" file_name
cat file_name | grep "ERROR"

5、查看某端口号?

netstat -anp | grep port_number
rita@rita-localhost:~$ netstat -anp | grep 3471
(并非所有进程都能被检测到,所有非本用户的进程信息将不会显示,如果想看到所有信息,则必须切换到 root 用户)
unix  3      [ ]         流        已连接     214485   3471/zeitgeist-daem  
unix  3      [ ]         流        已连接     214484   3471/zeitgeist-daem  
unix  3      [ ]         流        已连接     214483   3471/zeitgeist-daem 

netstat命令:

  • 用于显示网络状态;利用netstat指令可让你得知整个Linux系统的网络情况
  • -a:全部列出监听(linsten)和不监听(not listen)的sockets状态
  • -n:拒绝显示列名,能显示数字的全部转化为数字
  • -p:显示建立相关链接的程序名

grep命令:

  • 是一种强大的文本搜索工具,能使用正则表达式搜索文本,并把匹配的行打印出来。
  • grep全称是Global Regular Expression Print,表示全局正则表达式版本,使用权限是全体用户。

6、查看某进程号?

ps -ef | grep ps_name
ps -ef | grep ps_number
rita@rita-localhost:~$ ps -ef | grep colord
colord    1541     1  0 10:13 ?        00:00:00 /usr/lib/colord/colord
rita      6026  4035  0 11:16 pts/0    00:00:00 grep --color=auto colord
rita@rita-localhost:~$ ps -ef | grep 1541
colord    1541     1  0 10:13 ?        00:00:00 /usr/lib/colord/colord
rita      6047  4035  0 11:16 pts/0    00:00:00 grep --color=auto 1541

ps命令:

  • 用于显示当前进程 (process) 的状态
  • -e:显示所有程序
  • -f:用ASCII字符显示树状结构,表达程序间的关系
  • -ef:显示所有进程信息,连同命令行

7、查看IP地址?

ifconfig
rita@rita-localhost:~$ ifconfig
enp2s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 84:7b:eb:0d:18:c2  txqueuelen 1000  (以太网)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (本地环回)
        RX packets 3671  bytes 355575 (355.5 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3671  bytes 355575 (355.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.97.3.150  netmask 255.255.224.0  broadcast 10.97.31.255
        inet6 fe80::1394:f933:f409:f613  prefixlen 64  scopeid 0x20<link>
        inet6 2001:da8:4002:2738:fc1d:795e:d466:fed2  prefixlen 64  scopeid 0x0<global>
        inet6 2001:da8:4002:2738:f707:b130:3ad7:5f8f  prefixlen 64  scopeid 0x0<global>
        ether 44:1c:a8:26:73:09  txqueuelen 1000  (以太网)
        RX packets 282168  bytes 89237671 (89.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 42099  bytes 5633804 (5.6 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • windows下是ipconfig,linux下是ifconfig。

8、创建和删除一个多级目录?

mkdir -p ./a/b
rm -rf ./a

mkdir命令:

  • 创建目录,要求创建目录的用户在当前目录中有写权限,并且指定的目录名不能是当前目录中已有的目录
  • -p:可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,将自动建立好那些尚不存在的目录,即一次可以创建多个目录

rm命令:

  • 可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉;对于链接文件,只是删除整个链接文件,而原有文件保持不变。
  • -r或-R:递归处理,将指定目录下的所有文件或目录逐一删除
  • -f:强制删除,无需确认

9、在当前用户家目录中查找haha.txt文件?

find ./ -name haha.txt
rita@rita-localhost:~$ find ./ -name 123.txt
./practice/test1/123.txt

find命令:

  • Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。
  • 如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
  • -name name,-iname name:文件名称符合name的文件。iname或忽略大小写。

10、如何查询出tomcat的进程并杀掉这个进程,写出linux命令?

ps -ef | grep tomcat
kill -9 tomcat_port

ps top kill

  • ps命令:显示瞬间进程的状态
  • top命令:如果想对进程进行时间监控,应该使用top命令
  • kill命令:用于杀死进程或者给进程发送信号

kill命令:

  • Linux kill命令用于删除执行中的程序或工作。
  • kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。
  • 若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。
  • -9:彻底杀死进程

11、动态查看日志文件?

tail -f log_file

tail命令:

  • 用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
  • tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。
  • -f:循环读取,实时监控,使用ctrl+c终止!

12、查看系统硬盘空间的命令?

df -aTh
rita@rita-localhost:~$ df -aTh
文件系统       类型             容量  已用  可用 已用% 挂载点
sysfs          sysfs               0     0     0     - /sys
proc           proc                0     0     0     - /proc
udev           devtmpfs         3.4G     0  3.4G    0% /dev
devpts         devpts              0     0     0     - /dev/pts
tmpfs          tmpfs            691M  1.9M  689M    1% /run
/dev/sdb10     ext4              32G  9.3G   21G   32% /
securityfs     securityfs          0     0     0     - /sys/kernel/security
tmpfs          tmpfs            3.4G   60M  3.4G    2% /dev/shm
tmpfs          tmpfs            5.0M  4.0K  5.0M    1% /run/lock
tmpfs          tmpfs            3.4G     0  3.4G    0% /sys/fs/cgroup
cgroup         cgroup2             0     0     0     - /sys/fs/cgroup/unified
cgroup         cgroup              0     0     0     - /sys/fs/cgroup/systemd
pstore         pstore              0     0     0     - /sys/fs/pstore
cgroup         cgroup              0     0     0     - /sys/fs/cgroup/perf_event
cgroup         cgroup              0     0     0     - /sys/fs/cgroup/cpu,cpuacct
cgroup         cgroup              0     0     0     - /sys/fs/cgroup/devices
cgroup         cgroup              0     0     0     - /sys/fs/cgroup/blkio
cgroup         cgroup              0     0     0     - /sys/fs/cgroup/pids
cgroup         cgroup              0     0     0     - /sys/fs/cgroup/hugetlb
cgroup         cgroup              0     0     0     - /sys/fs/cgroup/freezer
cgroup         cgroup              0     0     0     - /sys/fs/cgroup/net_cls,net_prio
cgroup         cgroup              0     0     0     - /sys/fs/cgroup/memory
cgroup         cgroup              0     0     0     - /sys/fs/cgroup/cpuset
cgroup         cgroup              0     0     0     - /sys/fs/cgroup/rdma
systemd-1      autofs              0     0     0     - /proc/sys/fs/binfmt_misc
mqueue         mqueue              0     0     0     - /dev/mqueue
debugfs        debugfs             0     0     0     - /sys/kernel/debug
hugetlbfs      hugetlbfs           0     0     0     - /dev/hugepages
configfs       configfs            0     0     0     - /sys/kernel/config
fusectl        fusectl             0     0     0     - /sys/fs/fuse/connections
/dev/loop0     squashfs          15M   15M     0  100% /snap/gnome-logs/37
/dev/loop1     squashfs          35M   35M     0  100% /snap/gtk-common-themes/1122
/dev/loop2     squashfs         4.2M  4.2M     0  100% /snap/gnome-calculator/406
tracefs        -                   -     -     -     - /sys/kernel/debug/tracing
/dev/loop3     squashfs          15M   15M     0  100% /snap/gnome-logs/45
/dev/loop7     squashfs          35M   35M     0  100% /snap/gtk-common-themes/818
/dev/loop8     squashfs         141M  141M     0  100% /snap/gnome-3-26-1604/74
/dev/loop13    squashfs         2.3M  2.3M     0  100% /snap/gnome-calculator/260
/dev/loop9     squashfs         3.8M  3.8M     0  100% /snap/gnome-system-monitor/57
/dev/loop10    squashfs          13M   13M     0  100% /snap/gnome-characters/103
/dev/loop12    squashfs          90M   90M     0  100% /snap/core/6673
/dev/loop19    squashfs         3.8M  3.8M     0  100% /snap/gnome-system-monitor/51
/dev/loop11    squashfs         2.4M  2.4M     0  100% /snap/gnome-calculator/180
/dev/loop4     squashfs          15M   15M     0  100% /snap/gnome-characters/254
/dev/loop14    squashfs         3.8M  3.8M     0  100% /snap/gnome-system-monitor/77
/dev/loop15    squashfs          54M   54M     0  100% /snap/core18/941
/dev/loop5     squashfs         1.0M  1.0M     0  100% /snap/gnome-logs/61
/dev/loop16    squashfs          91M   91M     0  100% /snap/core/6350
/dev/loop17    squashfs          91M   91M     0  100% /snap/core/6405
/dev/loop6     squashfs          36M   36M     0  100% /snap/gtk-common-themes/1198
/dev/loop18    squashfs         141M  141M     0  100% /snap/gnome-3-26-1604/78
/dev/loop20    squashfs         141M  141M     0  100% /snap/gnome-3-26-1604/82
/dev/loop21    squashfs          13M   13M     0  100% /snap/gnome-characters/139
tmpfs          tmpfs            691M   20K  691M    1% /run/user/121
tmpfs          tmpfs            691M   52K  691M    1% /run/user/1000
gvfsd-fuse     fuse.gvfsd-fuse     0     0     0     - /run/user/1000/gvfs

df命令:

  • 用于显示目前在Linux系统上的文件系统的磁盘使用情况统计。
  • -a:显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统
  • -T:显示文件系统类型
  • -h:人类可阅读的方式展示

13、查看目前机器listen的所有端口?

netstat -tlnp
rita@rita-localhost:~$ netstat -tlnp
(并非所有进程都能被检测到,所有非本用户的进程信息将不会显示,如果想看到所有信息,则必须切换到 root 用户)
激活Internet连接 (仅服务器)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -                   
tcp6       0      0 ::1:631                 :::*                    LISTEN      -  

netstat命令:

  • 用于显示网络状态;利用netstat指令可让你得知整个Linux系统的网络情况
  • -t(tcp):仅显示tcp相关选项
  • -l:仅显示listen(监听)的状态
  • -n:拒绝显示别名,能显示数字的全部转换为数字
  • -p:显示建立相关链接的程序名

14、把一个文件夹打包压缩成.tar.gz的命令,以及解压拆包.tar.gz命令?

压缩:tar zcvf xxx.tar.gz file 
解压:tar zxvf xxx.tar.gz

tar命令:

  • linux下的“打包工具”。
  • -z:调用gzip进行压缩或解压
  • -c:新建打包文件
  • -x:解包
  • -v:显示详细信息,verbose
  • -f :后面指定文件名

15、Xshell工具如果想要实现从服务器上传或下载文件的话,可以在服务器上安装什么包?

lrzsz

16、以/etc/passwd的前五行内容为例,提取用户名?

cat /etc/passwd | head -n 5 | cut -d : -f 1

rita@rita-localhost:~$ cat /etc/passwd | head -n 5 | cut -d : -f 1
root
daemon
bin
sys
sync

cat命令:

  • 用于连接文件并打印到标准输出设备上。
    cut命令:
  • 用于显示每行从开头算起 num1 到 num2 的文字。
  • -d :自定义分隔符,默认为制表符。
  • -f :与-d一起使用,指定显示哪个区域。

17、在linux中find与grep的区别?

  • Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是全体用户。
  • Linux下的find:
    1. 功能:在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大。
    2. 语法:find起始目录寻找条件操作说明,find命令从指定的起始目录开始,递归地搜索各个子目录,查找满足寻找条件的文件并对之采取相关的操作。
  • 简单点说:grep是查找匹配条件的行,find是搜索匹配条件的文件。

如有错误,请指正!

你可能感兴趣的:(Linux)