目录
一、Linux目录
Linux 目录结构是一种树状结构,最顶层是根目录
/
。标红的为需要重点了解的:
/bin
:Binary,存放用户级的二进制可执行文件(即最经常使用的命令)。
/sbin
:System binary,存放系统级的二进制可执行文件(即系统管理员经常使用的命令)。
/boot
:存放系统启动时所需的核心文件,如内核、启动菜单、连接文件以及镜像文件等。
/dev
:存放Linux系统的外部设备文件,在Linux中访问设备的方式和访问文件的方式相同。
/etc
:存放所有系统管理所需要的各种配置文件和子目录。比如Java、Tomcat配置文件。
/home
:普通用户的家目录,每个用户的家目录通常位于此目录下,通常是以用户的账号命名的,例如 /home/username
。
/root
:该目录为系统管理员,即超级用户(root)的家目录。
/lib
:Library,存放系统和应用程序所需的最基本的动态🔗共享库文件,其作用类似于Windows里的DLL文件。
/lib64
:存放64位系统和应用程序所需的最基本的动态🔗共享库文件,其作用类似于Windows里的DLL文件。
/media
:Linux系统会自动识别一些设备,如光盘、USB等。当识别后,Linux会把识别的设备挂载到此目录下。
/mnt
:Mount,系统提供该目录用于让用户临时挂载文件系统,我们可以将U盘挂在到该目录上,然后进入该目录就可以查看U盘里的内容。
/opt
:Optional,第三方应用程序的安装位置,比如我们自身需要安装一个MySQL就可以安装在这个目录下,该目录默认情况下为空。
/proc
:Process,这是一个虚拟目录,它是系统内存的映射,存放当前进程和系统信息,可以通过该目录获取进程和系统信息。
/run
:存放当前运行的系统和服务信息。
/srv
:Service,存放服务启动后需要访问的数据。
/sys
:System,这是Linux2.6内核的一个很大的变化,存放系统硬件信息和状态,该目录下安装了2.6内核中新出现的一个文件系统sysfs。
/tmp
:Temporary,存放临时文件。
/usr
:Unix Software Resource,一个非常重要的目录,存放用户级的文件和程序,如 /usr/bin
存放用户二进制文件,/usr/lib
存放共享库等。类似于Windows下的program files目录。
/var
:Variable,存放经常变化的文件,如日志文件、缓存文件等。
/
lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。(存放突然关机的一些文件)
/www:
存放服务器网站相关的资源,比如网站的项目(宝塔面板)
这是一个简化的Linux目录结构概览,具体目录下的子目录和文件取决于具体的Linux发行版和配置。
二、常用命令
2.1. 目录管理
绝对路径、相对路径
绝对路径的全称:如E:\develop\Java\maven-3.9.0\conf\settings.xml
cd 切换目录命令
cd / 进入根目录
cd .和cd ./ 当前目录
cd .. 进入上一级目录
cd ~ 回到当前的用户目录
ls 列出目录和文件命令
ls:查看当前路径下的文件夹及文件。
ll(即ls -l的简写):列出详细结果,包含有时间,是否可读写等信息。
ls -lh:显示更符合人类查看的方式,显示文件大小。
ls -a:显示隐藏文件。
pwd 显示当前用户所在的目录命令
mkdir 创建文件目录命令
mkdir:创建文件目录。
mkdir -p:级联创建文件目录(如123/123/123)。
rmdir 移除目录命令
rmdir:移除目录
rmdir -p 删除多层级目录(其下不能包含文件)
rm 移除命令
rm:删除文件目录。
rm -r 递归删除(可以删除文件及目录)有提示
rm -rf 递归删除 无提示
cp 拷贝命令
cp [options] source destination
-
source
是要复制的文件或目录。 -
destination
是目标位置。
常用选项:
-
-r
或-R
: 递归复制目录及内容,可用于复制目录。 -
-v
: 显示复制过程中的详细信息。 -
-f
: 强制覆盖已存在的文件。 -
-i
: 交互式提示是否覆盖已存在的文件。 -
-a
: 归档复制模式,保留原文件的属性,常用于备份。 -
echo命令
echo:输出到控制台。
> 重定向命令
ls > aaa.txt 把ls命令显示当前路径下文件目录的结果输出到aaa.txt文件中。
cat 命令
用于连接和显示文件的内容
-
-n
:对输出的所有行进行编号。 -
-b
:对输出的非空白行进行编号。 -
-s
:当遇到有连续两行或更多空白行时,就代换为一行空白行。 -
-T
:使用 ^I 表示制表符,而不是空格。 -
-A
:等价于-vET
选项,它会显示所有的内容,包括特殊字符。 -
-e
:等价于-vE
选项,显示行结束符。 -
-t
:等价于-vT
选项,显示制表符。
mv 移动/重命名命令
mv命令用来为文件或目录改名、或将文件或目录移入其它位置。
- 重命名文件:
mv oldname.txt newname.txt
将把oldname.txt重命名为newname.txt。 - 移动文件到目录:
mv file.txt dir/
将file.txt移动到dir/目录中。 - 移动并重命名:
mv file.txt dir/newfile.txt
将file.txt移动到dir/目录中并重命名为newfile.txt。
文件夹改名:mv jdk1.8.0_181/ jdk1.8
vi命令
-i:编辑模式
-o:编辑模式(直接到下一行)
-w:保存
-q:退出
-esc:退出编辑
-!:强行执行命令
如编辑完文件后执行保存并强行退出命令,即:wq!
Tab按键:补全后面要输入的内容
快捷键:(非编辑模式下)
a:在光标后一位开始输入
A:在该行的最后插入
I:在该行的最前插入
yy:复制整行
3yy:复制三行
p:黏贴
gg:直接跳到文件首行
G:直接跳到文件的末行
dd:删除一行
3dd:删除三行
/:搜索内容,n匹配下一个
u:undo(撤销)
ctrl+r:redo(执行之前撤销的)
:set nu:设置行号
:set nonu:设置不显示行号
:q!:强制不保存退出
fg 程序编号:切换后台挂起程序
jobs:查看后台挂起的程序
ctrl+z:将程序挂起
三、Linux权限
3.1. 添加用户(用户名ha 密码 ha)
useradd ha
passwd ha
3.2. userdel -r 用户名 ----删除用户
加一个r表示把用户及用户的主目录都删除
exit ----退出会话
3.3. 增加用户组
groupadd 组名 ----增加组
usermod -g 组名 用户名 ----将用户添加到组中
usermod -G 组名1,组名2 用户名 ----将用户添加到多个组中
gpasswd -d 用户名 组名 ----将用户从组中删除 例如:gpasswd -d jack root | gpasswd -d jack sys
3.4. Linux文件权限的描述格式
d rwx rwx rwx
d:标识节点类型
第一个字符d表示文件夹目录, -表示文件, l表示链接, b表示装置文件里可供存储的接口设备(可随机存取装置), c表示装置文件里的串行接口设备(一次性读取装置)
r(4):可读
w(2):可写
x(1):可执行
第一组rwx:表示这个文件的拥有者对它的权限
第二组rwx:表示这个文件的所属组用户对它的权限
第三组rwx:表示这个文件的其他用户(除以上两种)对它的权限
使用二进制表示权限:例如-rw-rw-r-- 二进制表示为110,110,100 十进制表示为664
补充:
r:对文件来说,是可读取内容;对文件来说,是可以ls
w:对文件来说,是可修改文件的内容;对文件来说,是可以在其中创建或者删除子节点。
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:[-rwxrwx---]分数则是:
- owner = rwx = 4+2+1 = 7
- group = rwx = 4+2+1=7
- others = 0+0+0 = 0
3.4.1. chgrp 修改文件所属组命令
3.4.2. chown 修改文件所有者命令
- 修改所有者:
chown 用户名 文件名
,例如:chown user file.txt
将文件file.txt的所有者修改为user。 - 修改所属组:
chown :组名 文件名
,例如:chown :group file.txt
将文件file.txt的所属组修改为group。 - 同时修改所有者及所属组:
chown 用户名:组名 文件名
,例如:chown user:group file.txt
将文件file.txt的所有者修改为user,并将所属组修改为group。 -c
:显示更改的信息。-f
:不显示错误信息。-h
:修复符号链接的解析问题。-R
:递归地改变文件或目录的所有者。-v
:显示详细的操作信息。-from
:指定从哪个用户改变所有者。--reference
:根据参考文件设置文件或目录的所有者和组。
3.4.3. chmod设置文件权限命令
添加权限:chmod +w aaa.txt 添加对文本aaa.txt写的权限
删除权限:chmod -w aaa.txt 删除对文本aaa.txt写的权限
四、切换t用户
切换root用户 su root
切换普通用户 su ha ------ha是普通用户
按exit可以退到上一个用户
Linux ssh远程登录指定IP的服务器
ssh root@192.168.33.88 通过ssh远程访问IP:192.168.33.88服务器(root用户)
Linux ssh远程免密登录指定IP的机子(通过私钥和公钥)
本地生成密钥:ssh -keygen
拷贝公钥到指定要远程的服务器:ssh-copy-id 192.168.33.88
远程拷贝文件到指定主机:scp abc.txt 192.168.33.88:/root
远程拷贝文件夹到指定主机:scp -r abc 192.168.33.88:/root
远程生成文件(文件里输入指定内容hello)到指定主机:ssh 192.168.33.88 "echo hello > /root/wzx.txt"
查看当前主机命令:hostname
更改主机名:hostname wzx 这个更改的主机名只在主机运行时有效 重启便会失效
永久更改主机名:vi /etc/sysconfig/network 更改此文件中的内容即可
配置JDK环境变量(vi /etc/profile):
export JAVA_HOME=/root/apps/jdk1.8/
export PATH=$PATH:$JAVA_HOME/bin
修改完需要让配置文件生效,命令:source /etc/profile
执行可执行文件(sh)命令:./startup.sh