【linux】工作中linux系统常用命令操作整理

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】工作中linux系统常用命令操作整理

Linux IO 调度算法主要有:1.Noop算法

2.Deadline算法。一般运行有mysql系统的服务器建议采用该调度算法。

                 3.CFQ算法(Completely Fair Queuing)

            4.Anticipatory算法。

 
 14.查看系统时间

[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。

   

上一篇:vim与sublime,程序员的屠龙刀和倚天剑


下一篇:Ubuntu安装pyenv实现python多版本控制