linux
ls /
对以上目录解释:
- /bin:bin是Binary的缩写,这个目录存放着最经常使用的命令。
- /boot: 这里存放的是启动Linux使用的一些核心文件,包括一些连接文件以及镜像文件
- /dev:dev是device(设备)的缩写,存放的是linux的外部设备,在Linux中访问设备的方式和文件的方式是相同的
- /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录
- /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,该目录一般是以用户的账号命名。
- /lib: 这个目录存放在系统最基本的动态连接共享库,起作用类似于Windows里的dll文件
- /lost+found:这个目录一般情况为空,这里存放一些系统非法关机的文件。
- /media(媒体):linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下
- /mnt:
- /opt:给主机安装额外的软件所摆放的目录。
- /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
- /root:该目录为系统管理员,也称作超级权限者的用户主目录。
- /sbin:这里存放的是系统管理员使用的系统管理程序。
- /srv:该目录存放一些服务启动之后需要提取的数据。
- /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
- /tmp:这个目录是用来存放一些临时文件的。
- /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- /usr/bin:系统用户使用的应用程序。
- /usr/sbin:超级用户使用比较高级的管理程序和系统守护程序。
- /usr/src:内核源代码默认的放置目录。
- /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
- /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
常用命令
顶级根目录’/’
查看’/'目录下的文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OwF9BzD3-1679822629887)(C:\Users\28448\AppData\Roaming\Typora\typora-user-images\1633680036569.png)]
处理目录的常用命令
-
ls: 列出目录
-
cd:切换目录
-
pwd:显示目前的目录
``[root@iZf8z85vg3kifrag7rh2e9Z home]# pwd
/home` -
mkdir:创建一个新的目录
[root@iZf8z85vg3kifrag7rh2e9Z home]# mkdir zengchao 创建一个文件夹 [root@iZf8z85vg3kifrag7rh2e9Z home]# ls zengchao [root@iZf8z85vg3kifrag7rh2e9Z home]# mkdir -p test2/test3/test4 创建递归创建文件夹 [root@iZf8z85vg3kifrag7rh2e9Z home]# ls test1 test2 zengchao [root@iZf8z85vg3kifrag7rh2e9Z home]# cd test2 [root@iZf8z85vg3kifrag7rh2e9Z test2]# cd test3 [root@iZf8z85vg3kifrag7rh2e9Z test3]# ls test4 [root@iZf8z85vg3kifrag7rh2e9Z test3]# cd test4 [root@iZf8z85vg3kifrag7rh2e9Z test4]# ls [root@iZf8z85vg3kifrag7rh2e9Z test4]# pwd /home/test2/test3/test4
-
rmdir:删除一个空的目录:rmdir 仅能删除空的目录 , 如果下面存在文件 , 需要先删除文件,
[root@iZf8z85vg3kifrag7rh2e9Z home]# ls
test1 test2 zengchao[root@iZf8z85vg3kifrag7rh2e9Z home]# rmdir -p test2/test3/test4
[root@iZf8z85vg3kifrag7rh2e9Z home]# ls
test1 zengchao -
cp: 复制文件或目录 cp 文件名称 新位置
[root@iZf8z85vg3kifrag7rh2e9Z ~]# cd /home
[root@iZf8z85vg3kifrag7rh2e9Z home]# ls
test1 test.txt zengchao
[root@iZf8z85vg3kifrag7rh2e9Z home]# cp -r /root/install.sh /home 将install.sh文件递归复制到/home目录下
[root@iZf8z85vg3kifrag7rh2e9Z home]# ls
install.sh test1 test.txt zengchao
[root@iZf8z85vg3kifrag7rh2e9Z home]# ^C
[root@iZf8z85vg3kifrag7rh2e9Z home]# -
rm: 移除文件或目录
-f 忽略不存在的文件,不会出现警告,强制删除!
-r 递归删除目录!
-i 互动 , 删除询问是否删除!(再给你一次机会)
rm -rf //传说中的删除跑路
-
mv: 移动文件与目录,或修改文件与目录的名称
查看文件属性
在Linux中我们可以使用ll
或者ls –l
命令来显示一个文件的属性以及文件所属的用户和组,如:
- 当为[ d ]则是目录
- 当为[ - ]则是文件;
- 若是[ l ]则表示为链接文档 ( link file );
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。
修改文件属性
1.chown:更改文件属主,也可以同时更改文件属组
[root@iZf8z85vg3kifrag7rh2e9Z home]# ll
total 16
drwxr-xr-x 2 root root 4096 Oct 8 16:51 install.sh
drwxr-xr-x 2 root root 4096 Oct 8 16:17 test1
drwxr-xr-x 2 root root 4096 Oct 8 16:43 test.txt
drwxr-xr-x 2 777 root 4096 Oct 8 16:17 zengchao
[root@iZf8z85vg3kifrag7rh2e9Z home]# chown 777:777 zengchao 改变拥有者和群组
[root@iZf8z85vg3kifrag7rh2e9Z home]# ll
total 16
drwxr-xr-x 2 root root 4096 Oct 8 16:51 install.sh
drwxr-xr-x 2 root root 4096 Oct 8 16:17 test1
drwxr-xr-x 2 root root 4096 Oct 8 16:43 test.txt
drwxr-xr-x 2 777 777 4096 Oct 8 16:17 zengchao
[root@iZf8z85vg3kifrag7rh2e9Z home]# ^C
[root@iZf8z85vg3kifrag7rh2e9Z home]#
2.更改文件属组
[root@iZf8z85vg3kifrag7rh2e9Z home]# ll
total 16
drwxr-xr-x 2 root root 4096 Oct 8 16:51 install.sh
drwxr-xr-x 2 root root 4096 Oct 8 16:17 test1
drwxr-xr-x 2 root root 4096 Oct 8 16:43 test.txt
drwxr-xr-x 2 777 777 4096 Oct 8 16:17 zengchao
[root@iZf8z85vg3kifrag7rh2e9Z home]# chgrp mail test.txt
[root@iZf8z85vg3kifrag7rh2e9Z home]# ll
total 16
drwxr-xr-x 2 root root 4096 Oct 8 16:51 install.sh
drwxr-xr-x 2 root root 4096 Oct 8 16:17 test1
drwxr-xr-x 2 root mail 4096 Oct 8 16:43 test.txt
drwxr-xr-x 2 777 777 4096 Oct 8 16:17 zengchao
[root@iZf8z85vg3kifrag7rh2e9Z home]# ^C
[root@iZf8z85vg3kifrag7rh2e9Z home]#
3.chmod:更改文件9个属性
[root@iZf8z85vg3kifrag7rh2e9Z home]# ll
total 16
drwxr-xr-x 2 root root 4096 Oct 8 16:51 install.sh
drwxr-xr-x 2 root root 4096 Oct 8 16:17 test1
drwxr-xr-x 2 root mail 4096 Oct 8 16:43 test.txt
drwxr-xr-x 2 777 777 4096 Oct 8 16:17 zengchao
[root@iZf8z85vg3kifrag7rh2e9Z home]# chmod 777 test1 任何人都可以修改该文件(文件,文件夹。我也分不清)
[root@iZf8z85vg3kifrag7rh2e9Z home]# ll
total 16
drwxr-xr-x 2 root root 4096 Oct 8 16:51 install.sh
drwxrwxrwx 2 root root 4096 Oct 8 16:17 test1
drwxr-xr-x 2 root mail 4096 Oct 8 16:43 test.txt
drwxr-xr-x 2 777 777 4096 Oct 8 16:17 zengchao
[root@iZf8z85vg3kifrag7rh2e9Z home]#
文件内容查看
-
cat 由第一行开始显示文件内容
cat /etc/sysconfig/network-scripts/ifcfg-eth0 查看网络配置
-
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
tac /etc/sysconfig/network-scripts/ifcfg-eth0
-
nl 显示的时候,顺道输出行号!
nl /etc/sysconfig/network-scripts/ifcfg-eth0
-
more 一页一页的显示文件内容
more /etc/csh.login
-
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
-
head 只看头几行
head [-n number] 文件
-
tail 只看尾巴几行
tail [-n number] 文件
linux链接
[root@iZf8z85vg3kifrag7rh2e9Z ~]# cd /home
[root@iZf8z85vg3kifrag7rh2e9Z home]# f1 - 创建一个文件
[root@iZf8z85vg3kifrag7rh2e9Z home]# ls
f1 install.sh test1 test.txt zengchao
[root@iZf8z85vg3kifrag7rh2e9Z home]# ln f1 f2 - 创建f1的一个硬链接文件f2
[root@iZf8z85vg3kifrag7rh2e9Z home]# ln -s f1 f3 - 创建f1的一个软连接文件f3(又称符号链接)
[root@iZf8z85vg3kifrag7rh2e9Z home]# ls -li - i代表查看文件的inode节点信息
total 16
918430 -rw-r–r-- 2 root root 0 Oct 8 20:59 f1 - 得出f1和f2的节点相同(918430)
918430 -rw-r–r-- 2 root root 0 Oct 8 20:59 f2
923209 lrwxrwxrwx 1 root root 2 Oct 8 21:00 f3 -> f1
1313874 drwxr-xr-x 2 root root 4096 Oct 8 16:51 install.sh
1313848 drwxrwxrwx 2 root root 4096 Oct 8 16:17 test1
1313852 drwxr-xr-x 2 root mail 4096 Oct 8 16:43 test.txt
1313846 drwxr-xr-x 2 777 777 4096 Oct 8 16:17 zengchao
[root@iZf8z85vg3kifrag7rh2e9Z home]# echo “I am f1 file” >>f1 [root@iZf8z85vg3kifrag7rh2e9Z home]# cat f1
I am f1 file
[root@iZf8z85vg3kifrag7rh2e9Z home]# cat f2
I am f1 file
[root@iZf8z85vg3kifrag7rh2e9Z home]# cat f3
I am f1 file
[root@iZf8z85vg3kifrag7rh2e9Z home]# rm -f f1
[root@iZf8z85vg3kifrag7rh2e9Z home]# cat f2
I am f1 file
[root@iZf8z85vg3kifrag7rh2e9Z home]# cat f3
cat: f3: No such file or directory
[root@iZf8z85vg3kifrag7rh2e9Z home]#
硬链接:硬链接是通过索引节点进行连接。在Linux的文件系统中,保存在磁盘分区的文件不管什么类型都会分配一个编号,这个编号称为索引节点。在Linux中,多个文件指向同一个索引节点是允许的。有两个文件索引节点相同,文件名不同,其实他们的内容是相同的
Vim使用及账号用户管理
vi->vim,他是一个文本编辑器 如下vim 键盘图:
命令模式
输入模式
底线命令模式
账户管理
添加用户 useradd -m zeng :-m自动创建这个用户的主目录 添加一个用户其实就是往一个文件中写入用户信息。这条用户信息在/etc/passwd文件中
[root@iZf8z85vg3kifrag7rh2e9Z etc]# cat passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
zeng:x:1000:1000::/home/zeng:/bin/bash
[root@iZf8z85vg3kifrag7rh2e9Z etc]#
如果只是运行useradd+username的话,它会创建一个三无用户,即:无用户家目录,无指定shell版本,无密码。所有为了了顺利创建一个用户,我们需要一些参数来完善。
以下为选项
- -d<登入目录>:指定用户登入时的启始目录;
- -g 用户组 指定用户所属的用户组。
- -G 用户组,用户组 指定用户所属的附加组。
- -m:自动建立用户的登入目录;
- -s:指定用户登入后所使用的shell;
- -u:指定用户id。
经典语法
sudo useradd alvin -m -d /home/alvin -s /bin/bash 该用户无密码
给useradd添加密码
sudo passwd alvin 其实alvin可以添加,也可以不添加,不产生影响
切换用户 su username 【username是你的用户名哦】
从普通用户切换到root用户,还可以使用命令:sudo su
$表示普通用户
#表示超级用户,也就是root用户
删除账号
userdel 选项 用户名
常用的选项是 -r,它的作用是把用户的主目录一起删除
修改账户
修改已有用户的信息使用usermod命令,其格式如下:
usermod 选项 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
例如:
# usermod -s /bin/ksh -d /home/z –g developer kuangshen
此命令将用户kuangshen的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。
环境安装
jdk 安装
安装jdk-》配置环境变量
-
先检查linux是否安装jdk,如果有就卸载,没有就安装
# rpm -qa #显示系统中所有已经安装的rpm包 # rpm有许多指令 [root@kuangshen ~]# rpm -qa|grep jdk jdk1.8.0_121-1.8.0_121-fcs.x86_64 # 卸载 -e --nodeps 强制删除 [root@kuangshen ~]# rpm -e --nodeps jdk1.8.0_121-1.8.0_121-fcs.x86_64 [root@kuangshen ~]# java -version -bash: /usr/bin/java: No such file or directory #没有java版本 # rpm -ivh 安装jdk [root@iZf8z85vg3kifrag7rh2e9Z zeng]# rpm -ivh jdk-8u301-linux-x64.rpm warning: jdk-8u301-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY Preparing... ################################# [100%] Updating / installing... 1:jdk1.8-2000:1.8.0_301-fcs ################################# [100%] Unpacking JAR files... tools.jar... plugin.jar... javaws.jar... deploy.jar... rt.jar... jsse.jar... charsets.jar... localedata.jar... [root@iZf8z85vg3kifrag7rh2e9Z zeng]# java -version java version "1.8.0_301" Java(TM) SE Runtime Environment (build 1.8.0_301-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode) # 再次检查jdk [root@iZf8z85vg3kifrag7rh2e9Z zeng]# rpm -qa|grep jdk #配置环境 使用vim进入该文件 vim /etc/profile 输入 JAVA_HOME=/usr/java/jdk1.8.0_221-amd64 CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin export PATH CLASSPATH JAVA_HOME 保存退出 激活该配置文件 source /etc/profile 上面三个配置是java基本配置
然后就可以发表springboot项目了(这时的项目要注意:该jar工程不可以用数据库(因为我们现在的远程还没有数据库,所有一些yaml配置有关数据库和mybatis配置要注释掉),还要某些有关数据库的jar包()。如果项目在本地可以启动,那么在远程服务器也可以启动)。在linux和window相同环境下,如果window、项目可以起到,那么linux服务器下项目也可以启动。
linux下有项目后:远程Linux开启对应的安全组,开启对应的防火墙的端口(开启后,要重启防火墙)
tomcat安装 (解压缩安装)
防火墙开启对应端口
# 开启端口
[root@iZf8z85vg3kifrag7rh2e9Z bin]# firewall-cmd --zone=public --add-port=80/tcp --permanent #开启80端口号
success
[root@iZf8z85vg3kifrag7rh2e9Z bin]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
success
[root@iZf8z85vg3kifrag7rh2e9Z bin]# firewall-cmd --zone=public --add-port=20/tcp --permanent
success
[root@iZf8z85vg3kifrag7rh2e9Z bin]# firewall-cmd --zone=public --add-port=21/tcp --permanent
success
# 重启防火墙
[root@iZf8z85vg3kifrag7rh2e9Z bin]# systemctl restart firewalld.service
# 查看所有端口
[root@iZf8z85vg3kifrag7rh2e9Z bin]# firewall-cmd --list-ports
80/tcp 8080/tcp 20/tcp 21/tcp
[root@iZf8z85vg3kifrag7rh2e9Z bin]#
防火墙所有操作
# 查看firewall服务状态
systemctl status firewalld
# 开启、重启、关闭、firewalld.service服务
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
# 查看防火墙规则
firewall-cmd --list-all # 查看全部信息
firewall-cmd --list-ports # 只看端口信息
# 开启端口
开端口命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙:systemctl restart firewalld.service
命令含义:
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
lld
开启、重启、关闭、firewalld.service服务
开启
service firewalld start
重启
service firewalld restart
关闭
service firewalld stop
查看防火墙规则
firewall-cmd --list-all # 查看全部信息
firewall-cmd --list-ports # 只看端口信息
开启端口
开端口命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙:systemctl restart firewalld.service
命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效