Linux
Linux一切皆文件
(文件:读写执行(查看,创建,删除,移动,复制,编辑),权限(用户,用户组)。系统(磁盘,进程))
处理目录的常用命令
-
ls: 列出目录
- -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
- -l :长数据串列出,包含文件的属性与权限等等数据;(常用)
-
cd:切换目录
-
pwd:显示目前的目录
-
mkdir:创建一个新的目录
-
-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
-
-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
-
-
rmdir:删除一个空的目录
- -p **:**连同上一级『空的』目录也一起删除
-
cp: 复制文件或目录
- -a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
- -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
- -d:若来源档为连结档的属性(link fifile),则复制连结档属性而非文件本身;
- -r:递归持续复制,用於目录的复制行为;(常用)
- -f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
- -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
- -l:进行硬式连结(hard link)的连结档创建,而非复制文件本身。
- -s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
- -u:若 destination 比 source 旧才升级 destination !
-
rm: 移除文件或目录
- -f:就是 force 的意思,忽略不存在的文件,不会出现警告信息;
- -i:互动模式,在删除前会询问使用者是否动作
- -r:递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
- -rf:删除系统中所有的文件
-
mv: 移动文件与目录,或修改文件与目录的名称
- -f:force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
- -i:若目标文件 (destination) 已经存在时,就会询问是否覆盖!
- -r:若目标文件已经存在,且 source 比较新,才会升级 (update)
- mv test test2 : 重命名,将test重命名为test2
基本属性
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等:
- 当为[ d ]则是目录
- 当为[ - ]则是文件;
- 若是[ l ]则表示为链接文档 ( link file );
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。
接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。
其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。
要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已
每个文件的属性由左边第一部分的10个字符来确定(如下图)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G8NMuLXp-1652586443840)(C:/Users/hasee/AppData/Roaming/Typora/typora-user-images/image-20201205182554703.png)]
从左至右用0-9这些数字来表示。
第0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有该文件的权限。第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。
其中:
- 第1、4、7位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限;
- 第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-"字符表示没有写权限;
- 第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权限。
对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。
同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。
文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。
在以上实例中,boot 文件是一个目录文件,属主和属组都为 root。
修改文件属性
-
chgrp:更改文件属组
chgrp [-R] 属组名 文件名
-
chown:更改文件属主,也可以同时更改文件属组
chown [–R] 属主名 文件名 chown [-R] 属主名:属组名 文件名
-
chmod:更改文件9个属性
chmod [-R] xyz 文件或目录
Linux文件属性有两种设置方法,一种是数字,一种是符号
先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组
的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:r:4 w:2 x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx—] 分数则是:
-
owner = rwx = 4+2+1 = 7
-
group = rwx = 4+2+1 = 7
-
others= — = 0+0+0 = 0
chmod 770 filename
-
文件内容查看
Linux系统中使用以下命令来查看文件的内容:
- cat 由第一行开始显示文件内容,**读文章或者配置文件 ** 【重点】
- tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!于上边相反是倒着读
- nl 显示的时候,顺道输出行号!,看代码文件的时候,前边显示行号 【重点】
- more 一页一页的显示文件内容,空格表示翻页,enter表示一行一行看,
- less 与 more 类似,但是比 more 更好的是,他可以往前翻页!,空格翻页,上下键控制,enter后q退出
- head 只看头几行,-n 参数后边跟行数,表示看几行
- tail 只看尾巴几行,-n 参数后边跟行数,表示看几行,倒着看
- tail 只看尾巴几行
硬链接和软连接
- touch 创建一个文件
- ln f1 f2 创建一个硬链接f2
- ln -s f1 f3 创建一个软链f3
- echo “i love java” >>f1 给f1文件中写入一些字符串!
- cat f1 查看f1
Vim 编辑器
简介
vim 通过一些插件可以实现和IDE一样的功能!
Vim是从vi发展出来的一个文本编辑器。代码补全,编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。尤其是Linux中,必须要会使用Vim(查看内容,编辑内容,保存内容!)
简单的来说,vi是老式的字处理器,不过功能已经很齐全了,但还有可以进步的地方。
Vim则可以说是程序开发者的一项很好用的工具。
所有的Unix Like 系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在。
三种使用模式
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:
以下是常用的几个命令:
- i 切换到输入模式,以输入字符。
- x 删除当前光标所在处的字符。
- : 切换到底线命令模式,以在最底一行输入命令。
- vim 文件名:创建一个文件,然后进入编辑
- 按下 i 进入输入模式(也称为编辑模式),开始编文字
- 按下 ESC 按钮回到一般模式
- 在一般模式中按下 :wq 储存后离开 vim!
用户管理
Linux是一个多用户操作
添加账号 useradd
useradd 选项 用户名
选项:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-m 使用者目录如不存在则自动建立。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
删除帐号
删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。
userdel 选项 用户名
修改帐号
usermod 选项 用户名
切换用户
su 用户名即可
用户设置密码
passwd 用户名
查看及修改主机名
- hostname :查看主机名
- hostname 用户名 :修改主机名
锁定账户!
root用户,可以冻结账户!然后这个账户就登录不上了。
passwd -l dragon #锁定之后这个账户就不能登陆了
passwd -d dragon #-d参数是删除密码,这样此账户也能登录了
用户组管理
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
-
增加一个新的用户组使用groupadd命令
groupadd 选项 用户组
-
如果要删除一个已有的用户组,使用groupdel命令
groupdel 用户组
-
修改用户组的属性使用groupmod命令
groupmod 选项 用户组
-
修改用户组id,修改组名
group -g id -n 新组名 原组名
磁盘管理
命令
1、df [-ahikHTm] [目录或文件名]
df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,
目前还剩下多少空间等信息。
2、du [-ahskm] 文件或目录名称
Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍Linux du命令。
进程管理
1、ps 指令
ps -aux|grep xxx ,查看某个服务的进程 如,ps -aux|grep mysql
说明:
1、grep 命令用于查找文件里符合条件的字符串。
2、命令格式:命令A|命令B,即命令A的正确输出作为命令B的操作对象
2、使用 ps -ef可查看父进程
ps -ef是以全格式显示当前所有的进程
-e 显示所有进程。-f 全格式。
• UID:用户ID
• PID:进程ID
3、终止进程kill或killall
kill指令就像是Windows系统中的任务管理->结束任务一样
常用选项: -9 :表示强迫进程立即停止
kill -9 PID
环境安装
JDK安装(rom安装)
1、下载Jdk rpm,去oracle官网下载
2、安装java环境
#检测当前系统是否存在java环境! java -version
#如果有卸载
#rpm -qa|grep jdk #检测jdk版本信息
#rpm -e --nodeps jdk_
#安装
#rpm -ivh rpm包
安装完之后可以查看安装的路径
cd /usr/java
3、配置环境变量 path: cat /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:JRE_HOME/bin:$PATH
#保存退出
# 让新增的环境变量生效!
source /etc/profile
# 测试 java -version
Tomcat 安装(压缩(tar)包安装)
-
下载tomcat压缩包。
-
解压
tar -zxvf apache-tomcat-9.0.40.tar.gz
-
启动Tomcat测试
#执行 ./startup.sh #停止 ./shotdown.sh
Docker(yum安装)
联网的情况下 yum install -y yum源
1、检查CentOS7版本
[root@dragon dragon]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
2、安装准备环境
yum -y install 包名 # yum install 安装命令 -y 所有的提示都为y
yum -y install gcc
yum -y install gcc-c++
3、卸载旧版本
yum -y remove docker docker-common docker-selinux docker-engine
# 官网版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
4、安装需要的软件包
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
5、设置stable镜像仓库
# 正确推荐使用国内的
yum-config-manager --add-repo http://mirrors.aliyun.com/docker- ce/linux/centos/docker-ce.repo
6、安装Docker CE
yum -y install docker-ce docker-ce-cli containerd.io
9、启动docker
systemctl start docker
10、测试
docker version
docker run hello-world
docker images
如果不行参考:https://www.cnblogs.com/xuliang-daydayup/p/12740838.html
防火墙firewall-cmd
systemctl start firewalld # 启动
systemctl stop firewalld # 停止
systemctl enable firewalld # 启用自动启动
systemctl disable firewalld # 禁用自动启动
systemctl status firewalld # 或者 firewall-cmd --state 查看状态
# 查看所有打开的端口:
firewall-cmd --zone=public --list-ports
# 加入一个端口到区域:
firewall-cmd --zone=dmz --add-port=8080/tcp
# 移除服务
firewall-cmd --zone=work --remove-service=smtp
#增加一个端口
firewall-cmd --add-port=443/tcp --permanent
#查看是否开启某个端口号
firewall-cmd --query-port=8080/tcp
#添加一个端口号
firewall-cmd --add-port=8080/tcp --permanent
#重新载入防火墙
firewall-cmd --reload
宝塔Linux面板安装教程
https://www.bt.cn/bbs/thread-19376-1-1.html
扩展命令
netstat -aptn :查看现在所有的运行端口
lsof -i:端口号:查看那个端口号在运行