Git & Linux
Git
资源下载技巧:所有需要外网下载的资源可以去找对应的国内镜像进行下载。
基本 Linux 命令学习
cd 改变目录
cd .. 回退上一级
cd 进入默认目录
pwd 显示当前目录路径
ls 列出目录中所有文件
ll 列出目录中所有文件,包含详细信息
touch 新建文件
rm 删除文件
mkdir 新建目录
rm -r 删除文件夹
mv xx文件 xx目录 移动文件到指定文件夹
reset 重新初始化终端/清屏
clear 清屏
history 查看命令历史
help 帮助
exit 退出
# 注释
工作区域
工作区、暂存区、本地仓库、远程仓库
本地仓库搭建
在目录下鼠标右键:Git Bash Here 打开命令窗口
方式一:创建全新仓库
$ git init
方式二:克隆远程仓库
$ git clone https://github.com/linw1180/Java-Note.git
IDEA 集成 Git 技巧
- 在码云或 GitHub 上新建仓库
- 将其克隆到本地
- 将该仓库/项目中 .git 同级目录所有文件拷贝到自己的本地项目目录下
- 完成 Git 集成,可使用IDEA 操作 Git
Last
在 gitee 上最下方有 Git 全面教程,平时还是需要多多练习命令
Linux
基本命令
cd 改变目录
cd .. 回退上一级
cd 进入默认目录
pwd 显示当前目录路径
ls 列出目录中所有文件
ll 列出目录中所有文件,包含详细信息
touch 新建文件
rm 删除文件
mkdir 新建目录
rm -r 删除文件夹
mv xx文件 xx目录 移动文件到指定文件夹
reset 重新初始化终端/清屏
clear 清屏
history 查看命令历史
help 帮助
exit 退出
# 注释
- 记住:Linux 中没有错误就代表执行成功
tar -zxvf xxx文件 解压指定文件
rm -rf xxx文件 删除指定包含有文件的文件夹
关机命令
在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。关机指令为:shutdown ;最后总结一下,不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。
sync # 将数据由内存同步到硬盘中。
shutdown # 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:
shutdown –h 10 # 这个命令告诉大家,计算机将在10分钟后关机
shutdown –h now # 立马关机
shutdown –h 20:25 # 系统会在今天20:25关机
shutdown –h +10 # 十分钟后关机
shutdown –r now # 系统立马重启
shutdown –r +10 # 系统十分钟后重启
reboot # 就是重启,等同于 shutdown –r now
halt # 关闭系统,等同于shutdown –h now 和 poweroff
系统目录结构
登录系统后,在当前命令窗口下输入命令:
ls /
你会看到如下图所示:
树状目录结构:(Linux的一切资源都挂载在这个 / 根节点下)
以下是对这些目录的解释:
-
/bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。
-
/boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
-
/dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
-
/etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
-
/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
-
/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。
-
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
-
/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
-
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
-
/opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
-
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
-
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
-
/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
-
/srv:该目录存放一些服务启动之后需要提取的数据。
-
/sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
-
/tmp:这个目录是用来存放一些临时文件的。
-
/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
-
/usr/bin: 系统用户使用的应用程序。
-
/usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。
-
/usr/src: 内核源代码默认的放置目录。
-
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
-
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
-
/www:存放服务器网站相关的资源,环境,项目等(只会出现在 Linux 云服务器中)
# 重要的几个目录: /etc 存放配置文件 /home 用户主目录 /opt 软件安装目录 /root 系统管理员目录 /usr 普通用户目录,类似于windows下的program files目录 /tmp 存放临时文件 /var 存放经常被修改的文件 /www:存放服务器网站相关的资源,环境,项目等
绝对路径:
路径的写法,由根目录 / 写起,例如:/usr/share/doc 这个目录。
相对路径:
路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成:cd ../man 这就是相对路径的写法啦!
目录管理命令
- 处理目录的常用命令:
ls: 列出目录
cd:切换目录
pwd:显示目前的目录
mkdir:创建一个新的目录
rmdir:删除一个空的目录
cp: 复制文件或目录
rm: 移除文件或目录
mv: 移动文件与目录,或修改文件与目录的名称
# 可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp。
# ls 列出目录
ls -a 列出全部文件,包含隐藏文件
ls -l 列出包含属性与权限的所有文件,相当于 ll
ls - al 列出包含属性与权限的所有文件,包含隐藏文件
# cd 切换目录
cd 绝对路径/相对路径
cd home/luis/a 以绝对路径进行切换
cd .. 或 cd ../ 回到上一级
cd ../www 到上一级中某目录下
cd / 回到根目录
cd ~ 回到家目录/登陆进来时所在目录
# pwd 显示当前目录
pwd 显示当前所在目录
pwd -P 显示真实地址,如果是链接的话
# mkdir 创建目录
mkdir xxx目录 创建新目录
mkdir -p t1/t2/t3 递归创建目录
mkdir -m 711 test 创建目录并配置指定权限(不用默认权限配置)
# rmdir 删除空目录
rmdir xx空目录 删除指定空目录
rmdir -p a/b/c 递归删除非空目录
# 后面使用 rm 可以删除非空目录
# cp 复制文件到指定目录
cp a.java a
# rm 删除文件或目录
# 参数
-r:忽略警告,强制删除
-f:递归删除(删除文件专用)
rm a.java 删除文件,有警告
rm -r a.java 删除文件,无警告
rm -r a 递归删除目录,有警告
rm -rf a 递归删除目录,无警告
# 注意:删库跑路代码:慎用!!!
========= rm -rm / # /为根目录,这样是直接删除系统中所有文件!!!=========
# mv
# 功能一:移动文件或目录
# 功能二:重命名文件或目录
mv a.java a 移动文件
mv a.java b.java 重命名文件
mv a b 若a目录存在,则做移动操作;若a目录不存在,则做重命名操作
基本属性:
- Linux 中以第一个字符区分该文件类型
区分文件类型的五种字符:
d —— 表示目录【掌握】
- —— 表示文件【掌握】
l —— 表示为链接文档(类似快捷方式)【掌握】
b —— 表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );
c —— 表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。
- 后9个字符,以3个为一组,各自代表了各组对该文件不同的操作权限
其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。
要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
- 文件属主和属组
修改文件属性
# 参数 -R :表示递归修改
# chgrp 修改文件属组(基本用不到)
chgrp -R 属组名 文件名 # 如:chgrp -R root a
# chown 修改文件属主(基本用不到)
chown -R 属主名 文件名 # 如:chown -R root a
# 知晓各个操作权限对应的数字,各组不同操作权限可通过不同数字和表示
r:4 w:2 x:1
如:
owner = rwx = 4+2+1 = 7 可读可写可执行
group = r-x = 4+0+1 = 5 可读不可写可执行
others= --- = 0+0+0 = 0 不可读不可写不可执行
# chmod 修改各组对文件的操作权限【掌握】
方式一:通过数字设置【常用 + 掌握】
chmod 777 文件名 # 可读可写可执行【最常用的设置】
方式二:通过符号设置(不用掌握,了解即可)
文件内容查看
cat 由第一行开始显示文件内容,用来读文章,读配置
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示文件内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行
tail 只看尾巴几行
# 你可以使用 man [命令]来查看各个命令的使用文档,如 :man cp。
cat xxx文件名 从第一行开始,查看文件全部信息(从文件头开始看)【掌握】
tac xxx文件名 从最后一行开始,查看文件全部信息(从文件底部开始看)【常用】
nl xxx文件名 查看文件全部内容并显示行号【掌握】
more xxx文件名 一页一页显示文件内容(空格进行翻页,回车一行一行显示,不可往前查看,输入:f可显示行号)【掌握】
less xxx文件名 和more用法差不多,但是可使用上下方向键上下翻页,并且必须使用q命令退出!可使用/xx向下查找字符串,使用?xxx向上查找字符串;n向上找下一个,N向下找下一个【掌握】
head -n 行数 只看头多少行
tail -n 行数 只看尾多少行
CentOS 7 中网络配置目录地址:/etc/sysconfig/network-scripts
ifconfig 查看网络配置
扩展:Linux 链接的概念(了解)
Linux 中的链接分两种:硬链接和软链接
硬链接:假设 A 为源文件,B 为 A 的硬链接,那么它们同时指向了同一个文件,实现了一个文件多个路径。修改 A 文件内容,B 文件内容也会随之改变;如果删除 A 文件,B 文件还会保留下来,相当于一个备份,可防止误删。
软链接:类似 Windows 下的快捷方式,假设 A 为源文件,B 为 A 的软链接,删除 A 文件后,B 文件将会无法访问。
- 相关命令:
ln
ln a b # 创建a的硬链接b
ln -s a c # 创建a的硬链接c
示例:
向文件尾部添加内容:echo “文件内容” >> 文件
touch f1 # 创建一个f1文件
ln f1 f2 # 创建f1的一个硬链接f2
ln -s f1 f3 # 创建f1的一个软链接f3
echo "test" >> f1 # 修改f1文件内容
cat f1 # 查看
cat f2 # 查看
cat f3 # 查看
rm -rf f1 # 删除f1
cat f2 # 查看
cat f3 # 查看
Vim 编辑器
vim 文件名 # 如果文件存在则可直接编辑;如果不存在,则会新建,然后进入编辑
- 三种使用模式
- 刚刚启动 vi/vim,就进入了命令模式;命令模式下按 i 或 insert 可进入输入模式;输入模式下按 Esc 可进入命令模式;命令模式下按 : 进入底线命令模式。
命令模式下:
可按 i 或 insert 进入输入模式【掌握】
可按 x 删除光标所在字符【掌握】
可按 : 切换到底线命令模式【掌握】
输入数字,空格,横向移动光标【掌握】
输入数字,回车,从光标处向下跳转输入的行数【掌握】
按 /,可进行查找;然后使用 n 向上或 N 向下逐个选择【掌握】
按 u,可进行回退操作【掌握】
底线命令模式下:
w 回车,保存文件内容
q 回车,退出编辑
wq 回车,保存并退出【最常用】【掌握】
set nu 显示行号【掌握】
set nonu 取消行号显示【掌握】
输入模式下:
可进行文档的编辑和修改
账号管理
自己用得不多,但是自己玩可以学习学习
用户账号管理其实就是对/etc/passwd文件进行管理
# root 账户进行操作
# 添加用户,并为用户在home下创建主目录/home/linwei
[root@linwei home]# useradd -m linwei
# 为普通用户配置密码
[root@linwei home]# passwd linwei 回车,然后配置密码
# 删除用户,并删除其主目录数据
[root@linwei home]# userdel -r linwei
# 修改用户资料(如主目录等,修改完后可在配置文件中查看)
[root@linwei home]# usermod -d /home/233 lw
# 修改完后可在配置文件中查看:/etc/passwd
[root@linwei home]# tail -n 3 /etc/passwd
mysql:x:1001:1001::/home/mysql:/sbin/nologin
redis:x:1002:1002::/home/redis:/sbin/nologin
lw:x:1003:1003::/home/233:/bin/bash
# root切换到普通用户
su 用户名
# 普通用户切换回root
exit
# 锁定/冻结用户
passwd -l 用户名
-------------------
# 普通用户拿到密码登陆后,可修改密码
# 直接输入:
passwd
# 然后依次输入旧密码和新密码(新密码不能过于简单)
用户组管理
用户组的管理其实就是对/etc/group文件进行管理
# 添加新用户组
groupadd new # 添加用户组new
cat /etc/group # 查看组配置
# 修改用户组(如名字;-n 修改名字;-g 修改组id)
groupmod -n new newmod # 修改用户组名new为newmod
cat /etc/group # 查看组配置
# 删除用户组
groupdel new # 删除用户组new
cat /etc/group # 查看组配置
磁盘管理
# 列出文件系统整体的磁盘使用量(字节表示)
df
# 列出文件系统整体的磁盘使用量(M和G表示)【符合用户习惯】
df -h
# 检查磁盘空间使用量
du
# 检查根目录下每个目录所占的容量
[root@linwei /]# du -sm /*
进程管理
Linux 中一切皆文件
文件:
读写执行(查看、创建、删除、移动、复制、编辑)
权限(用户、用户组)
系统(磁盘、进程)
# ps 查看当前系统中正在执行的各种进程的信息
ps -xx:
* -a 显示当前终端运行的所有进程信息(当前的进程一个)
* -u 以用户的信息显示进程
* -x 显示后台运行进程的参数
# ps -aux 查看所有进程
# | 在Linux中它叫做管道符 A|B
# grep 查找文件中符合条件的字符串
# 一般综合起来使用,用来查看并过滤出我们需要查看的进程信息
ps -aux|grep mysql
# ps -ef:可查看到父进程信息,如
ps -ef|grep mysql
# 我们一般通过目录树结构来查看父进程信息
pstree -pu
-p 显示父id
-u 显示用户组
# 强制结束进程 (一般不用,但可用在java死循环等情况下)
kill -9 进程id
环境安装
参考:https://www.bilibili.com/video/BV187411y7hF?p=15&spm_id_from=pageDriver
安装软件一般有三种方式:
- rpm
- 解压缩
- yum 在线安装
都看到最后了,右下角来个赞鸭!-.- 欢迎评论留言~