admin管理员组文章数量:1570461
一.系统命令
1.操作系统
uname -a
2.主机名
#查看主机名
hostname
#查看当前linux的版本
more /etc/RedHat-release
cat /etc/redhat-release
3.linux 目录
- bin (binaries)存放二进制可执行文件
- sbin (super user binaries)存放二进制可执行文件,只有 root 才能访问
- etc (etcetera)存放系统配置文件
- usr (unix shared resources)用于存放共享的系统资源
- home 存放用户文件的根目录
- root 超级用户目录
- dev (devices)用于存放设备文件
- lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
- mnt (mount)系统管理员安装临时文件系统的安装点
- boot 存放用于系统引导时使用的各种文件
- tmp (temporary)用于存放各种临时文件
- var (variable)用于存放运行时需要改变数据的文件
4.清屏
#shell清屏
clear
#windows清屏
cls
#清屏
ctrl+l
5.配置文件
vim /etc/profile/ #修改配置文件
source /etc/profile #设置配置文件生效
6.linux 回退命令
#意思是到上一级目录
cd ..
#返回上两级目录
cd ../..
#意思是返回到上次的目录,类似windows返回
cd -
#意思是回到根目录
cd /
#转到家目录中
cd ~
#转到根目录下的usr目录中———绝对路径
cd /usr
#转到当前目录下的test子目录中——相对路径
cd test
7.修改密码
#修改口令
passwd
#修改一个用户的口令 (只允许root执行)
passwd user1
#设置用户口令的失效期限
chage -E 2005-12-31 user1
8.搜历史
#搜命令
ctrl+r
#自动补全
tab
9.系统配置
命令 | 含义 |
---|---|
cat /proc/cpuinfo | 查看 linux 系统的 CPU 型号、类型以及大小 |
cat /proc/meminfo | 查看 linux 系统内存大小的详细信息,可以查看总内存,剩余内存、可使用内存等信息 |
uname -a | 查看内核/操作系统/CPU 信息 |
head -n 1 /etc/issue | 查看操作系统版本 |
hostname | 查看计算机名 |
lspci -tv | 列出所有 PCI 设备 |
lsusb -tv | 列出所有 USB 设备 |
lsmod | 列出加载的内核模块 |
env | 查看环境变量 |
10.重启
#先关机再重启
shutdown -r
#先关机不重启
shutdown -h
#先关机再关电源
halt
#重启
reboot
11.分区
#查看挂接的分区状态
mount | column -t
#查看所有分区
fdisk -l
#查看所有交换分区
swapon -s
#查看磁盘参数(仅适用于IDE设备)
hdparm -i /dev/hda
#查看启动时IDE设备检测状况
dmesg | grep IDE
12.终端工具
- Tabby
- xshell
- mac
二.用户与群组
1.查看用户
#查看活动用户
w
#查看指定用户信息
id <用户名>
#查看用户登录日志
last
#查看系统所有用户
cut -d: -f1 /etc/passwd
#查看系统所有组
cut -d: -f1 /etc/group
#查看当前用户的计划任务
crontab -l
2.创建用户组
#创建一个新用户组
groupadd group_name
#删除一个用户组
groupdel group_name
#重命名一个用户组
groupmod -n new_group_name old_group_name
3.创建用户
#创建一个属于 “admin” 用户组的用户
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1
#创建一个新用户
useradd user1
#删除一个用户 ( ‘-r’ 排除主目录)
userdel -r user1
#修改用户属性
usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/- nologin user1
三.文件命令
1.创建文件
#touch
touch log.out
#vim
vim log.out
#cp
cp log1.out log.out
#> >>
#> 覆盖原文件
#>> 追加在原文件的末尾
>> log.out
ls > log.out
ps -ef |grep java >> log.out
echo $PATH >>log.out
cat >> log.out
创建文件可以通过以下六个方式来完成。
- >:标准重定向符允许我们创建一个 0KB 的空文件。
- touch:如果文件不存在的话,touch 命令将会创建一个 0KB 的空文件。
- echo:通过一个参数显示文本的某行。
- printf:用于显示在终端给定的文本。
- cat:它串联并打印文件到标准输出。
- vi/vim:Vim 是一个向上兼容 Vi 的文本编辑器。它常用于编辑各种类型的纯文本。
- nano:是一个简小且用户友好的编辑器。它复制了 pico 的外观和优点,但它是自由软件。
- head:用于打印一个文件开头的一部分。
- tail:用于打印一个文件的最后一部分。
- truncate:用于缩小或者扩展文件的尺寸到指定大小。
2.创建文件夹
#创建文件夹
mkdir /home/ds
#创建多级文件夹
mkdir -p project/App
#没有使用“-p”这个参数的情况下
mkdir project project/App
3.删除文件
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
rm -rf /var/log/httpd/access #删除文件夹
rm -f /var/log/httpd/access.log #删除文件
4.删除文件夹
#删除文件夹的命令
rmdir 文件夹名
5.重命名
将 abc 改为 1234
mv abc.txt 1234.txt
6.复制所有文件
#复制所有文件
cp -r /home/packageA/* /home/cp/packageB/
7.复制单个文件
cp 111.txt /target
8.移动所有文件
#移动所有文件
mv /kwan/blog/blog/docs/.vuepress/public/* /kwan/blogImg
9.解压缩
#解压缩
tar -zxvf xxxx.zip
-z或--gzip或--ungzip #通过gzip指令处理备份文件。
-x或--extract或--get #从备份文件中还原文件。
-v或--verbose #显示指令执行过程。
-f<备份文件>或--file=<备份文件> #指定备份文件。
#压缩
tar -cvf 1.tar 1.txt
10.nano 编辑文件
#进入文件
nano 111.txt;
#直接修改文件;
#保存
Ctrl+O
#Enter确认
#退出
Ctrl+X
#Enter确认
11.文件传输
#服务器之间 copy
#两台机器IP分别为:A.104.238.161.75,B.43.224.34.73。
#在A服务器上操作,将B服务器上/home/lk/目录下所有的文件全部复制到本地的/root目录下,
scp -r root@43.224.34.73:/home/lk /root
scp -r root@10.201.0.26:/opt/dct3.0/masternode /opt/dct3.0/
#从本地机器到服务器
scp /Users/qinyingjie/Downloads/8983939_qinyingjie.top_nginx/8983939_qinyingjie.top.key root@120.79.36.53:/etc/nginx/cert
scp /Users/qinyingjie/Downloads/8983939_qinyingjie.top_nginx/8983939_qinyingjie.top.pem root@120.79.36.53:/etc/nginx/cert
12.查看文件大小
Size 表示的是文件大小,这个也是大多数人看到的大小;
Blocks 表示的是物理实际占用空间
stat testfile
13.文件类型
#红色文件:
压缩文件或者包文件
#蓝色文件:
目录
#绿色文件:
可执行文件,可执行的程序
#白色文件:
一般性文件,如文本文件,配置文件,源码文件等
#浅蓝色文件:
链接文件,主要是使用ln命令建立的文件
#红色闪烁:
表示链接的文件有问题
#黄色:
表示设备文件
#灰色:
表示其它文件
#共显示了七列信息,从左至右依次为:
权限、文件数、归属用户、归属群组、文件大小、创建日期、文件名称
14.软连接
#创建软连接
ln -s /usr/local/java/jdk1.8.0_152/bin/java /usr/bin/java
#查看软连接
ls -lrt /usr/bin/java
硬连接:指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
软连接:另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
命令使用
#软链接创建具体用法是:
#-s 是代号(symbolic)的意思。象征的;符号的;使用符号的
ln -s 源文件 软连接地址
ln -s /usr/local/bin/less /bin/less
#正确的删除方式(删除软链接,但不删除实际数据)
rm -rf ./test_chk_ln
#错误的删除方式
rm -rf ./test_chk_ln/ (这样就会把原来test_chk下的内容删除)
第一,ln 命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;
第二,ln 的链接又软链接和硬链接两种
软链接就是 ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间
硬链接 ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
-f : 链结时先将与 dist 同档名的档案删除
-d : 允许系统管理者硬链结自己的目录
-i : 在删除与 dist 同档名的档案时先进行询问
-n : 在进行软连结时,将 dist 视为一般的档案
-s : 进行软链结(symbolic link)
-v : 在连结之前显示其档名
-b : 将在链结时会被覆写或删除的档案进行备份
-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾
-V METHOD : 指定备份的方式
--help : 显示辅助说明
--version : 显示版本
删除软连接
rm -rf 【软链接地址】
上述指令中,软链接地址最后不能含有“/”,当含有“/”时,删除的是软链接目标目录下的资源,而不是软链接本身。
修改软连接
n -snf 【新目标目录】 【软链接地址】
这里修改是指修改软链接的目标目录
15.文件授权
#颜色变绿,可执行
chmod +x main-kill.sh worknode.sh worknode-kill.sh
rwx |数字 权限组合
----+-----------
001 | 1 x 执行
010 | 2 w 写入
100 | 4 r 读取
101 | 5 rx
110 | 6 rw
111 | 7 rwx
#方法一:
chmod 777 file_name
777代表三个维度的权限 创建人、创建组、其他
#方法二: a-all u-用户 g-组 o-其他 +代表给权限 -删权限
chmod a+x a.txt # 所有组添加执行权限
chmod g-w o-w a.txt # 禁止同组和其他用户修改
chmod a+rw a.txt # 所有用户可读可写
- linux 文件权限的描述格式解读
- r 可读权限,w 可写权限,x 可执行权限(也可以用二进制表示 111 110 100 --> 764)
- 第 1 位:文件类型(d 目录,- 普通文件,l 链接文件)
- 第 2-4 位:所属用户权限,用 u(user)表示
- 第 5-7 位:所属组权限,用 g(group)表示
- 第 8-10 位:其他用户权限,用 o(other)表示
- 第 2-10 位:表示所有的权限,用 a(all)表示
16.上传下载
rz、sz 是 Linux/Unix 同Windows进行 ZModem 文件传输的命令行工具。
优点:就是不用再开一个 sftp 工具登录上去上传下载文件。
-
sz(下载):将选定的文件发送(send)到本地机器
-
rz(上传):运行该命令会弹出一个文件选择窗口,从本地选择文件上传到 Linux 服务器
17.查找文件
#知道在home下面
find /home -name test.txt
find -name test.txt
18.列出文件
ls -al
19.文件交互
1.sftp
-
上传 mac 本地文件至 Linux 服务器:put localfiledirectory remotefiledirectory
-
下载 Linux 服务器文件至 mac 本地:get remotefiledirectory localfiledirectory
2.scp
-
上传 mac 本地文件至 Linux 服务器:scp localfiledirectory root@ip:remotefiledirectory
-
下载 Linux 服务器文件至 mac 本地:scp root@ip:remotefiledirectory localfiledirectory
20.文件类型
file start.sh
21.重复 uniq
删除文件中的重复内容。
基础语法
# 去除name.txt重复的行数,并打印到屏幕上
uniq name.txt
# 把去除重复后的文件保存为 uniq_name.txt
uniq name.txt uniq_name.txt
【注意】它只能去除连续重复的行数。
常用参数
-c
统计重复行数,uniq -c name.txt
;-d
只显示重复的行数,uniq -d name.txt
。
22.重定向
把本来要显示在终端的命令结果,输送到别的地方(到文件中或者作为其他命令的输入)。
1.输出重定向 >
>
表示重定向到新的文件, cut -d , -f 1 notes.csv > name.csv
,它表示通过逗号剪切 notes.csv
文件(剪切完有 3 个部分)获取第一个部分,重定向到 name.csv
文件。
我们来看一个具体示例,学习它的使用,假设我们有一个文件 notes.csv
,文件内容如下:
Mark1, 951 / 100, 很不错1;
Mark2, 952 / 100, 很不错2;
Mark3, 953 / 100, 很不错3;
Mark4, 954 / 100, 很不错4;
Mark5, 955 / 100, 很不错5;
Mark6, 956 / 100, 很不错6;
复制代码;
执行命令: cut -d , -f 1 notes.csv > name.csv
最后输出如下内容:
Mark1;
Mark2;
Mark3;
Mark4;
Mark5;
Mark6;
复制代码;
【注意】使用 >
要注意,如果输出的文件不存在它会新建一个,如果输出的文件已经存在,则会覆盖。因此执行这个操作要非常小心,以免覆盖其它重要文件。
2.输出重定向 >>
表示重定向到文件末尾,因此它不会像 >
命令这么危险,它是追加到文件的末尾(当然如果文件不存在,也会被创建)。
再次执行 cut -d , -f 1 notes.csv >> name.csv
,则会把名字追加到 name.csv
里面。
Mark1;
Mark2;
Mark3;
Mark4;
Mark5;
Mark6;
Mark1;
Mark2;
Mark3;
Mark4;
Mark5;
Mark6;
复制代码;
我们平时读的 log
日志文件其实都是用这个命令输出的。
3.输出重定向 2>
标准错误输出
cat not_exist_file.csv > res.txt 2> errors.log
复制代码
- 当我们
cat
一个文件时,会把文件内容打印到屏幕上,这个是标准输出; - 当使用了
> res.txt
时,则不会打印到屏幕,会把标准输出写入文件res.txt
文件中; 2> errors.log
当发生错误时会写入errors.log
文件中。
4.输出重定向 2>>
标准错误输出(追加到文件末尾)同 >>
相似。
5.输出重定向 2>&1
标准输出和标准错误输出都重定向都一个地方
cat not_exist_file.csv > res.txt 2>&1 # 覆盖输出
cat not_exist_file.csv >> res.txt 2>&1 # 追加输出
四.日志查询
1.查询目标前后几行
#打印匹配行的前后 5 行
grep -5 'parttern' inputfile
#打印匹配行的前后 5 行
grep -C 5 'parttern' inputfile
#打印匹配行的后 5 行
grep -A 5 'parttern' inputfile
2.more 可翻页查看
more /etc/man.config
--More--(31%) <== 重点在这一行,光标也会在这里等待你的命令
- 空格键(Space):代表向下翻一页。
- Enter:代表向下滚动一行。
- / 字符串:代表在当前显示的内容中,向下查找 “字符串” 这个关键字。
- :f:立刻显示出文件名与当前的行号。
- q:代表立即退出,不予显示。
- b 或 [ctrl]-b:往回翻,不过该操作只对文件有用。
有时候我们需要搜索should
这个字符串
[wenjie@localhost ~]$ more /etc/man.config
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6d
....(中间省略)....
/should <== 输入了 / 之后,光标会在最下面一行等待
你输入了**/
之后,光标会在最后一行等待,并且等待你的输入,你输入了字符串后并且按下[Enter]
之后,就开始向下查找。如果想重复查找该字符串,可以直接按下n
**即可。
3. cat 最后 10 行
cat -n xxx.log | grep tail -n 10
4.tail 尾部
#从 ILinNum 开始显示到结束的内容
tail -n +iLinNum
#显示最后 iLinNum 行的内容
tail -n iLinNum
#实时查看被添加到一个文件中的内容
tail -f /var/log/messages
5.head 头部
#显示开头 iLinNum 行的内容
head -n iLinNum
#同 head -n iLinNum
head -n +iLinNum
6.less
#类似于 ‘more’ 命令,但是它允许在文件中和正向操作一样的反向操作
less file1
more: 顾名思义显示更多
less: 由于 more 不能后退,就取 more 的反义词 less 加上后退功能
所以 Linux 里流传着这样一句话:“less is more”.总结下 more 和 less 的区别:
- less 可以按键盘上下方向键显示上下内容,more 不能通过上下方向键控制显示
- less 不必读整个文件,加载速度会比 more 更快
- less 退出后 shell 不会留下刚显示的内容,而 more 退出后会在 shell 上留下刚显示的内容
- 由于 more 不能后退
7.反向查找
#从最后一行开始反向查看一个文件的内容
tac file1
8.wc 命令
#统计文本的行数,字数,字符数
wc 1.bxt
#字符数
-m wc -m 1.txt
#文本字数
-W wc -w 1.txt
#文本行数
- wc -l1.txt
五.网络相关
1.ssh
1.ssh 登录
ssh -p 22 root@120.78.213.67
2.curl
#请求信息
curl www.baidu -vl
#带参数请求
curl -d "search=你是谁" "http://gpt.kube.moguit/text"
3.ping
#测试网络连通性
ping www.baidu
4.ifconfig
#查看ip
ifconfig
2.端口号
1.lsof
lsof -i:54321
#根据进程pid查端口
lsof -i | grep pid
#根据端口port查进程
lsof -i:port
2stat
#netstat 网络连接信息,端口等信息
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
#提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
#列出所有端口
netstat -a
#列出所有 tcp 端口
netstat -at
#列出所有 udp 端口
netstat -au
#只显示监听端口
netstat -l
#只列出所有监听 tcp 端口
netstat -lt
#只列出所有监听 udp 端口
netstat -lu
#只列出所有监听 UNIX 端口
netstat -lx
#查看启动的端口方式(神器)
netstat -tunlp
#常用,端口被哪个应用占用
netstat -tunlp | grep 54321
#根据进程pid查端口:
netstat -nap | grep pid
#根据端口port查进程
netstat -nap | grep port
3.中间件端口号
80 HTTP服务器,默认端口号为80/tcp(木马Executor开放此端口)
443 HTTPS(securely transferring web pages)服务器,默认端口号为443/tcp 443/udp
80/8080/3128/8081/9098 HTTP协议代理服务器常用端口号:80/8080/3128/8081/9098
1080 SOCKS代理协议服务器常用端口号:1080
21 FTP(文件传输)协议代理服务器常用端口号:21
23 Telnet(远程登录)协议代理服务器常用端口号:23
23 Telnet(不安全的文本传送),默认端口号为23/tcp(木马Tiny Telnet Server所开放的端口)
21 FTP,默认的端口号为21/tcp(木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口)
69 TFTP(Trivial File Transfer Protocol),默认端口号为69/udp
22 SFTP、SSH(安全登录)、SCP(文件传输)、端口号重定向,默认的端口号为22/tcp
25 SMTP Simple Mail Transfer Protocol(E-mail),默认端口号为25/tcp(木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口)
110 POP3 Post Office Protocol(E-mail),默认端口号为110/tcp
7001 weblogic的默认端口是7001
9080 Webshpere应用程序,默认端口号为9080
9090 webshpere管理工具,默认端口号9090
8080 JBOSS,默认端口号为8080
8080 TOMCAT,默认端口号为8080
3389 WIN2003远程登录,默认端口号为3389
8081 Symantec AV/Filter for MSE,默认端口号为 8081
1521 Oracle 数据库,默认的端口号为1521
1158 ORACLE EMCTL,默认的端口号为1158
8080 Oracle XDB(XML 数据库),默认的端口号为8080
2100 Oracle XDB FTP服务,默认的端口号为2100
1433 SqlServer数据库server,默认的端口号为1433/tcp 1433/udp
1434 SqlServer数据库monitor,默认的端口号为1434/tcp 1434/udp
3306 mySql 默认的端口号为3306
9092 pointbase 默认的端口号为9092
27017 mongodb 默认的端口号为27017
6379 redis 默认的端口号为6379
11211 memcached 默认的端口号为11211
3.防火墙 firewalld
#查看状态:
systemctl status firewalld
#停止:
systemctl disable firewalld
#禁用:
systemctl stop firewalld
#启动:
systemctl start firewalld
#开启端口号
firewall-cmd --add-port=8080/tcp --permanent
#重新加载
firewall-cmd --reload
#查询防火墙是否放行8080
firewall-cmd --query-port=8080/tcp
4.磁盘
1.df
#这条命令再熟悉不过。以更易读的方式显示目前磁盘空间和使用情况。
df -h
#以inode模式来显示磁盘使用情况。
df -i
df -h 和 df -i 的区别是什么?同样是显示磁盘使用情况,为什么显示占用百分比相差甚远?
df -h 的比较好解释,就是查看磁盘容量的使用情况。
至于 df -i,先需要去理解一下 inode
以博客主的个人理解,最简单的说法,inode 包含的信息:
文件的字节数,拥有者 id,组 id,权限,改动时间,链接数,数据 block 的位置。相反是不表示文件大小。
这就是为什么 df -h 和 df -i 显示的结果是不一样的原因。
注意:在 df -h 和 df -i 显示使用率 100%,基本解决方法都是删除文件。
df -h 是去删除比较大无用的文件-----------大文件占用大量的磁盘容量。
df -i 则去删除数量过多的小文件-----------过多的文件占用了大量的 inode 号。
2.du
du 命令是检查硬盘使用情况,统计文件或目录及子目录使用硬盘的空间大小。
#计算当前文件夹的总磁盘占用量,
# -s选项表示计算总和, -h选项表示以恰当的K/M/G单位展示
du -sh *
3.iostat
#磁盘情况查看 每个1s刷新一次 刷新5次
#IO输入输出统计 磁盘活动情况 cpu使用情况
iostat -dx 1 5
4.lsblk
lsblk :这个命令可以看到有几个硬盘,每个硬盘分了几个区
5.fdisk
fdisk -l |grep Disk:查看硬盘大小
fdisk -l |grep Disk
5.内存
1.free
#查看内存使用情况
free
#以M形式查看
free -m
#内存占用情况
free -h
2.前 8 内存
ps aux | head -1;ps aux |grep -v PID |sort -rn -k +4 | head -8
3.top
内存总览
top
4.查看内存
cat /proc/meminfo
grep MemTotal /proc/meminfo
grep MemTotal /proc/meminfo | cut -f2 -d:
free -m |grep "Mem" | awk '{print $2}'
5.释放内存
释放前较好sync
一下,防止丢数据。
sync
清除缓冲的方法
echo 3 > /proc/sys/vm/drop_caches
6.buffer 和 cache
Linux 为了提升读写性能,会消耗一部分内存资源缓存磁盘数据,对于内核来说,buffer 和 cache 其实都属于已经被使用的内存。但当应用程序申请内存时,如果 free 内存不够,内核就会回收 buffer 和 cache 的内存来满足应用程序的请求。这就是稍后要说明的 buffer 和 cache。
cache
是存在于 cpu 和内存之间的缓冲区,存放的是从 disk 上读取到的数据buff
是用于存放要输出到块存储的数据
6.cpu 信息
1.lscpu
lscpu
2.cpuinfo
cat /proc/cpuinfo
3.物理 cpu 个数
cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
4.逻辑 cpu 个数
cat /proc/cpuinfo |grep "processor"|wc -l
5.cpu 主频
cat /proc/cpuinfo |grep MHz|uniq
6.查看 cpu 是 32 位还是 64 位
#查看CPU位数(32 or 64)
getconf LONG_BIT
echo $HOSTTYPE
uname -a
7.查看系统时间
date
uptime
w
who
last
8.进程
1.ps
#查询进程的进程id,以及详细信息
ps ef | grep java
2.kill
#杀进程
kill -9 pid
3.jps
java 进程
jps
9.iostat
iostat 主要用于输出磁盘 IO 和 CPU 的统计信息。
iostat 属于 sysstat 软件包。可以用 yum install sysstat 直接安装。
iostat [选项] [<时间间隔>] [<次数>]
#间隔1秒,总共显示5次
iostat 1 5
#每隔2秒,显示一次设备统计信息.
iostat -d 2
#每隔2秒,显示一次设备统计信息.总共输出3次.
iostat -d 2 3
#每隔2秒显示一次sda, sdb两个设备的扩展统计信息,共输出3次.
iostat -x sda sdb 2 3
#每隔2秒显示一次sda及上面所有分区的统计信息,共输出3次.
iostat -p sda 2 3
#以M为单位显示所有信息
iostat -m
命令参数:
- -c: 显示 CPU 使用情况
- -d: 显示磁盘使用情况
cpu 属性值说明:
- **%user:**CPU 处在用户模式下的时间百分比。
- **%nice:**CPU 处在带 NICE 值的用户模式下的时间百分比。
- **%system:**CPU 处在系统模式下的时间百分比。
- **%iowait:**CPU 等待输入输出完成时间的百分比。
- **%steal:**管理程序维护另一个虚拟处理器时,虚拟 CPU 的无意识等待时间百分比。
- **%idle:**CPU 空闲时间百分比。
备注:如果%iowait 的值过高,表示硬盘存在 I/O 瓶颈,%idle 值高,表示 CPU 较空闲,如果%idle 值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量。%idle 值如果持续低于 10,那么系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU。
disk 属性值说明:
- **device:**磁盘名称
- **tps:**每秒钟发送到的 I/O 请求数.
- **Blk_read/s:**每秒读取的 block 数.
- **Blk_wrtn/s:**每秒写入的 block 数.
- **Blk_read:**读入的 block 总数.
- **Blk_wrtn:**写入的 block 总数.
六.vim 相关
1.删除
命令 | 含义 |
---|---|
x | 删除光标所在处字符 |
nx | 删除光标所在处后的 n 个字符 |
dd | 删除光标所在行。ndd 删除 n 行 |
dG | 删除光标所在行到末尾行的所有内容 |
D | 删除光标所在处到行尾的内容 |
:5,7d | 删除指定范围的行 |
dw | 删除一个单词/光标之后的单词剩余部分 |
d$ | 删至行尾 |
d0 | 删至行首 |
2.复制
命令 | 含义 |
---|---|
np | 复制多遍 |
yw | 光标移到想要被复制词的词首,输入 |
p | 光标移到想到粘贴的位置,输入 |
5yl | 光标移到想要被复制字符的首位置,若想复制 5 个字符输入: |
yy | 复制当前行 |
nyy | 复制多行 (比如 3yy,复制 3 行) |
3.撤销
命令 | 含义 |
---|---|
u | undo,取消上一步操作 |
Ctrl + r | redo,返回到 undo 之前,恢复撤销 |
r | 替换光标所在处的字符 |
R | 从光标所在处开始替换,按 Esc 键结束 |
nu | 撤销 n 次 |
4.翻屏
- Ctrl+f: 向下翻一屏
- Ctrl+b: 向上翻一屏
- Ctrl+d: 向下翻半屏
- Ctrl+u: 向上翻半屏
5.跳转定位
命令 | 含义 |
---|---|
:set nu | 显示行号 |
:set nonu | 取消行号 |
gg | 跳到首行 |
G | 跳到末行 |
:n | 跳到第 n 行 |
0 | 行内跳转,绝对行首 |
$ | 行内跳转,绝对行尾 |
^ | 行内跳转,行首的第一个非空白字符 |
option+ < | 间隔向前移动光标 |
6.修改文本
命令 | 含义 |
---|---|
i | 在光标前插入 |
I | 在光标当前行开始插入 |
a | 在光标后插入 |
A | 在光标当前行末尾插入 |
o | 在光标当前行的下一行插入新行 |
O | 在光标当前行的上一行插入新行 |
:wq | 保存并退出 |
7.常用快捷键
命令 | 含义 |
---|---|
Shift+ zz | 保存退出,与“:wq"作用相同 |
v | 进入字符可视模式 |
V | 进入行可视模式 |
CtrI + v | 进入块可视模式 |
8.注释
一、Visual block
加注释
1、首先按键盘上的ESC进入命令行模式
2、再按Ctrl+V进入VISUAL BLOCK模式
3、利用上下左右键调整需要注释多少行以及行的宽度
4、再按Shift+i或s进入插入模式
5、输入代表注释的符号,比如#
6、再次按ESC键,这时就可完成多行注释 可能需要等上一会,不要着急、
去注释
前三步与加注释相同
1、首先按键盘上的ESC进入命令行模式
2、再按Ctrl+V进入VISUAL BLOCK模式
3、利用上下左右键调整需要去注释多少行以及行的宽度
4、再按d即可完成去注释
二、正则表达式
选中起始、结束行,对行首做替换动作
加注释
23,43s/^/#/g
去注释
23,43s/^#//g
七.实际应用
1.关闭某一进程脚本
#1.grep查询进程关键字
ps -ef|grep redis
#2、用awk输出进程ID
awk '{print $2}'
#3、最后批量kill
xargs kill -9
ps -ef | grep redis | awk '{print $2}' |xargs kill -9
2.判断是否是闰年
#! /bin/bash
## This is a script that determines whether it is a leap year.
## The default object is this year. And you can specify a year
## as parameter input.
if [ $# -gt 1 ]
then
echo ParameterError:This script has one parameter.
elif [ $# -eq 1 ]
then
year=$1
fla=1
else
year=`date +"%Y"`
fla=0
fi
if [ $(($year%4)) -eq 0 ]&&[ $(($year%100)) -ne 0 ]||[ $(($year%400)) -eq 0 ]
then
echo $year is a leap year.
else
echo $year is not a leap year.
fi
3.shell 换行
#删除文件换行并自动yes
yes | rm dct-manager-starter-1.0.0-SNAPSHOT.jar0916-1 \
dct-manager-starter-1.0.0-SNAPSHOT.jar0916-2 \
dct-manager-starter-1.0.0-SNAPSHOT.jar0916-3 \
dct-manager-starter-1.0.0-SNAPSHOT.jar0916-4 \
dct-manager-starter-1.0.0-SNAPSHOT.jar0916-5 \
dct-manager-starter-1.0.0-SNAPSHOT.jar0916-6 \
dct-manager-starter-1.0.0-SNAPSHOT.jar0916-7 \
4.虚拟内存
由于双十一白嫖的阿里云 CentOS 服务器, 配置有点低(2 核 4G)
我使用 vuepress 搭建的自己的博客网站,在部署的时候,使用命令编译安装 npm run docs:dev 出现如下错误
virtual memory exhausted: Cannot allocate memory
make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1
已杀死
当然,仅仅一个前端应用应该是不对造成这么大的内存占用的,因为还部署了其他的一些服务,还不想停掉.可以查一下前 8 内存占用排名,如下图所示,都是不想停掉的
ps aux | head -1;ps aux |grep -v PID |sort -rn -k +4 | head -8
解决办法就是使用 swap 内存
使用命令 free -m
查看当前 swap 内存大小,可以看到下面的结果 swap 行全是 0,表示没有启用 swap 内存。
free -m
total used free shared buff/cache available
Mem: 990 607 288 0 94 265
Swap: 0 0 0
创建 2G 的虚拟内存文件 /opt/swap,分别执行如下三个命令
dd if=/dev/zero of=/opt/swap bs=1024 count=2048000
mkswap /opt/swap
swapon /opt/swap
再次查询 swap 内存,可以看到 swap 已经被分配了 2G
free -m
total used free shared buff/cache available
Mem: 990 609 78 0 302 244
Swap: 1999 0 1999
2G 的虚拟内存启用完成!
版权声明:本文标题:【檀越剑指大厂--linux】Linux汇总 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1725735729a1039697.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论