压缩
gzip //压缩后的文件以.gz结尾;只能压缩文件不能压缩目录
bzip2 //压缩后的文件以.bz2结尾;bzip2是一款比gzip有着更大压缩比的压缩工具,使用格式近似
xz //压缩后的文件以.xz结尾;比bzip2有着更大压缩比的压缩工具,使用格式近似
zip //既归档又压缩的工具。zip可以压缩目录(跨平台)
//gz、bz2、xz都只能压缩文件,zip压缩后不会删除原文件
tar //打包
例:
-zcf test.tar.gz abc 123
-jcf test.tar.bz2 abc 123
-Jcf test.tar.xz abc 123
解压缩
gunzip
例:gunzip /path/to/some_compress_file.gz //解压完成后会删除原文件
例:zcat /path/to/somefile.gz //不解压的情况下查看文本文件的内容
bunzip2
例:bunzip2 /path/to/some_compress_file.bz2 //解压完成后会删除原文件
例:bzcat /path/to/somefile.bz2 //不解压的情况下查看文本文件的内容
unxz
例:xzcat /path/to/somefile.xz //不解压的情况下查看文本文件的内容
unzip
例:unzip filename.zip
xf
例:
-xf test.tar.gz
-xf test.tar.bz2
-xf test.tar.xz
I/O重定向
//覆盖输入
//追加输出
管道符 //前一个命令的输出,作为后一个命令的输入。最后一个命令会在当前shell进程的子shell进程中执行
|
示例:
[root@hhr ~]# echo ‘hello world’ | cut -d ’ ’ -f 2
world
示例:
[root@hhr etc]# cat passwd | grep root
root❌0:0:root:/root:/bin/bash
operator❌11:0:operator:/root:/sbin/nologin
示例:
[root@hhr ~]# grep jjyy 123
jjyy
-
系统账户:为守护类进程获取系统资源而完成权限指派的用户(不需要登录)
-
普通账户:为了完成交互式登录使用的用户
用户
useradd //创建用户
/etc/passwd 用户及其属性信息(名称、uid、基本组id等等)
/etc/shadow 用户密码及其相关属性
-u UID //指定用户uid
-g GID //指定用户所属基本组,可为组名或GID,组必须事先存在
-r //添加一个系统用户
userdel //删除用户
-r
示例:
[root@hhr ~]# userdel -r lisi
usermod //修改用户
-u //UID
示例:
[root@hhr ~]# usermod -u 1005 lisi
-s //修改用户登录shell
示例:
[root@hhr ~]# usermod -s /sbin/nolong lisi
[root@hhr ~]# usermod -s /bin/bash lisi
su //切换用户
su username //非登录式切换,即不会读取目标用户的配置文件
su -username //登录式切换,即会读取目标用户的配置文件。完全切换
id //查看用户信息
-u //查看UID
-g //查看GID
-G //查看Groups
组
groupadd //创建组
/etc/group 组及其属性信息
/etc/gshadow 组密码及其相关属性。在用户执行基本组切换时使用
-g //指定GID
-r //添加一个系统组
groupdel //删除组
passwd //创建密码命令
su - //切换
passwd //管理员
–stdin //从标准输入获取用户密码
示例:
[root@hhr ~]# echo "redhat"|passwd --stdin lisi
-d //删除用户密码
破解密码过程
关机
开机
在内核所在行输入e键
找到linux开头的行后面加上rd.break
ctrl+x
mount -o remount, rw /sysroot
chroot /sysroot
echo " redhat" Ipasswd --stdin root
touch /.autorelabel
exit
exit
vi/vim三种编辑模式
命令模式–>输入模式
i:insert,在当前光标所在字符的前面,转为输入模式
I:大写的i,在当前光标所在行的行首转换为输入模式
a:append,在当前光标所在字符的后面转换为输入模式
A:在当前光标所在行的行尾转换为输入模式
o:open,在当前光标所在行的下方新建一行并转为输入模式
O:大写的o,不是数字0,在当前光标所在行的上方新建一行并转换为输入模式
输入模式–>命令模式
ESC
命令模式–>末行模式
:
末行模式–>命令模式
ESC ESC
文本编辑模式
关闭文件方式:末行模式关闭文件
q //退出
wq //保存并退出
q! //不保存退出
w //保存但不退出
w! //强行保存
wq! //强行保存并退出
x //强行保存并退出
命令模式关闭文件
ZZ //保存退出
命令模式下移动光标的方式
以单词为单位移动
w //移动到下一个单词的词首
e //跳至当前或下一个单词的词尾
b //跳至当前或上一个单词的词首
行间跳转
gg //跳转到第一行
3gg //跳转到第三行
G //跳转到最后一行
命令模式下删除字符
dd //删除当前行
3dd //删除以当前行开始的一共3行
D //删除当前行的内容
命令模式下复制命令
yy //复制当前行
3yy //复制当前行在内的一共3行
命令模式下粘贴命令
p 小写p //粘贴在当前行的下一行
P 大写P //粘贴在当前行的上一行
命令模式下替换命令
R //替换模式,替换多个字符
命令模式下撤销编辑
#u //直接撤销此前的#次编辑操作
ctrl+r //还原最近一次的撤销操作
.(点) //重复前一次编辑操作
可视化模式
v //按字符选取内容
V //按矩形块(行)选取内容
末行模式下查找并替换
s //替换
示例:
1,5 s/abc/def/g 表示把第一行到第五行的所有abc替换为def
末行模式下显示或取消显示行号
set nu //显示行号
set nonu //取消显示行号
ps
ps -le
F //进程标志,说明进程的权限,常见的标志:1:进程可以复制,但是不能执行4:进程使用超级用户权限
S //进程状态。具体的状态和“ps aux”命令中 STAT 状态一致
UID //进程是哪个 UID 用户调用运行的
PID //进程的 ID 号
PPID //父进程的 ID 号
C //该进程的 CPU 使用率,单位是百分比
PRI //进程的优先级,数值越小该进程优先级越高,越快被 CPU 执行;动态值由内核决定
NI //进程的优先级,也是数值越小越早被执行;静态值管理员手动设置,NI值的范围-20到19之间;
//调整已经启动的进程的nice值的命令:renice NI PID:
//在启动时指定nice值的命令:nice -n 数字 COMMAND
ADDR //该进程在内存的哪个位置
SZ //该进程占用多大内存
WCHAN //该进程是否运行。“-”代表正在运行
TTY //该进程由哪个终端产生
TIME //该进程占用 CPU 的运算时间,注意不是系统时间
CMD //产生此进程的命令名
ps -aux
示例:
[root@hhr ~]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.7 179700 14044 ? Ss 15:21 0:02 /usr/lib/systemd/systemd --switched-root --system
root 2 0.0 0.0 0 0 ? S 15:21 0:00 [kthreadd]
pidof //根据进程名查找其PID号
示例:
[root@hhr ~]# pidof sshd | xargs kill -9
示例:
[root@hhr ~]# pidof sshd
| 命令 | 含义 |
| :-- | :-- |
| ?或h | 显示交互模式的帮助 |
| P | 以 CPU 使用率排序,默认就是此项 |
| M | 以内存的使用率排序 |
| N | 以 PID 排序 |
| T | 按照 CPU 的累积运算时间排序,也就是用 TIME+项排序 |
| k | 按照 PID 号,给予某个进程一个信号。一般用于
终止某个进程,信号 9是强制终止的信号 |
| r | 按照 PID 号,给某个进程重设优先级(Nice)值 |
| q | 退出 top |
| 信号代号 | 信号名称 | 含义 |
| — | — | — |
| 1 | SIGHUP | 该信号让进程立即关闭,然后重新读取配置文件之后重启 |
| 2 | SIGINT | 程序终止信号,用于终止前台进程。相当于输出 ctrl+c 快捷键 |
| 9 | SIGKILL | 用来立即结束程序的运行.本信号不能被阻塞、处理和忽略。
一般用于强制终止进程(常用) |
| 15 | SIGTERM | 正常结束进程的信号,kill 命令的默认信号。有时如果进程已经发生问题,
这个信号是无法正常终止进程的,我们才会尝试SIGKILL 信号,也就是信号 9 |
| 18 | SIGCONT | 该信号可以让暂停的进程恢复执行。本信号不能被阻断 |
| 19 | SIGSTOP | 该信号可以暂停前台进程,
相当于输入 ctrl+z 快捷键。本信号不能被阻断 |
chmod 基础
例:
chmod u|g|o|a +|-|= rwx test
例:
[root@hhr ~]# chmod u+r test
[root@hhr ~]# ll
总用量 4
-rw-r–r–. 1 root lisi 0 7月 7 20:07 test
例:
[root@hhr ~]# chmod o+r test
[root@hhr ~]# ll
总用量 4
-rw-r–r–. 1 root root 40 7月 7 16:52 123
-rw-r–r–. 1 root lisi 0 7月 7 20:07 test
例:
[root@hhr ~]# chmod o=rw test
[root@hhr ~]# ll
总用量 4
-rw-r–r–. 1 root root 40 7月 7 16:52 123
-rw-r–rw-. 1 root lisi 0 7月 7 20:07 test
chmod number test
例:
[root@hhr ~]# chmod 777 test
[root@hhr ~]# ll
总用量 4
-rw-r–r–. 1 root root 40 7月 7 16:52 123
-rwxrwxrwx. 1 root lisi 0 7月 7 20:07 test
chmod 特殊权限
字母表示含义
u //用户
g //组
o //其它
a //所有人
特殊权限的字母表示方式
suid 应用程序 4 //运行程序时,这个程序启动的进程的属主是程序文件自身的属主,而不是发起者为属主
例:
[root@hhr ~]# chmod u+s file
[root@hhr ~]# ll
总用量 0
-rwSr–r–. 1 root root 0 7月 7 20:16 file
-rw-r–r–. 1 root lisi 0 7月 7 20:07 test
[root@hhr ~]# chmod u-s file
[root@hhr ~]# ll
总用量 0
-rw-r–r–. 1 root root 0 7月 7 20:16 file
-rw-r–r–. 1 root lisi 0 7月 7 20:07 test
<如果file本身原来就有执行权限,则SUID显示为s,否则显示为S>
sgid 目录 2 //运行程序时,这个程序启动的进程的属组是程序文件自身的属组,而不是启动者所属的基本组
//一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件或目录,其所属的组为此设定了SGID的目录的属组
例:
[root@hhr ~]# chmod g+s file
[root@hhr ~]# ll
总用量 0
-rw-r-Sr–. 1 root root 0 7月 7 20:16 file
-rw-r–r–. 1 root lisi 0 7月 7 20:07 test
[root@hhr ~]# chmod g-s file
[root@hhr ~]# ll
总用量 0
-rw-r–r–. 1 root root 0 7月 7 20:16 file
-rw-r–r–. 1 root lisi 0 7月 7 20:07 test
<如果file本身原来就有执行权限,则SGID显示为s,否则显示为S>
stucky 目录 1 //公共目录,每个人都能创建文件,删除自己的文件,但是不能删除别人创建的文件
例:
[root@hhr ~]# chmod o+t file
[root@hhr ~]# ll
总用量 0
-rw-r–r-T. 1 root root 0 7月 7 20:16 file
-rw-r–r–. 1 root lisi 0 7月 7 20:07 test
[root@hhr ~]# chmod o-t file
[root@hhr ~]# ll
总用量 0
-rw-r–r–. 1 root root 0 7月 7 20:16 file
-rw-r–r–. 1 root lisi 0 7月 7 20:07 test
<如果file本身原来就有执行权限,则Sticky显示为t,否则显示为T>
修改属主
例:
[root@hhr ~]# chown .lisi test
[root@hhr ~]# ll
总用量 4
-rw-r–r–. 1 root lisi 0 7月 7 20:07 test
例:
[root@hhr ~]# chown :hehe test
例:
[root@hhr ~]# chown lisi test
例:
[root@hhr ~]# chown root:hehe test
特殊权限的数字表示方式
4755 //有SUID,文件权限为755
2755 //有SGID,文件权限为755
1755 //有Sticky,文件权限为755
<这里前面的4、2、1分别表示SUID、SGID、Sticky>
acl访问控制 setfacl
-m //设定权限条目
例:
[root@hhr ~]# setfacl -m u:lisi:rwx test
[root@hhr ~]# ll
总用量 0
-rw-r–r–. 1 root root 0 7月 7 20:16 file
-rw-rwxr–+ 1 root lisi 0 7月 7 20:07 test
例:
[root@hhr ~]# setfacl -m g:lisi:rw file
如果要为某个目录设定默认的访问控制列表,只需要设定时在u或g前面加上d即可
例:
[root@hhr ~]# setfacl -m d:u:lisi:rw file
-x //删除权限条目
例:
[root@hhr ~]# setfacl -x u:lisi test
例:
[root@hhr ~]# setfacl -x g:lisi file
权限委派 sudo
添加 (vim编辑器里添加)
[root@hhr ~]# visudo
Allow root to run any commands anywhere
lisi ALL=(ALL) /sbin/useradd, /sbin/userdel
删除 (vim编辑器里添加)
[root@hhr ~]# visudo
Allow root to run any commands anywhere
lisi ALL=(ALL) /sbin/useradd, /sbin/userdel
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
最后
分享一套我整理的面试干货,这份文档结合了我多年的面试官经验,站在面试官的角度来告诉你,面试官提的那些问题他最想听到你给他的回答是什么,分享出来帮助那些对前途感到迷茫的朋友。
面试经验技巧篇
- 经验技巧1 如何巧妙地回答面试官的问题
- 经验技巧2 如何回答技术性的问题
- 经验技巧3 如何回答非技术性问题
- 经验技巧4 如何回答快速估算类问题
- 经验技巧5 如何回答算法设计问题
- 经验技巧6 如何回答系统设计题
- 经验技巧7 如何解决求职中的时间冲突问题
- 经验技巧8 如果面试问题曾经遇见过,是否要告知面试官
- 经验技巧9 在被企业拒绝后是否可以再申请
- 经验技巧10 如何应对自己不会回答的问题
- 经验技巧11 如何应对面试官的“激将法”语言
- 经验技巧12 如何处理与面试官持不同观点这个问题
- 经验技巧13 什么是职场暗语
面试真题篇
- 真题详解1 某知名互联网下载服务提供商软件工程师笔试题
- 真题详解2 某知名社交平台软件工程师笔试题
- 真题详解3 某知名安全软件服务提供商软件工程师笔试题
- 真题详解4 某知名互联网金融企业软件工程师笔试题
- 真题详解5 某知名搜索引擎提供商软件工程师笔试题
- 真题详解6 某初创公司软件工程师笔试题
- 真题详解7 某知名游戏软件开发公司软件工程师笔试题
- 真题详解8 某知名电子商务公司软件工程师笔试题
- 真题详解9 某顶级生活消费类网站软件工程师笔试题
- 真题详解10 某知名门户网站软件工程师笔试题
- 真题详解11 某知名互联网金融企业软件工程师笔试题
- 真题详解12 国内某知名网络设备提供商软件工程师笔试题
- 真题详解13 国内某顶级手机制造商软件工程师笔试题
- 真题详解14 某顶级大数据综合服务提供商软件工程师笔试题
- 真题详解15 某著名社交类上市公司软件工程师笔试题
- 真题详解16 某知名互联网公司软件工程师笔试题
- 真题详解17 某知名网络安全公司校园招聘技术类笔试题
- 真题详解18 某知名互联网游戏公司校园招聘运维开发岗笔试题
资料整理不易,点个关注再走吧
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
务提供商软件工程师笔试题
- 真题详解2 某知名社交平台软件工程师笔试题
- 真题详解3 某知名安全软件服务提供商软件工程师笔试题
- 真题详解4 某知名互联网金融企业软件工程师笔试题
- 真题详解5 某知名搜索引擎提供商软件工程师笔试题
- 真题详解6 某初创公司软件工程师笔试题
- 真题详解7 某知名游戏软件开发公司软件工程师笔试题
- 真题详解8 某知名电子商务公司软件工程师笔试题
- 真题详解9 某顶级生活消费类网站软件工程师笔试题
- 真题详解10 某知名门户网站软件工程师笔试题
- 真题详解11 某知名互联网金融企业软件工程师笔试题
- 真题详解12 国内某知名网络设备提供商软件工程师笔试题
- 真题详解13 国内某顶级手机制造商软件工程师笔试题
- 真题详解14 某顶级大数据综合服务提供商软件工程师笔试题
- 真题详解15 某著名社交类上市公司软件工程师笔试题
- 真题详解16 某知名互联网公司软件工程师笔试题
- 真题详解17 某知名网络安全公司校园招聘技术类笔试题
- 真题详解18 某知名互联网游戏公司校园招聘运维开发岗笔试题
[外链图片转存中…(img-9V9QAamS-1712441038975)]
资料整理不易,点个关注再走吧
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算