前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux常用命令基础及进阶V1

Linux常用命令基础及进阶V1

原创
作者头像
杜莱
修改2021-05-19 11:49:36
1.3K0
修改2021-05-19 11:49:36
举报

更新版本

5月18日版本V1
  1. 一些常用命令,可以完成Linux基本操作了,V1未整理版。
  2. 所使用的IP是随便写的
  3. 文章基于腾讯云服务器Linux CentOS7.9
  4. 服务器搭建从零开始参考我的文章Linux从零开始环境搭建及学习V1

基础必备命令

命令构成

命令的构成:Command Name、Options、Arguments、Extras 四个部分,很多情况下后面三部分都是可省略的

例如 rm -rf ab.txt

基本知识
1. /   根目录 cd / 返回最顶层磁盘位置 /
2. ~  当前用户目录 cd ~ 返回用户目录 /Users/dulane
3. .   当前目录 cd ./music 所在位置 /Users/dulane/music
4. ../ 父级目录 cd ../ 所在位置 /Users/dulane
基本命令
1. cd 跳转(cd 有后面必须有空格)
2. cd / 跳转根目录 /
3. cd ~ 跳转用户目录 /Users/dulane
4. cd music 跳转到music文件下 /Users/dulane/music 
5. cd ../ 返回上级目录 /Users/dulane

6. ls 当前目录下的文件
7. ls -a 当前目录下的文件包括隐藏文件
8. ls -la 当前目录下文件包括详细信息

9.  pwd 显示当前文件位置 /Users/dulane
10. history 显示所以操作的历史命令   532  history
11. clear 清空终端

12. mkdir command 创建名字为command的文件夹 
13. rmdir command 删除空command文件夹
14. mv command command1 重命名或者移动文件
15. rm ab.txt 删除文件ab.txt
16. cp ab.txt abc.txt 复制文件ab.txt为abc.txt
17. touch aa.txt 新建aa.txt
18. open ab.txt 打开ab.txt
19. vi aa.txt 进入编辑模式 
20. ssh root@ip 连接远程服务器
21. sh build.sh 执行build命令
22. which java java的安装位置 /usr/bin/java

23. tab 键补全信息 
24. control+c 结束内容回到命令行
vim基本命令
vi filename
i 插入模式
esc 推出插入模式
:w 保存当前编辑的文件但不退出
:w newfile 文件另存为
:w! filename 当前文件的内容替换filename中的原有内容
:q 退出,文件为保存时会提示
:q! 强制退出,不保存文件
:wq 先保存文件,然后退出到shell
/ 搜索 n下一个 N 上一个
dd 删除一行
yy 复制一行 
nyy 复制向下n行
p 粘贴

进阶命令

查看系统有几种shell
cat /etc/shells
安装zsh
sudo yum install zsh
安装oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
查找rpm安装的软件
rpm -qa | grep mysql
rpm -qa | grep oh-my-zsh
#自己make install安装的可能查不到
rpm -qa | grep ntpdate
rpm -qa | grep mysql
为 root 用户设置 zsh 为系统默认 shell:
chsh -s /bin/zsh root
如果你要重新恢复到 bash:
chsh -s /bin/bash root
更新sudo
yum update sudo

grep命令

# .表示当前目录。
#在多级目录中对文本进行递归搜索
grep "git" . -r -n
查看试图暴力破解你的主机ssh的坏蛋们:
grep "Failed password for invalid user" /var/log/secure | awk '{print $13}' | sort | uniq -c | sort -nr
把这些 ip 拉黑
cat /var/log/secure |  grep "Failed password for invalid user" | awk '{print $13}' | sort | uniq -c | sort -n | tail -10 |awk '{print "sshd:"$2":deny"}' >> /etc/hosts.allow 

tail -20 /etc/hosts.allow 
 
新建一个用户
useradd lane
设置密码
passwd aaa
禁止root用户登陆
vi /etc/ssh/sshd_config

查找#PermitRootLogin yes,
将前面的#去掉,“Yes”改为“No”,并保存文件。
重启ssh服务
systemctl restart sshd.service
禁用密码登陆开启
>>> vim /etc/ssh/sshd_config #修改 PasswordAuthentication yes/no
>>> systemctl restart sshd.service
免密登陆
#本地生成 rsa
ssh-keygen
#上传本地公钥至服务器,此处要输入root 密码
ssh-copy-id    -i    ~/.ssh/id_rsa.pub    root@xxx.xxx.xxx.xxx
#免密登录
ssh  root@xxx.xxx.xxx.xxx
#[密钥登录](https://goodgoodstudy.blog.csdn.net/article/details/113694654)
上传文件到远程服务器
 scp nginx-1.17.8.tar root@81.68.211.190:/root 
从远程复制文件到本地
#复制文件到本地
scp root@81.68.211.190:/root/software/nginx-1.17.8.tar /users/dulane/linux
#复制文件夹到本地
scp -r root@81.68.211.190:/root/software/nginx-1.17.8.tar /users/dulane/linux
移动文件位置
 mv notion.html staticData/static
解压tar软件包
tar -xvf nginx-1.17.8.tar
tar -xvf apache-tomcat-8.5.50.tar
查找占用的端口号
lsof -i:8080
结束进程
 kill 9483
 kill -9 pid
安装Nginx
- 安装Nginx依赖,pcre、openssl、gcc、zlib(推荐使⽤yum源⾃动安装)

  `yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel`

- 解包Nginx软件包:`tar -xvf nginx-1.17.8.tar`

- 进⼊解压之后的⽬录 nginx-1.17.8

- cd nginx-1.17.8

- 命令⾏执⾏./configure

- 命令⾏执⾏ make

- 命令⾏执⾏ make install,完毕之后在/usr/local/下会产⽣⼀个nginx⽬录
Nginx主要的命令
# 启动
/usr/local/nginx/sbin/ ./nginx
# 停止 Nginx
/usr/local/nginx/sbin/ ./nginx -s stop
# 重新载入配置文件
/usr/local/nginx/sbin/ ./nginx -s reload
# 重启 Nginx
/usr/local/nginx/sbin/ ./nginx -s reopen
安装jdk

方式一:

#默认安装位置为usr/lib/jvm
yum install -y java-11-openjdk.x86_64

方式二:

#解压
tar -zxvf jdk-8u211-linux-x64.tar.gz
#配置环境变量
vim /etc/profile
export JAVA_HOME=/DATA/jdk/jdk1.8.0_211 
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
#刷新环境变量
source /etc/profile 
#查询
java -version
启动tomcat
 ./sh startup.sh
 
 sh startup.sh
复制一个tomcat
cp -r apache-tomcat-8.5.50 apache-tomcat-8.5.50-1
vim复制光标所在的那一行
yy
复制光标所在的向下n行
nyy
向下向上粘贴
p为将已经复制的数据在光标下一行粘贴
P为将已经复制的数据在光标上一行粘贴
vim删除
删除一行:dd
删除以当前字符开始的一行字符:d$ 
删除以当前行开始的n行:ndd 
删除以当前字符开始的一个字:dw 
删除以当前字符开始的n个字:ndw 
vim查找
# 在文件中查找内容为word的字符串(向下查找)
/mode
# 在文件中查找内容为word的字符串(向上查找)
?mode
#查找下一个
n
#查找上一个
N
#关闭其它文件中高亮
set nohlsearch
压缩zip文件
zip -r abc123.zip abc 123.txt 
解压zip文件
#解压到同名文件夹下
unzip fileName.zip 
#解压到别名文件夹下的同名文件夹下
unzip mydata.zip -d mydatabak 
压缩tar包
tar cvf newFileName.tar fileName 
重命名文件
mv aa.txt bb.txt
删除文件或者空目录
rm aa.txt
rm aa
删除非空的文件
rm -r MyDocuments/
rm -rf MyDocuments/
查找文件
# 查找在当前目录及子目录查找 notion.html
find . -name "notion.html"
# 模糊查找
find . -name "noti*.html"
# 查找在当前目录及子目录查找 .html文件且名字包含notion
find . -name "*.html" | grep notion
# 当前目录搜索所有文件,文件内容 包含 “140.206.111.111” 的内容
find . -type f -name "*" | xargs grep "140.206.111.111"
# 在/usr目录及其子目录下查找名字包含notion的普通文件 
find /usr -type f -name "*notion*.html"

find . -type 类型参数
#f 普通文件
#d 目录
显示文件夹下前10个文件名称
ls -l | head -n 5
查看文件内容前10行
head -n 10 README.md
查看文件内容后几行
tail -n 10 README.md
查看文件内容
more -dc README.md
#按 Space 键:显示文本的下一屏内容。
#按 Enter 键:只显示文本的下一行内容。
#按H键:显示帮助屏,该屏上有相关的帮助信息。
#按B键:显示上一屏内容。
#按Q键:退出rnore命令。
#-d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
#-c:不进行滚屏操作。每次刷新这个屏幕;
less -e README.md
#不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。
#用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。
#要退出less程序,应按Q键。
#-e:文件内容显示完毕后,自动退出;
tcp 抓包命令
sudo tcpdump -nn
修改时间
#查看服务器的时间
date
#修改时间
date -s '08:00:00'
#同步最新时间
ntpdate -u ntp.api.bz
查看本机公网IP
curl ifconfig.me  
查看本机公网IP 格式化
curl ipinfo.io/json
查看本机内网IP
ifconfig
添加权限
chmod u+x *.sh
Redis 允许外网访问
#获取是否被保护
config get protected-mode
#关闭保护,运行外网访问
config set protected-mode no
config set protected-mode yes
redis远程连接
redis-cli -h 81.68.211.190  -p  6379
更新yum
#内容很多
yum update
安装telnet
 #列出telnet相关的安装包
 yum list telnet*   
 #安装telnet服务
 yum install telnet-server 
#安装telnet客户端
 yum install telnet.*            
zookeeper常用命令
#进⼊bin⽬录,启动zk服务
#启动 
./zkServer.sh start
#停⽌
./zkServer.sh stop
#查看状态
./zkServer.sh status
查看运行的jar项目
ps aux|grep nginx-login-project-0.0.1-SNAPSHOT.jar
查看占用的端口号
lsof -i:8080
lsof -i:6379
 
查看cpu使用
#查看cpu信息:
top
查看IP流量信息
lsof -i | grep 118.223.30.156
查看端口是否开放
nc -zv 192.168.56.10 80 22 21
#也可以指定端口扫描的范围:
nc -zv 192.168.56.10 20-80
查看防火墙某一端口是否开放
firewall-cmd --zone=public --query-port=80/tcp
#查看所有开放的端口
firewall-cmd --permanent --zone=public --list-ports
查看防火墙状态
firewall-cmd --state  
开启防火墙
#开启
systemctl start firewalld 
#关闭
systemctl stop firewalld 
添加需要开放的端口
#在running 状态下,向firewall 添加需要开放的端口
#永久的添加该端口。去掉--permanent则表示临时。
firewall-cmd --permanent --zone=public --add-port=8080/tcp  
关闭开放的端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
加载防火墙配置,使得修改有效
firewall-cmd --reload  
netstat查看运行的端口
netstat -tunlp
#查看mysqld
netstat -anpt | grep mysql
找出运行在指定端口的进程:
netstat -an | grep ':80'
通过端口找进程ID
netstat -anp|grep 80 | grep LISTEN|awk '{printf $7}'|cut -d/ -f1
查看连接某服务端口最多的的IP地址
netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 更新版本
  • 基础必备命令
  • 进阶命令
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档