1.Linux如何查看端口
使用lsof(list open files)命令,lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000。
或者使用netstat命令
netstat -tunlp | grep 端口号,用于查看指定的端口号的进程情况,如查看8000端口的情况,netstat -tunlp | grep 8000。
还有更好的命令ss(Socket Statistics)
ss命令可以用来获取socket统计信息, 默认不添加选项情况 ss输出所有建立的连接(不包含监听的端口),包括 tcp, udp, and unix socket 三种类型的连接,所以ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
2.查看系统内存使用量
可以使用free命令 free -h 也可以使用 top -l 1 | head -n 10 | grep PhysMem
free命令可用于显示系统中可用的物理内存,交换区内存(Swap)以及内核使用的buffer
3.删除文件中空行的方法
songguojundeMBP:tmp songguojun$ cat data.txt
aaaa bbb cccc ccc dd
eeee
songguojundeMBP:tmp songguojun$ grep . data.txt
aaaa
bbb
cccc ccc
dd
eeee
[songguojundeMBP:tmp songguojun$ sed -i "" '/^\s*$/d' data.txt unix系统中-i指令后面要多加一个“”空格
或者用tr命令
[root@oa-dev tmp]# cat test.txt
aaa bbb ccc ccc
[root@oa-dev tmp]# cat test.txt | tr -s '\n'
aaa
bbb
ccc ccc
4.显示文件中匹配关键字行及其行号
songguojundeMBP:tmp songguojun$ sed -n "/dd/p" filename
5.根据进程pid查看进程运行时间情况
songguojundeMBP:tmp songguojun$ ps -p -o pid,time,lstart,etime
PID TIME STARTED ELAPSED
:01.47 一 / :: ::
lstart是启动时间 etime是运行总时间
6.显示用户用户登录主机的时间信息
ac命令
songguojundeMBP:/ songguojun$ ac -d 显示每天的总的连接时间
Jan total -0.44
Feb total 24.00
Feb total 23.98
Feb total 206.79
Feb total 23.90
Feb total 23.77
Feb total 23.99
[songguojundeMBP:/ songguojun$ ac -p 显示每个用户的总的连接时间
root 0.01
songguojun 423.88
total 423.89
7.使用Ctrl+R 快捷搜索历史命令
8.显示随机几位数
songguojundeMBP:~ songguojun$ echo $RANDOM |cksum |cut -c -8 随机显示8位数字
9.计算目录中的目录和文件数
songguojundeMBP:tmp songguojun$ ls -l | wc -l 注意 wc -l 是按newline计算的 也就是\n
字符
10.显示文件类型
songguojundeMBP:tmp songguojun$ file -b index.html
HTML document, UTF- Unicode text, with CRLF line terminators
11.删除目录下的多个文件
songguojundeMBP:tmp songguojun$ rm -I aa/bb/*
rm: remove 16 arguments? y 提示
12.curl获取头部信息
curl -I -v https://www.baidu.com
13.查看IO调度算法
Linux IO 调度算法主要有:1.Noop算法
2.Deadline算法。一般运行有mysql系统的服务器建议采用该调度算法。
3.CFQ算法(Completely Fair Queuing)
4.Anticipatory算法。
[root@192.17.5.85:/tmp]$ date "+%Y-%m-%d %H:%M:%S"
2019-07-03 00:02:39
15.crontab定时任务
crontab -l
crontab -u :指定某个用户的cron服务
crontab -l :列出某个用户的cron服务的详细内容
crontab -r :删除某个用户的cron服务
crontab -e :编辑某个用户的cron服务
另外一个常用crontab 命令参数是 crontab -e用来编辑配置 /etc/crontab文件,会检查我们配置的脚本语法,然后被写到 /var/spool/cron 目录下,生成一个和用户名一致的文件。
[root@172.16.0.99:~]$ ls /var/spool/cron/
httpd root
上面两个文件打开就是我们编辑的定时脚本。
16.查看磁盘是SSD还是HDD
[root@172.16.0.0:~]$ cat /sys/block/sr0/queue/rotational # sr0是我的硬盘设备名称
1
返回值
1
:表示磁盘可旋转,就是HDD了。
0
:表示磁盘不可以旋转,就有可能是SSD。
17.根据进程名称获取Pid,pgrep命令
[root@172.16.0.55:~]$ ps aux | grep nginx
root 0.0 0.0 ? Ss : nginx: master process /opt/app/nginx/sbin/nginx
httpd 0.0 0.0 ? S Jul01 : nginx: worker process
httpd 0.0 0.0 ? S Jul01 : nginx: worker process
root 0.0 0.0 pts/ S+ : : grep --color=auto nginx
[root@172.16.0.55:~]$ pgrep -lo nginx
nginx
pgrep命令参数:
-l 列出程序名和进程ID。
-o 进程起始的ID。
-n 进程终止的ID。
18.查看当前linux系统的字符集
[root@172.16.0.55:~]$ locale 这个命令也可以设置,注意不要和locate命令弄混了,虽然很像
LANG=zh_CN.UTF-
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_ALL=
查看下系统目前所支持的语言
[root@oa-dev /]# locale -a
C
en_AG
en_AG.utf8
en_AU
en_AU.iso88591
en_AU.utf8
en_BW
en_BW.iso88591
en_BW.utf8
en_CA
en_CA.iso88591
en_CA.utf8
en_DK
en_DK.iso88591
en_DK.utf8
en_GB
19.查看操作系统信息
songguojundeMBP:~ songguojun$ uname -s #显示操作系统名称
Darwin
songguojundeMBP:~ songguojun$ uname -m #显示计算机类型(指令集)
x86_64
songguojundeMBP:~ songguojun$ uname -r #显示操作系统的发行编号
18.6.
songguojundeMBP:~ songguojun$ uname -a #显示系统信息
Darwin songguojundeMBP.lan 18.6. Darwin Kernel Version 18.6.: Thu Apr :: PDT ; root:xnu-4903.261.~/RELEASE_X86_64 x86_64
20.查看文件元信息
songguojundeMBP:~ songguojun$ stat composer.json
File: `composer.json'
Size: Blocks: IO Block: regular file #文件大小 占用block大小 块大小 文件类型
Device: fc05h/64517d Inode: Links: 1 #文件所在设备号,分别以十六进制和十进制显示 文件inode节点号 硬链接数
Access: (/-rw-r--r--) Uid: ( / httpd) Gid: ( / httpd) #访问权限
Access: -- ::02.318000069 + #最后访问时间
Modify: -- ::47.928000066 + #最后修改时间
Change: -- ::02.705000069 +0800 #最后状态改变时间
使用 -f 参数显示的是该文件所在文件系统的信息
songguojundeMBP:~ songguojun$ stat -f composer.json
File: "composer.json"
ID: 2de589c3222201b8 Namelen: Type: ext2/ext3
Block size: Fundamental block size:
Blocks: Total: Free: Available:
Inodes: Total: Free:
21.删除文件中部分内容
通过tail命令,将文件尾部的n行数据重定向到新的文件中
tail -n access.log > access.log.bak
然后删除旧的文件,将新的文件修改为原名字
rm access.log
mv access.log.bak access.log
22.查看apache加载了哪些模块
[root@oa-dev apache2]# bin/apachectl -t -D DUMP_MODULES
Loaded Modules:
core_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
authz_host_module (shared)
include_module (shared)
deflate_module (shared)
log_config_module (shared)
logio_module (shared)
expires_module (shared)
headers_module (shared)
setenvif_module (shared)
mime_module (shared)
status_module (shared)
dir_module (shared)
alias_module (shared)
rewrite_module (shared)
php5_module (shared)
ssl_module (shared)
Syntax OK
23.查看系统时区
[root@oa-dev /]# date -R
Sun, 01 Dec 2019 06:17:34 +0800
上面命令输出了国家的东八区(+0800), 而 -0800则表示为西八区,是美国旧金山所在的时区
24.Linux系统时区相关
Linux系统时间是硬件时间结合时区,硬件时间是 UTC 标准时间,本地时间需要结合时区计算出来。
相关文件有两个
/etc/localtime #描述本机时间
/etc/timezone #描述本机所属的时区
[root@oa-dev /]# file /etc/localtime
/etc/localtime: symbolic link to `../usr/share/zoneinfo/Asia/Shanghai' #这个是链接到这里的文件
[root@oa-dev /]# cat ../usr/share/zoneinfo/Asia/Shanghai #注意这个文件不能直接查看 有乱码
TZif2 �Y^�� �p�ӽ ����|@ �;>�Ӌ{��B��^
CST(China Shanghai Time,东八区时间)
UTC(Coordinated Universal Time,标准时间)
25.显示当前的各种用户进程限制
songguojundeMacBook-Pro:~ songguojun$ ulimit -a
core file size (blocks, -c)
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n)
pipe size ( bytes, -p)
stack size (kbytes, -s)
cpu time (seconds, -t) unlimited
max user processes (-u)
virtual memory (kbytes, -v) unlimited
26.同时复制多个文件
cp /home/usr/dir/{file1,file2,file3,file4} /home/usr/destination/
27. sysctl命令
sysctl命令用于运行时查看及配置内核参数,这些参数位于/proc/sys目录下。比如查看swap分区swappiness大小,sysctl -a | grep swappiness。