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 ' ' aaa bbb ccc ccc
4.显示文件中匹配关键字行及其行号
songguojundeMBP:tmp songguojun$ sed -n "/dd/p" filename
5.根据进程pid查看进程运行时间情况
songguojundeMBP:tmp songguojun$ ps -p 39 -o pid,time,lstart,etime PID TIME STARTED ELAPSED 39 0:01.47 一 2/18 19:32:04 2019 06:21:44
lstart是启动时间 etime是运行总时间
6.显示用户用户登录主机的时间信息
ac命令
songguojundeMBP:/ songguojun$ ac -d 显示每天的总的连接时间 Jan 31 total -0.44 Feb 1 total 24.00 Feb 2 total 23.98 Feb 11 total 206.79 Feb 12 total 23.90 Feb 13 total 23.77 Feb 14 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 1-8 随机显示8位数字 17488784
9.计算目录中的目录和文件数
songguojundeMBP:tmp songguojun$ ls -l | wc -l 注意 wc -l 是按newline计算的 也就是
字符
10.显示文件类型
songguojundeMBP:tmp songguojun$ file -b index.html
HTML document, UTF-8 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 10135 0.0 0.0 46768 728 ? Ss 2018 0:00 nginx: master process /opt/app/nginx/sbin/nginx httpd 10172 0.0 0.0 47084 1944 ? S Jul01 0:05 nginx: worker process httpd 10173 0.0 0.0 47084 2152 ? S Jul01 0:07 nginx: worker process root 13696 0.0 0.0 103260 896 pts/8 S+ 11:21 0:00 grep --color=auto nginx [root@172.16.0.55:~]$ pgrep -lo nginx 10135 nginx
pgrep命令参数:
-l 列出程序名和进程ID。
-o 进程起始的ID。
-n 进程终止的ID。
18.查看当前linux系统的字符集
[root@172.16.0.55:~]$ locale 这个命令也可以设置,注意不要和locate命令弄混了,虽然很像 LANG=zh_CN.UTF-8 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.0 songguojundeMBP:~ songguojun$ uname -a #显示系统信息 Darwin songguojundeMBP.lan 18.6.0 Darwin Kernel Version 18.6.0: Thu Apr 25 23:16:27 PDT 2019; root:xnu-4903.261.4~2/RELEASE_X86_64 x86_64
20.查看文件元信息
songguojundeMBP:~ songguojun$ stat composer.json File: `composer.json' Size: 1620 Blocks: 8 IO Block: 4096 regular file #文件大小 占用block大小 块大小 文件类型 Device: fc05h/64517d Inode: 3804444 Links: 1 #文件所在设备号,分别以十六进制和十进制显示 文件inode节点号 硬链接数
Access: (0644/-rw-r--r--) Uid: ( 2000/ httpd) Gid: ( 2000/ httpd) #访问权限
Access: 2019-07-12 16:41:02.318000069 +0800 #最后访问时间
Modify: 2019-07-11 14:30:47.928000066 +0800 #最后修改时间
Change: 2019-07-12 17:29:02.705000069 +0800 #最后状态改变时间
使用 -f 参数显示的是该文件所在文件系统的信息
songguojundeMBP:~ songguojun$ stat -f composer.json File: "composer.json" ID: 2de589c3222201b8 Namelen: 255 Type: ext2/ext3 Block size: 4096 Fundamental block size: 4096 Blocks: Total: 44451124 Free: 21790504 Available: 19532499 Inodes: Total: 11296768 Free: 10505992
21.删除文件中部分内容
通过tail命令,将文件尾部的n行数据重定向到新的文件中 tail -n 100 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) 0 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) 256 pipe size (512 bytes, -p) 1 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 709 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。