Linux(Ubuntu)常用命令
显示目录内容命令
ls
: 列出目录内容ls -a
: 查询所有文件和文件夹,包含隐藏的ls -l
: 查询详细列表,简写为ll
- 组合命令:
ls -la
-h
: 友好展示信息,将大小转成KB- 备注:
d
目录,-
普通文件,l
链接,带点的文件/文件夹表示隐藏
- 备注:
CD磁盘命令
cd ../
: 返回上级目录cd ~
: 返回当前用户目录(相当于root用户的桌面,如/root)cd /
: 切换到Linux的根目录cd /root
: 直接切换到任意目录,此为绝对路径,第一个文件夹不加斜杠就是相对路径(不是任意目录啦)cd -
: 切换到上一次放回的目录,只能在两个目录间进行切换,相当于前进后退
文件浏览命令
cat 文件名
: 快捷查看当前文件的内容,只能查看少量信息的文件,过多会截断more 文件名
: 分页显示文件内容{
- 回车,向下n行,需要定义,默认为1行
- 空格,向下翻一页
B
: 向上翻一页q
: 退出
}
less -mN 文件名
: 分页显示文件内容,标注每行的行号,适用于大量数据的查看(后期都是用这个)tail -数字 文件名
: 查看后几行的内容,适用于查看日志输出
复制、删除文件命令
cp 源文件 目标位置
: 复制文件cp demo.java d1/demo_new.java
: 复制并改名cp -r
: 递归复制,如果没加-r
,复制的目录中还有其他文件/文件夹,就会抛出一个警告,omitting directory 文件夹名称
mv
: 移动、重命名文件,(出现提示按y为确定,其他未取消)mv -f
: 强制覆盖重名文件/文件目录mv demo.java hehe.java
: 重命名为hehe.java
rm
: 删除文件/文件夹rm -f
: 暴力删除rm -r
: 递归删除rm -rf
: 暴力递归删除rm -rf *
: 删除当前目录下所有内容rm -rf /*
: 删除Linux根目录下所有内容
记事本命令
find 目录名 -name '字符串名称'
: 查找文件/目录vim
: 相当于记事本,分为以下三种模式:- 一般模式,可以浏览内容,按
i
切换到插入模式,按:
切换到底行模式 - 插入模式,可以编辑文件内容,按
ESC
切换到一般模式 - 底行模式,可以进行强制退出不保存操作
q!
,可以进行保存并退出操作wq
- 一般模式,可以浏览内容,按
grep
: 正则表达式,用于字符串搜索工作,返回行数据grep -i mbzd demo.txt
: 在demo文件中模糊查询mbzd字符串,-i
是指忽略大小写ll | grep ins
: 进行连接操作,连接了ll
命令,可以查询root目录下,文件名包含ins的行数据
压缩/解压命令
tar -zcvf hehe.tar.gz *
: 压缩当前目录所有内容,命令顺序不能打乱tar -zcvf hehe.tar.gz demo.txt
: 将demo.txt文件压缩tar -zxvf hehe.tar.gz
: 解压到当前目录tar -zxvf hehe.tar.gz -C 指定目录地址
: 解压到指定目录
系统命令
UID(User id)
: 用户名称PID(Process id)
: 进程编号,用来杀死进程的ps -ef
: 相当于任务管理器,可以查看所有的进程ps -ef | grep -i vim
kill -9 1823
: 杀死某个进程,1823为PIDping
: 测试和目标的连通性,时间越短,连接越快,会持续不断一直测试,直到按ctrl+c
- 重启:
reboot
- 关机:
halt
setup
: 可以用来进行网络配置,在虚拟机中是全英文,在CRT中是中文,该DHCP时,按空格键这个星号会自动去掉,然后就可以设置静态IP了
文件权限
- 用户权限配置
- 更改文件权限
chmod u=r demo.txt
chmod a=r demo.txt
- 更改文件夹权限,要递归处理,注意是大写的R
chmod -R u=r t1
- 开启该文件的全部权限
chmod 777 mysql_data_bak.sh
chmod 777 *.sh
- 目录授权
chmod +x /root
复制文件夹后,文件夹的权限没有带过来,得用root账号重新赋权
chown -R guest /home/guest
=》注意必须要递归修改,否则只是更改了当前指定目录的用户权限
程序安装/卸载命令
rpm
: 用于管理程序- 程序安装:
rpm -ivh ..
- 程序查看:
rpm -qa ..
- 程序卸载:
rpm -e --nodeps ..
- 程序安装:
yum
: 相当于联网的rpm命令yum install glibc.i686
apt-get
: 相当于联网的rpm命令
基础命令
ifconfig
: 查看网络配置pwd
(print working directory): 显示当前所在目录,返回绝对路径mkdir
(make directory): 创建目录mkdir -p t3/t4
: 父目录不存在的情况下自动生成父目录(递归创建目录,即使上级目录不存在,会按目录层级自动创建目录)rmdir
: 删除空目录touch 文件名
: 创建文件touch + akk.txt
补充
-
Linux通过sed修改文件中某一行的内容:
sed -ie 's/daemonize no/daemonize yes/g' redis.conf
-
在vim的底行模式下,用
:/字符串内容
也可以进行查找
查看系统信息
- 查看CPU信息
cat /proc/cpuinfo | grep "physical id" | uniq | wc -l
: 查看CPU个数cat /proc/cpuinfo | grep "cpu cores" | uniq
: 查看CPU核数cat /proc/cpuinfo | grep 'model name' |uniq
: 查看CPU型号cat /proc/meminfo | grep MemTotal
: 查看内存总数
-
任务管理器
top
-
查看内存占用情况
free
使用du
命令查看磁盘使用空间
--max-depth
: 用于指定深入目录的层数
# 查看当前目录大小
du -sh
du -h --max-depth=0
# 查看当前目录下所有文件夹/文件(只查一级)的大小
du -h --max-depth=1
# 查看子目录大小
du -h
# 查看当前目录下所有文件夹/文件(含递归)的大小
du * -sh
# 查看文件或文件夹的磁盘使用空间
du -h --max-depth=1 /data
# 输出G级别的文件/文件夹 并 排序
du -h --max-depth=1 /var/lib/docker/overlay2/ |grep 'G' |sort -nr
### 查看目前所有文件系统的可用空间及使用情形/查看磁盘空间
df -h
清理服务器缓存
sync
echo 3 > /proc/sys/vm/drop_caches
查看端口占用情况,找到端口对应的应用的ID(列出所有进程对应的端口)
netstat -tnlp
netstat -lntp
查看CPU信息
lscpu
docker文件占用硬盘清理
find /var/lib/docker/containers/ -name "*-json.log"
sudo rm -rf /var/lib/docker/containers/*/*-json.log
切换到root账号(同一个密钥文件,默认是ec2-user账号,需要切到root账号)
sudo su root
Ubuntu上使用unzip解压zip文件,需要先安装下unzip
unzip xx.zip
查看Java进程
jps
修改环境变量,环境变量前面要加 export,否则声明的环境变量无法生效/其他服务引用不了
vim /etc/profile
source /etc/profile
查看CPU型号
lscpu
查看占用CPU、内存高的进程(自带的top、ps以及htop等命令看不到占有内存高的进程)
ps -aux --sort -pmem | less ## 根据内存使用率来排序
ps -aux --sort -pcpu | less ## 根据CPU使用率来升序排序
查看系统日志
cat /var/log/messages
清空日志文件
> ../logs/demo.war.log
调用别的shell脚本
. ./subscript.sh
sh subscript.sh
查看端口占用情况
netstat -ap | grep 6379
netstat -anplt | grep sshd
查看进程
ps aux | grep nacos
ps -ef | grep nacos
telnet查看端口是否生效
telnet 47.103.132.135 443
tracepath 47.103.132.135
查看时间段日志
sed -n ‘/起始时间/,/结束时间/p’ 日志文件
sed -n '/2021-05-21 10:08/,/2021-05-21 10:09/p' nohup.out
指定时间点的日志,并导出到单独文件中
sed -n '/2021-05-21 10:08/,/2021-05-21 10:09/p' nohup.out > nohup0521.out
sed -n '/2022-05-21 10:08/,/2022-05-21 10:20/p' ee.jar.log > ee.jar-0521.log
nginx相关命令,进入到nginx/sbin目录
./nginx v ## 版本号
ps -A | grep nginx ## 查看nginx是否启动,有返回结果则代表已启动
./nginx -s reload ## 重启
除了列出符合行之外,并且列出后NUM行
语法:-A NUM,--after-context=NUM
示例:grep -A 1 panda file
含义:从file中搜寻有panda样式的行,并显示该行的后1行