物华天宝厚土 发表于 2023-11-5 00:12:14

手记系列之七 ----- 分享Linux使用经验

前言

本篇文章主要介绍的关于本人在使用Linux记录笔记的一些使用方法和经验,温馨提示,本文有点长,约1.7w字,几十张图片,建议收藏查看。

一、Linux基础使用

1,服务器查看及时日志

tail -500f catalina.out
2,如何退出logs日志

ctrl+c 或kill -9 pid
3,设置快捷键

临时快捷键设置:执行XShell,输入 : alias 'aa=cd /etc/sysconfig'    , aa: 快捷键名称
永久快捷键设置: 首先输入你想要设置的别名 看这个别名是否存在;或者 输入alias查看设置了那些别名。
输入 gedit .bashrc 或者 vim ~/.bashrc 打开 .bashrc 进入编辑 在#some more ls aliases路径下输入你要设置的别名 例如:alias 'aa=cd /etc/sysconfig'然后保存退出. 然后输入source ~/.bashrc使其生效就可以使用定义的别名进入这个快捷键了。
4,解压压缩文件命令

1, 本目录解压:
执行命令:
tar mysql-5.6.17-linux-glibc2.5-i686.tar.gz
文件后缀为.tar.gz2,解压到其他目录
命令格式:tar -zxvf 【压缩包文件名.tar.gz】 -C【路径】/
例如:
tar -zxvf jdk-7u55-linux-x64.tar.gz -C /usr/local/installed/java
命令格式:tar -jxvf 【压缩包文件名.tar.bz2】 -C【路径】/
例如:
tar -jxvf japan.tar.bz2 -C /tmp/
3,压缩到其他目录
压缩.tar.gz格式到指定目录下
命令格式:tar -zcvf 【目录】/ 【压缩包文件名.tar.gz】【源文件】
例如:
tar -zcvf /tmp/test.tar.gz japan/
5,服务器如何设置快捷启动和快捷停止

启动:CATALINA_BASE=$aaadir
    export CATALINA_BASE
    cd $CATALINA_BASE/bin
    ./startup &
   
停止:CATALINA_BASE=$aaadir
    export CATALINA_BASE
    cd $CATALINA_BASE/bin
    ./shutdown &aaa设置永久快捷键路径名 路径在tomcat bin目录下
6,查看文件内容的命令

cat   由第一行开始显示内容,并将所有内容输出
tac   从最后一行倒序显示内容,并将所有内容输出
more    根据窗口大小,一页一页的现实文件内容
less    和more类似,但其优点可以往前翻页,而且进行可以搜索字符
head    只显示头几行
tail    只显示最后几行
nl      类似于cat -n,显示时输出行号
tailf   类似于tail -f less 加文件名 进行搜索文件,可以使用 shitf+G 到达文件底部,再通过?+关键字的方式来根据关键来搜索信息。
7,设置成为root权限

输入:
sudo passwd root
设置完root 密码之后
输入:
su root
然后输入 设置的root密码
成为root用户

普通用户使用root 权限
输入:
sudo su root
8,测试连接服务器命令

ping 命令用的是icmp协议,现在大多路由器为了避免广播泛滥,都禁用了icmp协议,所以ping不通了~
tracert命令,路由跟踪,格式tracert ip地址
centos、ubuntu安装telnet命令的方法.
yum list telnet*            列出telnet相关的安装包
yum install telnet-server          安装telnet服务
yum install telnet.*         安装telnet客户端
telnet ip 端口
9,更改linux ssh 端口

输入:
vim /etc/ssh/sshd_config
找到port 并解除注释,更改端口

重启 ssh 输入: service sshd restart
重启之后就要重新登录了
10,获取文件权限

输入:chmod -R 777文件名
11,查看磁盘空间

查看整个磁盘空间:df -h
查看当前文件夹磁盘使用情况:du --max-depth=1 -h
查看指定路径的大小:du -sh /root/sw
查看目录使用的磁盘空间:df -h 目录

free -m : 查看内存使用量和交换区使用量
查看磁盘对应的目录
mount

12,服务器重启

立刻重启:reboot
立刻重启:shutdown -r now
过10分钟自动重启:shutdown -r 10
在时间为12:00时候重启:shutdown -r 12:00
取消重启: shutdown -c
13,防火墙关闭

CentOS 6
查询防火墙状态:
# service   iptables status
停止防火墙:
# service   iptables stop
启动防火墙:
# service   iptables start
重启防火墙:
# service   iptables restart
永久关闭防火墙:
# chkconfig   iptables off
永久关闭后启用:
# chkconfig   iptables on
CentOS 7
关闭防火墙
systemctl stop firewalld.service
14,时间设置

date命令将日期设置为2014年6月18日
----   date -s 06/18/14
将时间设置为14点20分50秒
----   date -s 14:20:50
将时间设置为2014年6月18日14点16分30秒(MMDDhhmmYYYY.ss)
----date 0618141614.30
执行tzselect命令-->选择Asia-->选择China-->选择east China - Beijing, Guangdong, Shanghai, etc-->然后输入1。
需重启
不用重启
设置时区
sudo timedatectl set-timezone 'Asia/Shanghai'
date -R
date -s "2020-8-6 18:08:30"
hwclock -w

15,远程拷贝

将本地/etc目录中所有的文件和子目录拷贝到IP为“192.168.60.135”的远程Linux系统的root用户下的/opt目录中:
scp -r /etc root@192.168.60.135:/opt
这里的选项“r”与cp命令的“r”选项含义相同。
如果端口不是22,则用一下命令
scp -r -P 8017 java/ root@192.169.2.206:/opt/
16,主机名称更改

输入
vim /etc/sysconfig/network
将localhost.localdomain修改为hserver1
CentOS7
hostnamectl set-hostname master

17,更改服务器ip

编辑ifcfg-eth0 文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改如下内容:
BOOTPROTO="static" #dhcp改为static   
ONBOOT="yes" #开机启用本配置
IPADDR=192.168.7.106 #静态IP
GATEWAY=192.168.7.1 #默认网关
NETMASK=255.255.255.0 #子网掩码
DNS1=192.168.7.1 #DNS 配置如果子网掩码是255.255.248.0
PREFIX需要改成21
PREFIX=21
重启网络服务:
service network restart
18,查看文件大小

查找大于200M的文件
find / -size +200M -exec ls -lh {} ;
使用
du -h --max-depth=1
/路径查询文件夹占用显示该目录占用空间的总和

参考:
https://blog.csdn.net/qq_16885135/article/details/52224997
19,查看系统版本命令

uname -a # 查看内核/操作系统/CPU信息
查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c lsb_release -a

top查看使用情况
cat /proc/meminfo
若出现该异常: -bash: lsb_release: command not found
则需要安装:
yum install redhat-lsb -y
20,查看端口使用情况

netstat -ntlp查看当前所有tcp端口
netstat -ntlp   | grep 8080查看指定的端口信息
netstat -apn | grep 80   查看包含80端口使用情况,包括进程id
lsof -i:8321 查看该端口是否使用
firewall-cmd --zone=public --add-port=5672/tcp --permanent   # 开放5672端口
firewall-cmd --zone=public --remove-port=5672/tcp --permanent#关闭5672端口
firewall-cmd --reload   # 配置立即生效21,查看进程详细情况

ps -ef | grep ‘进程名称’
ps -aux | grep ‘进程名称’

ps -ef | grep ‘进程id’
ps -aux | grep ‘进程id’

pgrep java | xargs ps -u --pid可以查看关于 Java的相关信息22,释放缓存

命令
sync
echo 3 > /proc/sys/vm/drop_caches
23,查看IO

iotop

或者使用
iostat -x 1 10
该命令表示 每一秒输出一次,总共输出10次
如果没有,使用 yum install sysstat 进行下载
查看磁盘写入速度
time dd if=/dev/zero of=test.file bs=1G count=2 oflag=direct
参考: https://www.cnblogs.com/mauricewei/p/10502539.html
24,搜索文件内容

find . -name * -type f -print | xargs grep "abc123"
表示搜索在所有的文件中搜索包含 abc123 字符的文件。
25,查看机器启动时间、用户数和负载等等情况

uptime

参数说明:

[*]当前时间
[*]系统已运行时间
[*]用户数
[*]最近1分钟、5分钟、15分钟的负载
这个负载数越小越好,如果有3个cpu,那么最后一个小于9的话,就说明正常。大于10就说明负载很严重。
26,查看某个程序打开文件的句柄

lsof -p 20308 | less
查看pid 20308 的使用
lsof -i:8080
查看8080端口的使用情况
27,查看CPU的详细情况

pidstat -urd -进程号
28,查看TCP连接数

一、查看哪些IP连接本机
netstat -an
二、查看TCP连接数
1)统计80端口连接数
netstat -nat|grep -i "80"|wc -l
2)统计httpd协议连接数
ps -ef|grep httpd|wc -l
3)、统计已连接上的,状态为“established
netstat -na|grep ESTABLISHED|wc -l
4)、查出哪个IP地址连接最多,将其封了.
netstat -na|grep ESTABLISHED|awk {print $5}|awk -F: {print
$1}|sort|uniq -c|sort -r +0n
netstat -na|grep SYN|awk {print $5}|awk -F: {print $1}|sort|uniq
-c|sort -r +0n
参考: https://blog.csdn.net/he_jian1/article/details/40787269
29,启动和查看后端挂起的命令

不挂断后台启动的命令:
nohup ./test &
后端挂起的命令查看
jobs
30,统计字符串在文件中出现的次数

grep -o "hello" demo.log | wc -l
-c 只显示有多少行匹配 ,而不具体显示匹配的行
-i 在字符串比较的时候忽略大小写
-n 在每一行前面打印该行在文件中的行数
31,rpm安装离线包

rpm -ivh 包全名

此命令中各选项参数的含义为:
-i:安装(install);
-v:显示更详细的信息(verbose);
-h:打印 #,显示安装进度(hash);如果还有其他安装要求(比如强制安装某软件而不管它是否有依赖性),可以通过以下选项进行调整:
-nodeps:不检测依赖性安装。软件安装时会检测依赖性,确定所需的底层软件是否安装,如果没有安装则会报错。如果不管依赖性,想强制安装,则可以使用这个选项。注意,这样不检测依赖性安装的软件基本上是不能使用的,所以不建议这样做。
-replacefiles:替换文件安装。如果要安装软件包,但是包中的部分文件已经存在,那么在正常安装时会报"某个文件已经存在"的错误,从而导致软件无法安装。使用这个选项可以忽略这个报错而覆盖安装。
-replacepkgs:替换软件包安装。如果软件包已经安装,那么此选项可以把软件包重复安装一遍。
-force:强制安装。不管是否已经安装,都重新安装。也就是 -replacefiles 和 -replacepkgs 的综合。
-test:测试安装。不会实际安装,只是检测一下依赖性。
-prefix:指定安装路径。为安装软件指定安装路径,而不使用默认安装路径。参考:http://c.biancheng.net/view/2872.html
32,下载离线包

找一个有网的linux服务器
输入:
yum install yum-utils
然后输入:
yumdownloader 包名
示例:
参考:https://cloud.tencent.com/developer/article/1425567

33,Linux的权限命令

权限是Linux中的重要概念,每个文件/目录等都具有权限,通过ls -l命令我们可以    查看某个目录下的文件或目录的权限
示例:在随意某个目录下ls -l

第一列的内容的信息解释如下:

文件的类型:
d:代表目录
-:代表文件
l:代表链接(可以认为是window中的快捷方式)
后面的9位分为3组,每3位置一组,分别代表属主的权限,与当前用户同组的    用户的权限,其他用户的权限
r:代表权限是可读,r也可以用数字4表示
w:代表权限是可写,w也可以用数字2表示
x:代表权限是可执行,x也可以用数字1表示属主(user)    属组(group)    其他用户
r    w    x    r    w    x    r    w    x
4    2    1    4    2    1    4    2    1修改文件/目录的权限的命令:chmod
示例:修改/test下的aaa.txt的权限为属主有全部权限,属主所在的组有读写权限,
其他用户只有读的权限
chmod u=rwx,g=rw,o=r aaa.txt

上述示例还可以使用数字表示:
chmod 764 aaa.txt
34,linux定时任务执行

at命令用于在指定时间执行命令。at允许使用一套相当复杂的指定时间的方法。它能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。当然也能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的 词语来指定时间。用户还能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 也能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。指定的日期必须跟在指定时间的后面。上面介绍的都是绝对计时法,其实还能够使用相对计时法,这对于安排不久就要执行的命令是很有好处的。指定格式为:now + count time-units,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,究竟是几天,还是几小时,等等。 更有一种计时方法就是直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。
设置定时任务
at
查看定时任务命令
atq
删除定时任务命令
atrm
ctrl+D 结束

参考: https://www.cnblogs.com/kaituorensheng/p/4494321.html
100,linux命令大全

https://man.linuxde.net

Linux系统使用

安装部署

根据不同的场景可参考如下链接文档进行安装:
https://www.cnblogs.com/xuwujing/p/8044620.html
https://www.cnblogs.com/xuwujing/p/7536720.html
https://www.cnblogs.com/xuwujing/p/7536730.html
2,网络配置

进入系统后,输入ifconfig 查看ip
发现只有lo 本机ip

输入ping 127.0.0.1 可以连接 说明网卡存在
输入ifconfig -a

看到有4个网卡 找到对应网线插入的接口 并加载网卡
ifconfig em1 up    加载网卡(插入的是第一个)
然后配置网卡 输入 sudo vim /etc/network/interfaces

进入之后 先输入 i 编辑 ,编辑完成后 按ESC 退出编辑 然后输入 : 退出命令
输入 wq保存文档
输入cat /etc/network/interfaces 可查看编辑文档
完成后再输入 ping www.baidu.com
就可以ping通了
sudo dhclient em1释放ip
问题: 开机每次都要释放ip才能上网
原因:设置成静态ip后,需要设置DNS
解决办法:在/etc/network/interfaces 添加dns-nameservers8.8.8.8DNS信息
参考:http://blog.csdn.net/meic51/article/details/17321241
2,开启SSH服务

参考:http://www.cnblogs.com/yhyjy/p/3760500.html
先输入: ssh localhost
如果出现 ssh: connect to host localhost port 22: Connection refused
说明没有安装成功
先输入:sudo apt-get install openssh-server安装命令
如果提示:Package openssh-server is not available错误
那就先更新下: 命令: sudo apt-get update
更新完后再来安装 输入:sudo apt-get install openssh-server
卸载命令: sudo apt-get remove openssh-server
安装完后 输入: ps -e|grep ssh
出现sshd说明安装成功了

如果没有启动成功:输入 sudo /etc/init.d/ssh start 或者 service ssh start
远程连接

本地通过xshell连接



连接完成
点击xftp连接 出现 sftp子系统申请拒绝
解决办法
输入:
vim /etc/ssh/sshd_config
将Subsystem sftp /usr/lib/openssh/sftp-serverto
修改为 Subsystem sftp internal-sftp
没有的话就直接添加
添加成功后重启服务 service ssh restart

然后就可以远程连接了

如何没有网络的Linux机器上快速安装软件

方法一、使用RPM方式安装。
rpm -ivh fuse-2.8.3-5.el6.x86_64.rpm --force --nodeps
首先找到相关RPM安装包,然后使用rpm -ivh rpm包名 进行安装。
大部分RPM可在http://rpmfind.net/ 上找到。
方法二、使用另一台可以联网的机器使用RPM方式下载然后在进行传输。
使用 yum-plugin-downloadonly 命令进行下载
1.准备1台和服务器最简安装了同版本Linux的机器,记为机器B,机器B需要能联网。(可以使用虚拟机或者Docker容器)。
2.连接上机器B并使用如下命令:
安装yum-plugin-downloadonly插件

yum install -y yum-plugin-downloadonly
把vsftpd换成你想要的包名

yum install --downloadonly
3.下载的软件在这个路径
/var/cache/yum/x86_64/7/base/packages/

[*]将所有RPM包拷贝到服务器上安装既可。如果安装过程中提示xxx已安装是否需要覆盖,全部选否。
拓展阅读
怎样在 CentOS 里下载 RPM 包及其所有依赖包:https://blog.csdn.net/linuxnews/article/details/53244315
Ubuntu其实也有类似的命令apt-get install -d --reinstall 包名 ,这样既可只下载包,而不安装包了,然后拷贝到无网络的机器上安装既可。
apt一键下载所有依赖的包:https://blog.csdn.net/junbujianwpl/article/details/52811153
参考: http://www.itmuch.com/work/install-software-without-network-in-linux/

nfs(共享文件使用)


Centos7.3版本自带有,6.x版本需要安装
6.x版本安装
yum -y install nfs-utils rpcbind
具体可以参考: https://www.cnblogs.com/liuyisai/p/5992511.html
使用方法
1.首先查看是否安装了nfs
输入一下命令检查:
rpm -qa |grep nfs
rpm -qa | grep rpcbind
出现上述示例图表示ok
首先创建一个公共的共享文件夹,然后给该文件夹授权
mkdir esdata
chmod -R 777 esdata esdata2如果是非root用户使用的话还需赋权
chown -R elastic:elasticesdata esdata2
服务端:
命令参考
vim /etc/exports
添加如下配置:
/opt/esdata *(rw,sync,no_root_squash,no_all_squash)
配置说明:
/opt/esdata :          本地路径,没有必须要先创建
*:                        权限控制,可以配置成可访问的IP地址或IP地址段
rw:                      权限,可以读写
sync:                      同步模式
root_squash:            如果client端以root等级,只能获取到nobody的权限
然后输入一下命令进行启动
service rpcbind start

service nfs start输入一下命令进行查看:
exportfs

showmount -e客户端:
输入以下命令进行共享
mount 192.169.2.232:/opt/esdata /opt/esdata

mount | grep nfsWindows和linux共同使用参考:
https://blog.51cto.com/u_14375810/2427482
权限更改参考:
https://blog.csdn.net/weixin_30610431/article/details/116609222
Nfs配置文件参考:
https://www.cnblogs.com/computer1-2-3/p/5210961.html
一些命令:
<blockquote>cat>>/etc/exports/etc/rc.local

cat>>/etc/exports/etc/exports/etc/exports/etc/exports
页: [1]
查看完整版本: 手记系列之七 ----- 分享Linux使用经验