├── bin -> usr/bin # 用于存放二进制命令
├── boot # 内核及引导系统程序所在的目录
├── dev # 所有设备文件的目录(如磁盘、光驱等)
├── etc # 配置文件默认路径、服务启动命令存放目录
├── home # 用户家目录,root用户为/root
├── lib -> usr/lib # 32位库文件存放目录
├── lib64 -> usr/lib64 # 64位库文件存放目录
├── media # 媒体文件存放目录
├── mnt # 临时挂载设备目录
├── opt # 自定义软件安装存放目录
├── proc # 进程及内核信息存放目录
├── root # Root用户家目录
├── run # 系统运行时产生临时文件,存放目录
├── sbin -> usr/sbin # 系统管理命令存放目录
├── srv # 服务启动之后需要访问的数据目录
├── sys # 系统使用目录
├── tmp # 临时文件目录
├── usr # 系统命令和帮助文件目录
└── var # 存放内容易变的文件的目录
//该用户家目录在 /home/用户名
useradd 用户名
//-d给新创建的用户名指定家目录
useradd -d 指定目录 用户名
useradd -g 指定组名 用户名
//给用户指定密码
passwd 用户名
su 用户名
//用户权限高的切换到权限低的不需要输入密码,反之则需要
//删除用户,但是保留家目录
userdel 用户名
//删除用户及家目录
userdel -rf 用户名
//查看所有创建的用户 [0-1000:系统用户,0为root,1000-65535:可创建]
cat /etc/passwd
//查看当前是哪个用户
whoami
//查看用户是否存在
id 用户名
groupadd 组名
usermod -g 组名 用户名
//创建用户时直接指定组
useradd -g 组名 用户名
gpasswd -d 用户名 组名
groupdel 组名
//强制删除组
groupdel -f 组名
pwd 查看当前工作目录
clear 清除屏幕
cd ~ & cd /root/ 当前用户目录
cd / 根目录
cd - 上一次访问的目录
cd .. 上一级目录
ll 查看当前目录下内容(LL的小写)
mkdir aaa 在当前目录下创建aaa目录,相对路径;
mkdir ./bbb 在当前目录下创建bbb目录,相对路径;
mkdir /ccc 在根目录下创建ccc目录,绝对路径;
mkdir -p img/dog
mv /aaa /bbb 将根目录下的aaa目录,移动到bbb目录下(假如没有bbb目录,则重命名为bbb);
mv bbbb usr/bbb 将当前目录下的bbbb目录,移动到usr目录下,并且修改名称为bbb;
mv bbb usr/aaa 将当前目录下的bbbb目录,移动到usr目录下,并且修改名称为aaa;
cp -r /aaa /bbb 将/目录下的aaa目录复制到/bbb目录下,在/bbb目录下的名称为aaa
cp -r /aaa /bbb/aaa 将/目录下的aa目录复制到/bbb目录下,且修改名为aaa;
cp -r test/img/1.png test/a 将test目录下img目录下的1.png复制到test目录下a目录下
mv 原目录名称 新目录名称 mv img img2
rm -r /bbb 普通删除。会询问你是否删除每一个文件
rmdir img 目录的删除
rm -rf img 强制删除img目录及子目录
find / -name 'b' 查询根目录下(包括子目录),名以b的目录和文件;
find / -name 'b*' 查询根目录下(包括子目录),名以b开头的目录和文件;
find -name a.png 查询当前目录下,名为a.png的目录
touch 1.txt 创建名为1.txt的文件
touch hello.java 创建名为hello.java的文件
rm -r hello .java 删除当前目录下的hello.java文件(每次回询问是否删除y:同意)
rm -f a.txt b.txt 同时删除多个文件
rm -rf hello.java 强制删除当前目录下的hello.java文件
rm -rf ./a* 强制删除当前目录下以a开头的所有文件;
rm -rf ./* 强制删除当前目录下所有文件(慎用);
find . -name "*" -size 145800c -print 打印当前文件夹下指定大小的文件
file a.txt 查看a.txt的文件类型
进入、退出、保存
vi hello.java 进入一般模式
i(按键) 进入插入模式(编辑模式)
ESC(按键) 退出
双击WSE 回到命令模式
:wq! 强制保存退出(shift+:调起输入框)
:wq 保存退出(shift+:调起输入框)
:q! 不保存退出(shift+:调起输入框)(内容有更改)(强制退出,不保留更改内容)
:q 不保存退出(shift+:调起输入框)(没有内容更改)
光标移动
命令 | 光标移动 |
---|---|
l 或右方向键 | 向右移动一个字符 |
h或左方向键 | 向左移动一个字符 |
j或下方向键 | 向下移动一行 |
向下移动一行 | 向上移动一行 |
数字0 | 移动到当前行首 |
^ | 移动到当前行中第一个非空白字符处 |
$ | 移动到当前行尾 |
w | 移动到下一个单词开头或标点符号 |
W | 移动到下一个单词开头,忽略标点符号 |
b | 移动到上一个单词开头或标点符号 |
B | 移动到上一个单词开头,忽略标点符合 |
数字键G | 移动到指定行,1G可以使光标移动到文件的第一行 |
G | 移动到文件的最后一行 |
行尾输入a | 追加内容到行尾 |
A | 将光标移至行尾 |
新建
命令 | 新建内容 |
---|---|
o | 在当前行之下新建一行 |
O | 在当前行之上新建一行 |
删除
命令 | 删除内容 |
---|---|
x | 删除当前字符 |
3x | 删除当前字符和接下来的两个字符 |
dd | 删除当前行 |
5dd | 删除当前行及接下来的4行 |
dW | 删除从光标所在处一直到下一个单词的开头 |
d$ | 删除从光标所在处一直到行尾 |
d0 | 删除从光标所在处一直到行首 |
dG | 删除从当前行一直到文件末尾 |
d20G | 删除从当前行一直到第20行 |
剪切、复制、粘贴
命令 | 删除内容 |
---|---|
yy | 复制当前行 |
5yy | 复制当前行及接下来的4行 |
yW | 复制从光标所在处一直到下一个单词的开头 |
y$ | 复制从光标所在处一直到行尾 |
y0 | 复制从光标所在处一直到行首 |
yG | 复制从当前行一直到文件末尾 |
y20G | 复制从当前行一直到第20行 |
vim hello.java 进入一般模式
i(按键) 进入插入模式(编辑模式)
ESC(按键) 退出
:wq! 强制保存退出(shift+:调起输入框)
:wq 保存退出(shift+:调起输入框)
:q! 不保存退出(shift+:调起输入框)(内容有更改)(强制退出,不保留更改内容)
:q 不保存退出(shift+:调起输入框)(没有内容更改)
set nu 显示行号 [需要先esc退出]
cat hello.java 查看a.java文件的最后一页内容;
more hello.java 从第一页开始查看a.java文件内容,按回车键一行一行进行查看,
按空格键一页一页进行查看,q退出;
less hello.java 从第一页开始查看a.java文件内容,按回车键一行一行的看,
按空格键一页一页的看,支持使用PageDown和PageUp翻页,q退出;
tail -f hello.java 查看a.java文件的后10行内容;
head hello.java 查看a.java文件的前10行内容;
tail -f hello.java 查看a.java文件的后10行内容;
head -n 7 hello.java 查看a.java文件的前7行内容;
tail -n 7 hello.java 查看a.java文件的后7行内容;
总结下more 和 less的区别:
1.less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示
2.less不必读整个文件,加载速度会比more更快
3.less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容.
4.more不能后退.
grep under hello.java 在hello.java文件中搜索under字符串,大小写敏感,显示行;
grep -n under hello.java 在hello.java文件中搜索under字符串,大小写敏感,显示行及行号;
grep -v under hello.java 在hello.java文件中搜索under字符串,大小写敏感,显示没搜索到的行;
grep -i under hello.java 在hello.java文件中搜索under字符串,大小写敏感,显示行;
grep -ni under hello.java 在hello.java文件中搜索under字符串,大小写敏感,显示行及行号;
//一个 > 表示覆盖
//两个 >> 表示追加
echo 'Hello World' > test/hello.java 将Hello World字符串覆盖到test目录下hello.java文件的内容
echo 'Hello World' >> test/hello.java 将Hello World字符串追加到test目录下hello.java文件的内容中
//.tar
tar -cvf ab.tar a.java b.java //将当前目录下a.java、b.java一起打包为ab.tar
tar -cvf all.tar ./* //将当前目录下的所欲文件一起打包压缩成all.tar文件
//.tar.gz
tar -zcvf ab.tar.gz a.java b.java //将当前目录下a.java、b.java一起打包为ab.tar.gz
tar -zcvf start.tar.gz ./* //将当前目录下的所欲文件一起打包压缩成all.tar.gz文件
//.tar
tar -xvf ab.tar //ab.tar压缩包,到当前文件夹下;
tar -xvf all.tar -C usr/local //(C为大写,中间无空格)
//ab.tar压缩包,到/usr/local目录下;
//.tar.gz
tar -zxvf ab.tar.gz //解压start.tar.gz压缩包,到当前文件夹下;
tar -zxvf ab.tar.gz -C usr/local //(C为大写,中间无空格)
//解压ab.tar.gz压缩包,到/usr/local目录下;
//.tar.xz
tar xf node-v12.18.1-linux-x64.tar.xz //解压xz压缩包
//文件压缩
zip a.zip a.txt //将单个文件压缩
zip a.zip a.txt b.txt //将多个单个文件一起压缩
//目录压缩
zip -r imgs.zip imgs/ //将目录进行压缩
zip -r imgslist.zip img1/ img2/ //将多个目录一起压缩为imgslist
unzip imgsli.zip //解压一个zip格式压缩包
unzip -d img imglist.zip //将`english.zip`包,解压到指定目录下`img`
unzip -d /usr/app/com.lydms.english.zip //将`english.zip`包,解压到指定目录下`/usr/app/`
curl https://jdg3h6.lafyun.com:443/bingone
curl -d'qq=2867462354' -X POST https://jdg3h6.lafyun.comqq43/
curl -uri 'https://jdg3h6.lafyun.com:443/qq' -body 'qq=2867463524' -method 'POST'
date 指定格式显示时间: date +%Y:%m:%d 、date +%Y-%m-%d
%H : 小时(00..23)
%M : 分钟(00..59)
%S : 秒(00..61)
%X : 相当于 %H:%M:%S
%d : 日 (01..31)
%m : 月份 (01..12)
%Y : 完整年份 (0000..9999)
%F : 相当于 %Y-%m-%d
date +%Y-%m-%d-%X-%S-%M-%H
date +%Y-%m-%d
date +%X:%S:%M:%H
ps aux
ps -ef
kill -s 9 进程号PID
rpm -ivh xxx.rpm
rpm -evh 软件名称
//简写
rpm -e 软件名称
rpm -qa
//结果分页
rpm -qa | more
rpm -qa | less
//过滤结果
rpm -qa | grep 指定安装包名称
rpm -ql 软件包名称
rpm -qi 软件包名称
rpm -Uvh 软件包
rpm -q 软件包名称
rpm -qR 软件包名称
yum的仓库配置文件位于/etc/yum.reops.d目录下
yum的主配置文件 /etc/yum.conf文件
yum -y install package
yum -y remove package
yum clean packages # 清除缓存目录下的软件包,清空的是(/var/cache/yum)下的缓存
yum clean headers # 清除缓存目录下的 headers
yum clean oldheaders # 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) # 清除缓存目录下的软件包及旧的headers
yum 安装一个软件的时候会把软件包下载到本地指定的目录中,所以为了节省磁盘空间,可以用上述命令清空缓存
yum list # yum list显示所有已经安装和可以安装的程序包
yum list <package_name> # 显示安装包信息rpm,显示installed ,这里是包名,版本和仓库名
yum list repolist all #查询所有的yum仓库
yum info <package_name> #显示安装包rpm的详细信息
yum groupinfo <group_name> #显示程序组group信息
yum search 软件名称 #根据关键字string查找安装包
yum deplist <package_name> # 仅仅 查看程序rpm依赖情况
yum provides */命令 # 查看命令是由哪个包提供的(这个命令很有帮助)
yum check-update #检查可更新的软件有哪些
yum update #更新升级所有软件包
yum update <package_name> #更新指定程序包package,
yum upgrade <package_name> #升级指定程序包package
# 查看防火墙状态
systemctl status firewalld
# 临时关闭防火墙
systemctl stop firewalld
# 永久关闭防火墙
systemctl disable firewalld
# 启动防火墙
systemctl start firewalld
# 重启防火墙
systemctl restart firewalld
# 设置防火墙自启
systemctl enable firewalld
# 防火墙临时放行端口
firewall-cmd --add-port=8080/tcp
# 防火墙永久放行端口
firewall-cmd --permanent --add-port=8080/tcp
# 重载防火墙规则
firewall-cmd --reload
# 防火墙移除放行端口
firewall-cmd --remove-port=8080/tcp
# 查看防火墙放行规则
firewall-cmd --list-all