Linux
linux关机
-
关机指令为:shutdown
-
shutdown –h now # 立马关机
-
reboot # 就是重启,等同于 shutdown –r now
-
不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。
系统目录结构
树状目录结构:(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:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
处理目录的常用命令
- ls: 列出目录
- cd:切换目录
- pwd:显示目前的目录
- mkdir:创建一个新的目录
- rmdir:删除一个空的目录
- cp: 复制文件或目录 cp 来源档 目标档
- rm: 移除文件或目录
- mv: 移动文件与目录,或修改文件与目录的名称
ls
ls-al
- -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
- -l :长数据串列出,包含文件的属性与权限等等数据;(常用)
文件属性
- [ d ]则是目录,当为[ - ]则是文件,若是[ l ]则表示为链接文档 ( link file );若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。
- 下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute),这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
- r:4 w:2 x:1
修改文件属性
- chgrp:更改文件属组 chgrp [-R] 属组名 文件名
- chgrp [-R] 属组名 文件名 属主名:属组名 文件名
- chmod:更改文件9个属性 chmod 770 filename
文件内容查看
Linux系统中使用以下命令来查看文件的内容:
-
cat 由第一行开始显示文件内容
-
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-
-n :列 印出行号,连同空白行也会有行号
-
-
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
-
nl 显示的时候,顺道输出行号!
-
more 一页一页的显示文件内容
- 空白键 (space):代表向下翻一页;
- Enter :代表向下翻『一行』/字
- /字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字
- :f :立刻显示出档名以及目前显示的行数;
- q :代表立刻离开 more ,不再显示该文件内容。
- b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
-
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
- ?字串 :向上搜寻『字串』的功能;
- /字串 :向下搜寻『字串』的功能;
- 空白键 ,[pagedown] :向下翻动一页;
- [pageup] :向上翻动一页;
- q :离开 less 这个程序;
-
head 只看头几行
-
tail 只看尾巴几行
Linux 链接概念
-
硬连接
两个文件名指向同一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。
ln f1 f2 # 创建f1的一个硬连接文件f2
-
软连接
A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是“主从”关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。
ln –s 被链接的源文件 链接文件
Vim
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。这三种模式的作用分别是:
-
命令模式:
用户刚刚启动 vi/vim,便进入了命令模式,此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
- i 切换到输入模式,以输入字符。
- x 删除当前光标所在处的字符。
- : 切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
-
输入模式:
-
底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
在底线命令模式中,基本的命令有:
- q 退出程序
- w 保存文件
账号管理
添加账号 useradd
useradd 选项 用户名 useradd -m abc
- -g 用户组 指定用户所属的用户组。
- -m 使用者目录如不存在则自动建立
Linux下如何切换用户
- 从普通用户切换到root用户,还可以使用命令:sudo su
- 切换用户的命令为:su username 从root用户切换到普通用户
- $表示普通用户, #表示超级用户,也就是root用户
删除帐号
常用的选项是 -r,它的作用是把用户的主目录一起删除。
userdel -r kuangshen
修改帐号
usermod 选项 用户名
用户口令的管理
passwd 选项 用户名
用户组管理
增加一个新的用户组使用groupadd命令
- -g GID 指定新用户组的组标识号(GID)。
- -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
如果要删除一个已有的用户组,使用groupdel命令
groupdel 用户组
修改用户组的属性使用groupmod命令
groupmod 选项 用户组
- -g GID 为用户组指定新的组标识号。
- -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
- -n新用户组 将用户组的名字改为新名字
切换组
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。
$ newgrp root
LINUX系统文件
与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group等。
-
/etc/passwd
/etc/passwd文件是用户管理工作涉及的最重要的一个文件。
Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。
其格式和具体含义如下:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell -
/etc/shadow
由于/etc/passwd文件是所有用户都可读的,如果用户的密码太简单或规律比较明显的话,超级用户才拥有该文件读权限,这就保证了用户密码的安全性。
/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生
-
/etc/group
用户组的所有信息都存放在/etc/group文件中,将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段。
组名:口令:组标识号:组内用户列表磁盘卸载命令 umount 语法:磁盘卸载命令 umount 语法:磁盘卸载命令 umount 语法:磁盘卸载命令 umount 语法:磁盘管理
Linux磁盘管理常用命令为 df、du。
-
df :列出文件系统的整体磁盘使用量
- -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
- -k :以 KBytes 的容量显示各文件系统;
- -m :以 MBytes 的容量显示各文件系统;
-
du:检查磁盘空间使用量
-
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-
-h :以人们较易读的容量格式 (G/M) 显示;
-
-s :列出总量而已,而不列出每个各别的目录占用容量;
-
磁盘卸载命令 umount 语法:
umount [-fn] 装置文件名或挂载点磁盘挂载与卸除
根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,此目录即为“挂载点”,解除此关联关系的过程称之为“卸载”
Linux 的磁盘挂载使用mount命令,卸载使用umount命令。
磁盘挂载语法:
mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点# 将 /dev/hdc6 挂载到 /mnt/hdc6 上面! [root@www ~]# mkdir /mnt/hdc6 [root@www ~]# mount /dev/hdc6 /mnt/hdc6 [root@www ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/hdc6 1976312 42072 1833836 3% /mnt/hdc6 -
磁盘卸载命令 umount 语法:
umount [-fn] 装置文件名或挂载点
软件安装方式
1.jdk安装(rpm安装)
# 安装java rpm
# rpm -ivh jdk-8u221-linux-x64.rpm
# 安装完成后配置环境变量 文件:/etc/profile
JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
export CLASSPATH JAVA_HOME
# 保存退出
# 让新增的环境变量生效!
source /etc/profile
# 测试 java -version
# java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
2.Tomcat安装(解压缩安装)
# mv apache-tomcat-9.0.22.tar.gz /usr
# cd /usr
# ls
apache-tomcat-9.0.22.tar.gz
# tar -zxvf apache-tomcat-9.0.22.tar.gz # 解压
安装Docker(yum安装)
-
官网安装参考手册:docs.docker.com/install/lin…
-
确定你是CentOS7及以上版本
[root@192 Desktop]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) -
yum安装gcc相关(需要确保 虚拟机可以上外网 )
yum -y install gcc yum -y install gcc-c++ -
卸载旧版本
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 -
安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2 -
设置stable镜像仓库
# 错误 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo ## 报错 [Errno 14] curl#35 - TCP connection reset by peer [Errno 12] curl#35 - Timeout # 正确推荐使用国内的 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -
更新yum软件包索引
yum makecache fast -
安装Docker CE
yum -y install docker-ce docker-ce-cli containerd.io -
启动docker
systemctl start docker -
测试
docker version docker run hello-world docker images
Linux的防火墙端口开启
各个软件端口要开启 如tomcat的端口是8080
# 查看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 #永久生效,没有此参数重启后失效