|
前言
本篇文章主要介绍的关于本人在使用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
2,解压到其他目录
命令格式: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
查询防火墙状态:
[root@localhost ~]# service iptables status
停止防火墙:
[root@localhost ~]# service iptables stop
启动防火墙:
[root@localhost ~]# service iptables start
重启防火墙:
[root@localhost ~]# service iptables restart
永久关闭防火墙:
[root@localhost ~]# chkconfig iptables off
永久关闭后启用:
[root@localhost ~]# 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 &
后端挂起的命令查看
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-nameservers 8.8.8.8 DNS信息
参考: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:elastic esdata 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
复制代码 输入一下命令进行查看:客户端:
输入以下命令进行共享- mount 192.169.2.232:/opt/esdata /opt/esdata
- mount | grep nfs
复制代码 Windows和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 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|