Linux

linux 目录结构

目录 说明
bin 存放二进制可执行文件(ls,cat,mkdir等)
boot 存放用于系统引导时使用的各种文件
dev 用于存放设备文件
etc 存放系统配置文件
home 存放所有用户文件的根目录
lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
mnt 系统管理员安装临时文件系统的安装点
opt 额外安装的可选应用程序包所放置的位置
proc 虚拟文件系统,存放当前内存的映射
root 超级用户目录
sbin 存放二进制可执行文件,只有root才能访问
tmp 用于存放各种临时文件
usr 用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
var 用于存放运行时需要改变数据的文件

Linux 操作文件目录

命令 说明 语法 参数 参数说明
ls 显示文件和目录列表 ls [-alrtAFR] [name…]
列出文件的详细信息 -l
列出当前目录所有文件,包含隐藏文件 -a
mkdir 创建目录 mkdir [-p] dirName
父目录不存在情况下先生成父目录 -p
cd 切换目录 cd [dirName]
touch 生成一个空文件
echo 生成一个带内容文件 echo abcd > 1.txt,echo 1234 >> 1.txt
cat 显示文本文件内容 cat [-AbeEnstTuv] [–help] [–version] fileName
cp 复制文件或目录 cp [options] source dest
rm 删除文件 rm [options] name…
强制删除文件或目录 -f
同时删除该目录下的所有文件 -r
mv 移动文件或目录 mv [options] source dest
find 在文件系统中查找指定的文件
文件名 -name
grep 在指定的文本文件中查找指定的字符串
tree 用于以树状图列出目录的内容
pwd 显示当前工作目录
ln 建立软链接
more 分页显示文本文件内容
head 显示文件开头内容
tail 显示文件结尾内容
跟踪输出 -f

Linux 系统管理命令

                                 | 命令   | 说明                                       |

| -------- | -------------------------------------------- | -------- | -------------------------------------------- |
| stat | 显示指定文件的相关信息,比ls命令显示内容更多 | stat | 显示指定文件的相关信息,比ls命令显示内容更多 |
| who | 显示在线登录用户 | who | 显示在线登录用户 |
| hostname | 显示主机名称 | hostname | 显示主机名称 |
| uname | 显示系统信息 | uname | 显示系统信息 |
| top | 显示当前系统中耗费资源最多的进程 | top | 显示当前系统中耗费资源最多的进程 |
| ps | 显示瞬间的进程状态 | ps | 显示瞬间的进程状态 |
| du | 显示指定的文件(目录)已使用的磁盘空间的总量 | du | 显示指定的文件(目录)已使用的磁盘空间的总量 |
| df | 显示文件系统磁盘空间的使用情况 | df | 显示文件系统磁盘空间的使用情况 |
| free | 显示当前内存和交换空间的使用情况 | free | 显示当前内存和交换空间的使用情况 |
| ifconfig | 显示网络接口信息 | ifconfig | 显示网络接口信息 |
| ping | 测试网络的连通性 | ping | 测试网络的连通性 |
| netstat | 显示网络状态信息 | netstat | 显示网络状态信息 |
| clear | 清屏 | clear | 清屏 |
| kill | 杀死一个进程 | kill | 杀死一个进程 |

Linux 开关机命令

命令 语法 参数 参数说明
shutdown shutdown [-t seconds] [-rkhncfF] time [message]
-t seconds 设定在几秒钟之后进行关机程序
-k 并不会真的关机,只是将警告讯息传送给所有只用者
-r 关机后重新开机(重启)
-h 关机后停机
-n 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机
-c 取消目前已经进行中的关机动作
-f 关机时,不做 fcsk 动作(检查 Linux 档系统)
-F 关机时,强迫进行 fsck 动作
time 设定关机的时间
message 传送给所有使用者的警告讯息
  • 重启
    • reboot
    • shutdown -r now
  • 关机
    shutdown -h now

Linux 压缩命令

tar

命令 语法 参数 参数说明
tar tar [-cxzjvf] 压缩打包文档的名称 欲打包目录
-c 建立一个归档文件的参数指令
-x 解开一个归档文件的参数指令
-z 是否需要用 gzip 压缩
-j 是否需要用 bzip2 压缩
-v 压缩的过程中显示文件
-f 使用档名,在 f 之后要立即接档名
-tf 查看归档文件里面的文件
  • tar:tar tar [-cxzjvf] 压缩打包文档的名称 欲打包目录
    • 压缩文件夹:tar -zcvf test.tar.gz test
    • 解压文件夹:tar -zxvf test.tar.gz

gzip

命令 语法 参数 参数说明
gzip gzip [选项] 压缩(解压缩)的文件名
-d 解压缩
-l 对每个压缩文件,显示压缩文件的大小,未压缩文件的大小,压缩比,未压缩文件的名字
-v 对每一个压缩和解压的文件,显示文件名和压缩比
-num 用指定的数字num调整压缩的速度,-1或–fast表示最快压缩方法(低压缩比),-9或–best表示最慢压缩方法(高压缩比)。系统缺省值为6
说明:压缩文件后缀为 gz

bzip2

命令 语法 参数 参数说明
bzip2 bzip2 [-cdz]
-d 解压缩
-z 压缩参数
-num 用指定的数字num调整压缩的速度,-1或–fast表示最快压缩方法(低压缩比),-9或–best表示最慢压缩方法(高压缩比)。系统缺省值为6
说明:压缩文件后缀为 bz2

Linux 软件包管理

一、查看系统版本

lsb_release -a
输出结果为
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 16.04 LTS
Release:    16.04
Codename:    xenial
注意: Codename 为 xenial,该名称为我们 Ubuntu 系统的名称,修改数据源需要用到该名称

二、编辑数据源

vi /etc/apt/sources.list

三、删除全部内容并修改为

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse

四、更新数据源

apt-get update

常用 APT 命令

安装软件包

apt-get install packagename

删除软件包

apt-get remove packagename

测底删除软件包

apt-get autoremove packagename

更新软件包列表

apt-get update

Linux 用户和组管理

使用 Root 用户

在实际生产操作中,我们基本上都是使用超级管理员账户操作 Linux 系统,也就是 Root 用户,Linux 系统默认是关闭 Root 账户的,我们需要为 Root 用户设置一个初始密码以方便我们使用。

设置 Root 账户密码

sudo passwd root

切换到 Root

su

设置允许远程登录 Root

vi /etc/ssh/sshd_config

# Authentication:
LoginGraceTime 120
#PermitRootLogin without-password     //注释此行
PermitRootLogin yes                             //加入此行
StrictModes yes

重启服务
service ssh restart

Linux 文件权限管理

查看文件和目录的权限

  • -:普通文件
  • rw-:说明用户 lusifer 有读写权限,没有运行权限
  • r--:表示用户组 lusifer 只有读权限,没有写和运行的权限
  • r--:其他用户只有读权限,没有写权限和运行的权限

文档类型

  • d 表示目录
  • l 表示软连接
  • – 表示文件
  • c 表示串行端口字符设备文件
  • b 表示可供存储的块设备文件
  • 余下的字符 3 个字符为一组。r 只读,w 可写,x 可执行,- 表示无此权限

更改操作权限

chown

是 change owner 的意思,主要作用就是改变文件或者目录所有者,所有者包含用户和用户组
chown [-R] 用户名称 文件或者目录

chown [-R] 用户名称 用户组名称 文件或目录

-R:进行递归式的权限更改,将目录下的所有文件、子目录更新为指定用户组权限

chmod

改变访问权限
chmod [who] [+ | - | =] [mode] 文件名
who

表示操作对象可以是以下字母的一个或者组合

  • u:用户 user
  • g:用户组 group
  • o:表示其他用户
  • a:表示所有用户是系统默认的
操作符号
  • +:表示添加某个权限
  • -:表示取消某个权限
  • =:赋予给定的权限,取消文档以前的所有权限
mode

表示可执行的权限,可以是 r、w、x

文件名

文件名可以使空格分开的文件列表

示例

lusifer@UbuntuBase:~$ ls -al test.txt 
-rw-rw-r-- 1 lusifer lusifer 6 Nov  2 21:47 test.txt
lusifer@UbuntuBase:~$ chmod u=rwx,g+r,o+r test.txt 
lusifer@UbuntuBase:~$ ls -al test.txt 
-rwxrw-r-- 1 lusifer lusifer 6 Nov  2 21:47 test.txt
lusifer@UbuntuBase:~$

数字设定法

数字设定法中数字表示的含义

  • 0 表示没有任何权限
  • 1 表示有可执行权限 = x
  • 2 表示有可写权限 = w
  • 4 表示有可读权限 = r
也可以用数字来表示权限如 chmod 755 file_name
r w x r – x r - x
4 2 1 4 - 1 4 - 1
user group others

若要 rwx 属性则 4+2+1=7

若要 rw- 属性则 4+2=6

若要 r-x 属性则 4+1=5

lusifer@UbuntuBase:~$ chmod 777 test.txt 
lusifer@UbuntuBase:~$ ls -al test.txt 
-rwxrwxrwx 1 lusifer lusifer 6 Nov  2 21:47 test.txt

lusifer@UbuntuBase:~$ chmod 770 test.txt 
lusifer@UbuntuBase:~$ ls -al test.txt 
-rwxrwx--- 1 lusifer lusifer 6 Nov  2 21:47 test.txt

Linux 安装 Tomcat

解压缩并移动到指定目录

解压缩
tar -zxvf apache-tomcat-8.5.23.tar.gz
变更目录名
mv apache-tomcat-8.5.23 tomcat
移动目录
mv tomcat/ /usr/local/

常用命令

启动

/usr/local/tomcat/bin/startup.sh

停止

/usr/local/tomcat/bin/shutdown.sh

目录内执行脚本

./startup.sh

Linux 安装 Java

下载地址

http://www.oracle.com/technetwork/java/javase/downloads/index.html

解压缩并移动到指定目录

解压缩

tar -zxvf jdk-8u152-linux-x64.tar.gz

创建目录

mkdir -p /usr/local/java

移动安装包

mv jdk1.8.0_152/ /usr/local/java/

设置所有者

chown -R root:root /usr/local/java/

配置环境变量

配置系统环境变量

vi /etc/environment

添加如下语句

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
export JAVA_HOME=/usr/local/soft/java/jdk1.8.0_152
export JRE_HOME=/usr/local/soft/java/jdk1.8.0_152/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

配置用户环境变量

vi /etc/profile

添加如下语句

if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='h:w$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

export JAVA_HOME=/usr/local/soft/java/jdk1.8.0_152
export JRE_HOME=/usr/local/soft/java/jdk1.8.0_152/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

使用户环境变量生效

source /etc/profile

测试是否安装成功

root@UbuntuBase:/usr/local/java# java -version
java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)

为其他用户更新用户环境变量

su faramita
source /etc/profile

Linux 安装 MySQL

安装

更新数据源

apt-get update

安装 MySQL

apt-get install mysql-server

系统将提示您在安装过程中创建 root 密码。选择一个安全的密码,并确保你记住它,因为你以后需要它。接下来,我们将完成 MySQL 的配置。

配置

因为是全新安装,您需要运行附带的安全脚本。这会更改一些不太安全的默认选项,例如远程 root 登录和示例用户。在旧版本的 MySQL 上,您需要手动初始化数据目录,但 Mysql 5.7 已经自动完成了。

运行安全脚本:

mysql_secure_installation

这将提示您输入您在之前步骤中创建的 root 密码。您可以按 Y,然后 ENTER 接受所有后续问题的默认值,但是要询问您是否要更改 root 密码。您只需在之前步骤中进行设置即可,因此无需现在更改。

测试

按上边方式安装完成后,MySQL 应该已经开始自动运行了。要测试它,请检查其状态。

root@ubuntu:~$ systemctl status mysql.service
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2017-11-21 13:04:34 CST; 3min 24s ago
 Main PID: 2169 (mysqld)
   CGroup: /system.slice/mysql.service
           └─2169 /usr/sbin/mysqld

Nov 21 13:04:33 ubuntu systemd[1]: Starting MySQL Community Server...
Nov 21 13:04:34 ubuntu systemd[1]: Started MySQL Community Server.

查看 MySQL 版本:

mysqladmin -p -u root version

配置远程访问

  • 修改配置文件
vi /etc/mysql/mysql.conf.d/mysqld.cnf
  • 注释掉(语句前面加上 # 即可):
bind-address = 127.0.0.1
  • 重启 MySQL
service mysql restart
  • 登录 MySQL
mysql -u root -p
  • 授权 root 用户允许所有人连接
grant all privileges on *.* to 'root'@'%' identified by '你的 mysql root 账户密码';

因弱口令无法成功授权解决步骤

  • 查看和设置密码安全级别
select @@validate_password_policy;
set global validate_password_policy=0;
  • 查看和设置密码长度限制
select @@validate_password_length;
set global validate_password_length=1;

常用命令

启动

service mysql start

停止

service mysql stop

重启

service mysql restart

其它配置

修改配置 mysqld.cnf 配置文件

vi /etc/mysql/mysql.conf.d/mysqld.cnf

配置默认字符集

在 [mysqld] 节点上增加如下配置

[client]
default-character-set=utf8

在 [mysqld] 节点底部增加如下配置

default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci

配置忽略数据库大小写敏感

在 [mysqld] 节点底部增加如下配置

lower-case-table-names = 1
原文地址:https://www.cnblogs.com/faramita/p/11306079.html