Shell 笔记

lsof命令

lsof: list open files, 即列出当前系统打开的文件

在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口

格式

1
lsof [参数][文件]

可以使用该命令查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP).

命令输出的信息意义:

COMMAND:进程的名称

PID:进程标识符

PPID:父进程标识符(需要指定-R参数)

USER:进程所有者

PGID:进程所属组

获取字符串长度和数组长度

字符串str长度

1
${#str}

获取数组array长度

1
${#array[@]}

数组array的所有元素
1
${array[*]}

查看gcc版本、更改gcc版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 查看gcc版本
gcc --version

#查看所有已安装的gcc的版本
ls /usr/bin/gcc* -l

#安装gcc其他版本,比如4.9
sudo apt-get install gcc-4.9 g++-4.9

# 删除原来的gcc软链接
sudo rm /usr/bin/gcc

# 生成新的gcc软链接
sudo ln -s /usr/bin/gcc-4.9 usr/bin/gcc

# 修改默认使用的gcc版本
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 40
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 40

# 重新gcc -v查看会发现已经链接到新的gcc版本了
gcc -v