Linux常用命令速查手册
- 1.1 写在前面的话
- 1.2 Linux 常用命令速查手册
- 1.2.1 mkdir创建一个文件夹
- 1.2.2 cd进入一个文件夹
- 1.2.3 rmdir删除一个文件夹
- 1.2.4 rm 删除一个文件
- 1.2.5 ls 显示当前路径下的所有文件家和文件列表
- 1.2.6 touch 创建一个空白文件
- 1.2.7 pwd查看当前所在完整路径
- 1.2.8 cd .. 返回上一级目录
- 1.2.9 cp 复制一个文件
- 1.2.10 mv移动一个文件
- 1.2.11 mv 重命名文件和目录
- 1.2.12 cat 查看一个文本文件所有内容
- 1.2.13 vi 命令查看或编辑并编辑一个文本文件内容
- 1.2.14 head -n查看一个文本文件前n行内容
- 1.2.15 tail -n 查看一个文本文件倒数n行内容
- 1.2.16 tail -f -n 查看滚动日志
- 1.2.17 在Linux中的vi编辑模式中查找关键字
- 1.2.18 find 查找一个文件
- 1.2.19 创建一个快捷方式
- 1.2.20 gzip压缩一个文件
- 1.2.21 gunzip或tar 解压缩一个压缩包
- 1.2.22 使用yum安装软件
- 1.2.23 查看历史命令
- 1.2.24 Tab 热键
- 1.2.25 上下翻页键
- 1.2.26 查看操作系统位数
- 1.2.27 查看操作系统版本信息
- 1.2.28 ll 查看文件读写权限
- 1.2.29 source 更新环境变量配置
- 1.2.30 vi 查看或修改环境变量配置
- 1.2.31 jps 查看当前程序进程
- 1.2.32 kill 结束一个进程,pid 为进程ID
- 1.2.33 nohup 后台运行一个jar
- 1.2.34 设置防火墙开放端口
- 1.2.35 重新加载防火墙配置
- 1.2.36 关闭防火墙
- 1.2.37 查看开放了哪些UDP类型的端口?
- 1.2.38 查看开放了那些TCP类型的端口?
- 1.2.39 检查某一端口是否开放
- 1.2.40 查看Open SSL 版本
- 1.2.41 看下是否有防火墙规则限制
- 1.2.42 开放8089 TCP端口
- 1.2.43 给脚本添加可执行文件权限
- 1.2.44 安装ifconfig网络库
- 1.2.55 使用du命令查看指定目录的使用情况
- 1.2.56 free 查看内存使用情况
- 1.2.57 compgen -u 查看linux用户列表
- 1.2.58 vi查看文件显示行号命令:set number
- 1.2.59 更新yum包管理器依赖
- 1.2.60 修复只读文件系统无法修改
- 1.2.61 rz命令
- 1.2.62 清空log文件内容不重启
- 1.3 Linux常用命令总结
- 1.4 参考资料
1.1 写在前面的话
当我们登陆Linux系统后,第一眼看到的内容是:
这就是linux的命令提示符.那么它有什么含义呢?
csdn
: 表示当前的登陆用户,这里是使用csdn账户登陆.@
: 分隔符.edu
: 主机短名称~
: 当前所在目录$
: 命令提示符.如果是root用户提示符是#;Linux用这个符号标识登陆用户的权限.
1.2 Linux 常用命令速查手册
1.2.1 mkdir创建一个文件夹
- 使用mkdir指令可以在命令行模式下创建一个名为
web
的目录
#mkdir是创建目录的命令
mkdir web
1.2.2 cd进入一个文件夹
cd 指令可以在命令行模式下切换进入到一个文件夹下
cd web
1.2.3 rmdir删除一个文件夹
rmdir 指令可以在命令行模式下删除一个文件夹
# rmdir删除指目录
rmdir web
1.2.4 rm 删除一个文件
rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变.
注意:
使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。
rm -rf edu.txt
-d
:直接把欲删除的目录的硬连接数据删除成0,删除该目录;-f
:强制删除文件或目录;-i
:删除已有文件或目录之前先询问用户;-r或-R
:递归处理,将指定目录下的所有文件与子目录一并处理;--preserve-root
:不对根目录进行递归操作;-v
:显示指令的详细执行过程。
- 删除当前目录下除隐含文件外的所有文件和子目录
rm -r *
应注意,这样做是非常危险的!
1.2.5 ls 显示当前路径下的所有文件家和文件列表
- ls指令可以在命令行模式下显示当前路径下的所有文件家和文件列表。
ls
1.2.6 touch 创建一个空白文件
touch 指令可以在命令行模式下创建一个文本文件
#touch 用来创建一个空白文件,但如果文件已存在,则会更新时间.
touch edu.txt
1.2.7 pwd查看当前所在完整路径
pwd 指令可以在命令行模式下列出当前路径下的绝对路径。
# 在对 Linux 目录操作过程中,可以使用 pwd 命令查看当前所处目录的绝对路径:
pwd
执行效果示例如下:
[root@iZ8vb11868fcocr28hrspaZ nginx]# pwd
/usr/local/nginx
[root@iZ8vb11868fcocr28hrspaZ nginx]#
1.2.8 cd … 返回上一级目录
- cd 指令可以在命令行模式下以相对路径的方式退回到上一个文件夹下
cd ..
1.2.9 cp 复制一个文件
cp 指令可以在命令行模式下复制一个文件
# cp 是用于复制的命令
# 常用格式: cp 源文件 目标文件
cp -r Code Code2
1.2.10 mv移动一个文件
mv 指令可以在命令行模式下移动一个文件到一个新的目录
mv index.txt Code2/
1.2.11 mv 重命名文件和目录
mv 除了移动,还可以用来重命名文件和目录.
目标:重命名Code2为documents
mv Code2 documents
1.2.12 cat 查看一个文本文件所有内容
查看passwd.txt 文本文件的全部内容。
cat passwd.txt
1.2.13 vi 命令查看或编辑并编辑一个文本文件内容
- 打开password.txt 文本文件
vi password.txt
- 按下键盘上的
ESC
,然后按下键盘上的i
进入修改模式 - 修改完成后,再次按下键盘上的
ESC
- 退出编辑并保存更改输入如下命令
:wq
:q!
不保存文件,强制退出vi命令
:w
保存文件,不退出vi命令
:wq
保存文件,退出vi命令
:wq!
(保存编辑强制退出)
1.2.14 head -n查看一个文本文件前n行内容
查看头11条内容
head -n 11 passwd.txt
1.2.15 tail -n 查看一个文本文件倒数n行内容
查看倒数11条内容
tail -n 11 passwd.txt
1.2.16 tail -f -n 查看滚动日志
关于 tail 命令,不得不提的还有它一个很牛的参数 -f,这个参数可以实现不停地读取某个文件的内容并显示。这可以让我们动态查看日志,达到实时监视的目的。在实际使用中,我们经常用到.
tail -f -n 11 myApp.log
1.2.17 在Linux中的vi编辑模式中查找关键字
- 进入vi中,先按下
ESC
跳转成命令输入模式- 输入斜杠
/
,这时屏幕会跳转到底部,输入栏出现/
- 输入你需要查找的关键字,回车
- 如果要继续查找关键字,输入n.
- 向前查找,输入N(大写)
1.2.18 find 查找一个文件
find 指令在命令行模式下 查找/etc/目录下的名为passwd文件
#find 搜索范围 选项 目标文件
find /etc/ -name passwd
find 除了可以根据名字查找还可以根据用户名和文件大小查找
#find 目录 -user 指定用户名
find /etc -user root
#find 目录 -size 文件大小
find /etc -size 1M
1.2.19 创建一个快捷方式
在windwos系统里我们经常会使用一个功能,在桌面给某个常用文件夹创建一个快捷方式,以便我们快速找到文件。那么在Linux下如果实现呢?
目标:在/home目录下创建一个软连接 myusr 连接到/usr目录
# ln -s 原文件或目录 软链接名
ln -s /usr /home/csdn/myusr
1.2.20 gzip压缩一个文件
- 使用gzip压缩edu.txt文件
gzip edu.txt
- 然后可以ls验证下。 会发现多了一个edu.txt.gz的压缩文件。
Tips: gzip只能将文件压缩成*.gz格式。如果要压缩成zip等格式。还有别的命令。感兴趣的同学可以自己拓展下。
1.2.21 gunzip或tar 解压缩一个压缩包
方法一:
gunzip edu.txt.gz
最后用ls验证下,发现edu.txt又回来了。
方法二:
tar zxvf test.tar.gz
- x : 从 tar 包中把文件专提取出来
- z : 表示 tar 包是属被 gzip 压缩过的,所以解压时需要用 gunzip 解压
- v : 显示详细信息
- f xxx.tar.gz : 指定被处理的文件是 xxx.tar.gz
1.2.22 使用yum安装软件
在Linux系统中安装软件有一般有两种方法。一种是编译安装,一种是在线安装。编译安装难度较大,在后面讲到升级python时再详细了解练习。这一节我们来讲讲如何在线安装软件。
目标:安装tree软件并在屏幕输出家目录的树形图。
步骤一:安装tree
sudo yum install tree
- sudo 可以理解为暂时拥有管理员权限。权限会在进阶课程详细说明。
- yum 是centos下的安装工具
步骤二:在屏幕输出家目录的树形图
tree /home
Tips:
为了让同学们直接体验生产操作。我们实验系统选择的是Centos7.yum是内置的软件包管理器。在Ubuntu下应该使有apt-get install.
1.2.23 查看历史命令
如果使用了clear 命令清楚了刚才执行的命令,此时想要看刚才都输入了什么命令可以通过如下指令查看:
history
1.2.24 Tab 热键
[tab]热键是Linux bash shell中最最常用的键了。它具有补全命令和文件补全的功能。
比如我们早练习过的tail命令。我只需要在终端输入:tai + [按下tab] 就直动补全了。
1.2.25 上下翻页键
上下翻页键可以直接回显最近执行的一条命令。如果我们想重复执行上一个命令直接按上键就可以啦。
1.2.26 查看操作系统位数
uname -a
1.2.27 查看操作系统版本信息
centos 7 下可能不管用
cat /etc/centos-release
注意: Redhat Linux 命令则是
bash cat /etc/issue
1.2.28 ll 查看文件读写权限
ll test.txt
1.2.29 source 更新环境变量配置
source /etc/profile
1.2.30 vi 查看或修改环境变量配置
vi /etc/profile
1.2.31 jps 查看当前程序进程
jps -l
1.2.32 kill 结束一个进程,pid 为进程ID
kill -9 pid
1.2.33 nohup 后台运行一个jar
nohup java -jar xxxx.jar &
多学一招:
- 如果是windows 命令则是
javaw -jar xxxx.jar
- 如果要防止jenkins 执行的命令被杀掉,可以输入如下命令:
JENKINS_NODE_COOKIE=dontKillMe nohup java -jar xxx.jar &
1.2.34 设置防火墙开放端口
firewall-cmd --permanent --add-port=80/tcp --zone=public
1.2.35 重新加载防火墙配置
firewall-cmd --reload
1.2.36 关闭防火墙
systemctl stop firewalld.service
1.2.37 查看开放了哪些UDP类型的端口?
netstat -nupl
1.2.38 查看开放了那些TCP类型的端口?
netstat -ntpl
1.2.39 检查某一端口是否开放
lsof -i:3306
如果是windows,命令则是
netstat -ano|findstr 3306
1.2.40 查看Open SSL 版本
openssl version -a
1.2.41 看下是否有防火墙规则限制
iptables -L -n
1.2.42 开放8089 TCP端口
iptables 防火墙如果配置了,导致端口无法访问,那么可以通过如下命令开启。
iptables -I INPUT -p tcp --dport 8089 -j ACCEPT
1.2.43 给脚本添加可执行文件权限
chmod u+x *.sh
1.2.44 安装ifconfig网络库
centos7 最小化安装会提示找不到ifconfig 命令,ifconfig 是一个查看网卡信息的linux命令,位于net-tools 工具包下。
centos7 安装软件通过包管理器yum来操作的因此解决方法是通过输入如下命令:
yum install net-tools
出现提示输入y, 然后等安装完成后就可以正确执行了。
安装成功后就可以执行命令查看网卡绑定的IP了
ifconfig
最上面是IPV4 地址,第二行是IPV6 地址
1.2.55 使用du命令查看指定目录的使用情况
Tips:查看文件夹或文件占用磁盘大小
查看当前文件夹下所有文件大小(包括子文件夹)
du -sh
查看指定文件占用磁盘大小情况:
du -sh a.log
查看文件夹占用磁盘大小情况:
du -sh /opt
查找磁盘占用比较大的情况
du -sh /opt/* | sort -nr
1.2.56 free 查看内存使用情况
如果想查看服务器内存使用情况可以使用free命令
free -h
free
命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。
执行结果如下所示
[root@iZ8vb11868fcocr28hrspbZ ~]# free -h
total used free shared buff/cache available
Mem: 31G 28G 1.2G 304M 1.7G 2.2G
Swap: 0B 0B 0B
[root@iZ8vb11868fcocr28hrspbZ ~]#
- Mem:表示物理内存统计,如果机器剩余内存非常小,一般小于总内存的20%,则判断为系统物理内存不够
- Swap: 表示硬盘上交换分区的使用情况,如剩余空间较小,需要留意当前系统内存使用情况及负载,当Swap的used值大于0时,则表示操作系统物理内存不够,已经开始使用硬盘内存了。
- 第1行数据31G表示物理内存总量;
- 28G表示总计分配给缓存(包含buffers与cache)使用的数量,但其中可能部分缓存并未实际使用;
- 1.2G表示未被分配的内存;shared表示共享内存;
- 1.7G表示系统分配但未被使用的buffers数量;
- 2.2G表示系统分配但未被使用的available数量
查看应用程序所占用的内存,CPU情况
ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less
执行结果如下所示:
%MEM %CPU RSS VSZ COMMAND
7.5 15.3 2483508 12177880 java -jar /opt/app/leapfrog-video/test/api/single-leapfrog-video-mobile-api-1.4.0.jar --spring.profiles.active=test
7.4 12.5 2458048 12164396 java -jar /opt/app/leapfrog-video/uat/api/single-leapfrog-video-mobile-api-1.4.0.jar --spring.profiles.active=uat
7.3 13.1 2405052 12184024 java -jar /opt/app/leapfrog-video/prod/api/single-leapfrog-video-mobile-api-1.4.0.jar --spring.profiles.active=prod
7.3 12.8 2410948 12164396 java -jar /opt/app/leapfrog-video/dev/api/single-leapfrog-video-mobile-api-1.4.0.jar --spring.profiles.active=dev
5.7 0.2 1871944 12163084 java -jar /opt/app/leapfrog-video/prod/api/video-auto-thumb-up-service-0.0.1-RELEASE.jar --spring.profiles.active=prod
注意: 如果想退出查看,请按键盘
q
退出
1.2.57 compgen -u 查看linux用户列表
虽然查看Linux用户列表有很多种方法,但我这里只分享最好记的那一种:
compgen -u
执行成功后会显示如下内容:
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
systemd-network
dbus
polkitd
sshd
postfix
chrony
ntp
tcpdump
nscd
mysql
redis
jenkins
es_user
epmd
rabbitmq
1.2.58 vi查看文件显示行号命令:set number
有时候修改一些配置文件报错会显示xxx 行配置报错,通过vi 命令查看配置文件默认不显示行号的,为了快速找到配置文件错误地方,我们可以开启vi 查看命令显示行号命令。
:set number
1.2.59 更新yum包管理器依赖
yum update -y
1.2.60 修复只读文件系统无法修改
有时候会遇到无法写文件、新建保存文件的情况,提示Readonly file system,输入如下命令即可解决:
mount -o remount rw /
1.2.61 rz命令
rz 命令可以实现文件传输,需要安装如下软件包:
yum install lrzsz
1.2.62 清空log文件内容不重启
进入/usr/local/nginx/log/access.log
所在目录,执行如下命令即可:
cat /dev/null > access.log
此操作会使用一个空的文件替换当前access.log 文件。