一、Linux 权限的概念
Linux 下有两种用户:普通用户和超级用户()。
普通用户:在 linux 下做有限的事情;
超级用户:可以在 linux 系统下做任何事情,不受限制。
普通用户的提示符是“$”, 超级用户的命令提示符是“#”。
命令:su [用户名]
功能:切换用户
Linux 权限管理
1. 文件访问者的分类(人)
文件和文件目录的所有者:u—User
文件和文件目录的所有者所在的组的用户:g—Group
其他用户:o—Others
2. 文件访问权限的种类
基本权限:
read 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录信息的权限。
write 对文件而言,具有修改文件内容的权限;对目录来说,具有删除移动目录内文件的权限。
execute 对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
– 表示不具有该权限。
3. 文件权限值得表示方法
- r– 只读 权限为 4 +0+0=4
- -w- 仅可写 权限为 0 +2+0=2
- –x 仅可执行
- rw- 可读可写
- -wx 可写可执行
- r-x 可读可执行
- rwx 可读可写可执行
- — 无权限
- rwx 其中 r 权限为 4 w 为 2 x 为 1,rwx 为 4 +2+1=7
二、Linux 下基本命令
1.ls 命令:
格式::ls [选项] [目录或文件]
功能:对于目录,列出该目录下的所有子目录与文件;对于文件,列出文件名以及其他信息。
常用选项:
-a:列出目录下的所有文件,包括以 . 开头的隐含文件。
-d:将目录像文件一样显示,而不是显示其他文件。
-i:输出文件的 i 节点的索引信息。
-k:以 k 字节的形式表示文件的大小。
-l:列出文件的详细信息。
-n:用数字的 UID,GID 代替名称。
-F : 在每个文件名后面附上一个字符以说明该文件的类型,“*”表示可执行的普通文 件;“/”表示目录;“@”表示符号链接;“l”表示 FIFOS;“=”表示套接字。
2.cd 命令
格式:cd [目录名称]
常用选项:
cd .. 返回上一级目录。
cd ../.. 将当前目录向上移动两级。
cd – 返回最近访问目录。
3.pwd 命令
格式:pwd
功能:显示出当前工作目录的绝对路径。
4.touch 命令
格式:touch[选项] 文件名…
功能:touch 命令参数可以更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:
-a 仅改变指定文件的存取时间。
-c 或–no-creat 不创建任何文件。
-m 仅改变指定文件的修改时间。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决 BSD 版本 touch 指令的兼容性问题。
5.mkdir 命令
格式:mkdir [选项] dirname…
功能:mkdir 命令用来创建目录。
常用选项:
-p –parents 可以是一个路径名称。此时若路竞争的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
-m –mode=MODE 将新建目录的存取权限设置为 MODE,存取权限用给定的八进制数字表示。
6.rm 命令
格式:rm [选项] 文件列表
功能:rm 命令删除文件或目录。
常用选项:
-f –force 忽略不存在的文件,并且不给出提示信息。
-r -R,–recursive 递归地删除指定目录及其下属的各级子目录和相应的文件。
-i 交互式删除文件。
说明:rm 命令删除指定的文件,默认情况下,它不能删除目录。如果文件不可写,则标准输入是 tty(终端设备)。如果没有给出选项 - f 或者–force,rm 命令删除之前会提示用户是否删除该文件;如果用户没有回答 y 或者 Y,则不删除该文件。
7.rmdir 命令
格式:rmdir [选项] dirname
功能:删除目录。
常用选项:
-p –parents 递归删除目录 dirname,当子目录删除后其父目录为空时,也一同被删除。如果有非空的目录,则该目录保留下来。
8.man 命令
格式:man [选项] 命令
功能:man 命令格式化并显示某一命令的联机帮助手册页。
常用选项:
-k 根据关键字搜索联机帮助。
num 只在第 num 章节找。
-a 将所有章节的都显示出来。
说明:面手册分为 8 章:
1. 一般用户的命令;
2. 系统调用;
3. C 语言函数库;
4. 有关驱动程序和系统设备的解释;
5. 配置文件的解释;
6. 游戏程序的命令;
7. 有用的杂类命令,如宏命令包等;
8. 有关系统维护和管理的命令。
9.cp 命令
格式:cp [选项] 源文件或目录 目标文件或目录
功能:复制文件或目录。
常用选项:
-f –force 强行复制文件或目录,不论文件或目录是否已经存在。
-d 复制时保留文件链接。
-i –interactive 覆盖文件之前先询问用户。
-r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理。
-R 或–recursive 递归处理,将指定目录下的文件及子目录一并处理。
10.mv 命令
格式:mv [选项] 源文件或目录 目标文件或目录
功能:mv 命令对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。
常用选项:
-f force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖。
-i 若目标文件(destination)已经存在时,就会询问是否覆盖。
11.cat/tac 命令
格式:cat [选项] [文件]
功能:查看目标文件的内容。
常用选项:
-b 对非空输出行编号。
-n 对输出的所有行编号。
-s 不输出多行空行。
12.more 命令
格式:more [选项] [文件]
功能:more 命令显示文件内容,每次显示一屏。
常用选项:
-n 对输出的所有行编号。
-s 将文件中连续的空白行压缩成一个空白行显示。
-num 这个选项制定一个整数,表示一屏显示多少行。
q 退出 more。
13.less 命令
格式:less [参数] 文件
功能:less 命令与 more 命令类似,但二者存在差别,less 命令允许用户向前或向后浏览文件,而 more 命令只能向前浏览。
常用选项:
-i 忽略搜索时的大小写。
-N 显示每行的行号。
14.head 命令
格式:head [选项] [文件]
功能:head 命令在屏幕上显示指定文件的开头若干行。
常用选项:
-c –bytes=[-]N 显示每个文件前面 N 字节。
-n –lines=[-]N 显示指定文件的前面 N 行。
15.tail 命令
格式:tail [选项] [文件]
功能:用于显示指定文件的末尾,不指定文件时,作为输入信息进行处理。常用查看日志文件。
说明:tail 命令从指定点开始将文件写到标注输出。使用 tail 命令的 - f 选项可以方便的查阅正在改变的日志文件,tail -f filename 会把 filename 里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。
常用选项:
-f 循环读取。
-n < 行数 > 显示行数。
16. 时间相关的命令
date 显示
date 指定格式显示时间:date+%Y:%m:%d
date 用法:date:date[OPTION]… [+FORMAT]
%H 小时(00..23)
%M 分钟(00..59)
%S 秒(00..61)
%X 相当于 %H:%M:%S
%d 日(01..31)
%m 月份(01..12)
%Y 完整年份(0000..9999)
%F 相当于 %Y-%m-%d
时间戳
时间 -> 时间戳:date+%s
时间戳 -> 时间:Unix 时间戳是从 1970 年 1 月 1 日开始所经过的秒数,不考虑闰秒。
17.cal 命令
格式:cal [参数] [月份] [年份]
功能:用于查询日历等时间信息,如果只有一个参数,则表示年份(1-9999),如果有两个参数,则表示月份和年份。
常用选项:
-3 显示系统前一个月,当前月,下一个月的月历。
-j 显示在当年中的第几天(一年日期按天算,从 1 月 1 日算起,默认显示当前月在一年中的天数)。
-y 显示当前年份的日历。
18.find 命令
格式:find pathname -options
功能:用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)。
常用选项:
-name 按照文件名查找文件。
19.grep 命令
格式:grep [选项] 搜寻字符串文件
功能:在文件中搜索字符串,将找到的行打印出来。
常用选项:
-i 忽略大小写的不同,所以大小写视为相同。
-n 顺便输出行号。
-v 反向选择,亦即显出没有‘搜寻字符串’内容的那一行。
20.zip/unzip 命令
格式:zip 压缩文件.zip 目录或文件
功能:将目录或文件压缩成 zip 格式。
常用选项:
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
21.tar 命令
格式:tar [-cxtzjvf] 文件与目录… 参数
功能:打包 / 解包,不打开它,直接看内容。
-c 建立一个压缩文件的参数指令(create 的意思)。
-x 解开一个压缩文件的参数指令。
-t 查看 tarfile 里面的文件。
-z 是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j 是否同时具有 bzip 的属性?亦即是否需要用 bzip 压缩?
-v 压缩的过程中显示文件。这个常用,不建议用在背景执行过程。
-f 使用档名,请留意,在 f 之后要立即接档名,不要再加参数。
-C 解压到指定目录。
22.bc 命令
bc 命令可以很方便的进行浮点运算。
23.uname - r 命令
格式:uname [选项]
功能:uname 用来获取电脑和操作系统的相关信息。
常用选项:
-a 或 -all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。
24. 如何查找特定的文件
find ~ -name “target.java” : 精确查找文件
find ~ -name “target*” : 模糊查找文件
find ~ -iname “target*”:不区分文件名大小写去查找文件
man find:更多关于 find 指令的使用说明
25. 检索文件内容
grep ‘partial\[true\]’ bsc-ll.log : 检索出包含某字段的文件展示相关的行
grep -o ‘engine\[[0-9a-z]*\]’ : 通过杠 o 选项选出符合正则表达式的字段
grep -v ‘grep’ : 过滤包含相关字符串的内容
26. 对文件内容做统计(对列进行操作)
awk‘{print $1,$4}’ net.txt : 打印出第一列和第四列的数据
awk’$1==”tcp” && $2==1{print $0}’ net.txt : 打印满足第一列和第二列所有数据
awk ‘{enginearr[$1]++}END{for(i in enginearr)print i “\t” enginearr[i]}’
awk’($1==”tcp” && $2==1) ||NR==1 {print $0}’ net.txt 打印满足第一列和第二列所有数据加表头
awf -F ‘,’ {print $2} net.txt : 以逗号作为分割负
27. 批量替换文本内容(对行进行操作)
sed -i ‘s/^Str/String/’ ne.txt 将 Str 替换为 String
sed -i ‘s/\.$/\;/’ ne.txt : 将逗号替换为分号
sed -i ‘s/Jack/me/g’ ne.txt : 将文本中所有 jack 改成 me
sed -i ‘/inter/d’ net.txt:删除指定的行
三、Linux 搭建环境
- MySQL 搭建常用命令
安装:
- 下载:yum install mysql -community -server
- 解压:tar -xvzf mysql-5.6.38-linux-glibc2.12-i686.tar.gz
- 移动到指定目录:mv mysql-5.6.38-linux-glibc2.12-i686/ mysql
- 查看初始化密码:cat /var/log/mysql.log | grep password
1. 开启和关闭
- 开启: service mysqld start
- 关闭: service mysqld stop
- 重启: service mysqld restart
2. 登录
2.1. 密码明文
语法:mysql - u 用户名 - p 用户密码
举例:mysql -uroot -p123456
2.2. 密码密文
语法:mysql - u 用户名 -p+ 回车,然后输入密码
举例:mysql -uroot -p
3. 修改密码
3.1.SET PASSWORD 命令(需登录)
- 语法:mysql> set password for 用户名 @localhost = password(‘ 新密码 ’);
- 举例:mysql>set password for root@localhost = password(‘123456’);
- 或者 set password=’ 新密码 ’;
- 想设置简单密码提示错误解决方法:
3.2. 使用 sql 语句更新 mysql 库中的 user 表(需登录)
mysql> use mysql;
mysql> update user set password=password(‘123′) where user=’root’ and host=’localhost’;
mysql> flush privileges;
3.3.mysqladmin 命令,明文(不需登录)
语法:mysqladmin - u 用户名 - p 旧密码 password 新密码
举例:mysqladmin -uroot -p123 password 123456
3.4.mysqladmin 命令,密文(不需登录)
语法:mysqladmin - u 用户名 - p 旧密码 password+ 回车,然后输入两次新密码
举例:mysqladmin -uroot -p123 password
4. 常用操作(需登录)
4.1. 显示数据库列表
show databases;
4.2. 创建、删除数据库
create database 数据库名;
drop database 数据库名;
4.3. 显示库中的数据表
use mysql;
show tables;
4.4. 显示数据表结构
describe 数据表名;
5. 导入、导出数据库(不需登录)
5.1. 导出所有数据库
语法:mysqldump - u 用户名 - p 密码 –all-databases > 导出路径
举例:mysqldump -uroot -p123456 –all-databases >/tmp/all.sql
5.2. 导出指定数据库
语法:mysqldump - u 用户名 - p 密码 –databases 数据库名 > 导出路径
举例:mysqldump -uroot -p123456 –databases testdatebase >/tmp/testdatebase.sql
5.3. 导出指定数据库的结构(无数据)
语法:mysqldump - u 用户名 - p 密码 –no-data –databases 数据库名 > 导出路径
举例:mysqldump -uroot -p123456 –no-data –databases testdatebase >/tmp/testdatebase_no_data.sql
5.4. 导出指定数据库中的指定表
语法:mysqldump - u 用户名 - p 密码 –databases 数据库名 –tables 数据表名 > 导出路径
举例:mysqldump -uroot -p123456 –databases testdatebase –tables t_user >/tmp/testdatebase_user.sql
5.5. 导出指定数据库中的指定表的结构(无数据)
语法:mysqldump - u 用户名 - p 密码 –no-data –databases 数据库名 –tables 数据表名 > 导出路径
举例:mysqldump -uroot -p123456 –no-data –databases testdatebase –tables t_user >/tmp/testdatebase_user_no_data.sql
5.6. 导出指定数据库中的指定表,设置查询条件
语法:mysqldump - u 用户名 - p 密码 –databases 数据库名 –tables 数据表名 –where=’ 条件 ’> 导出路径
举例:mysqldump -uroot -p123456 –databases testdatebase –tables t_user –where=’user_no=1′>/tmp/mysql_user_no.sql
5.7. 跨服务器备份数据库
将 host1 服务器中的 db1 数据库的所有数据导入到 host2 中的 db2 数据库中,db2 的数据库必须存在否则会报错
(经测试,在 mysql5.5 版本中,db2 存在即可,实际生成数据库名称与 db1 一致;加上 - C 参数可以启用压缩传递)
语法:mysqldump –host=host1 - u 用户名 - p 密码 –databases db1 |mysql –host=host2 - u 用户名 - p 密码 –databases db2
举例:mysqldump –host=192.168.1.101 -uroot -p123456 -C –databases testdatebase |mysql –host=192.168.3.102 -uroot -p123456 –database testdatebase
5.8. 通过 sql 文件导入数据库
语法:mysql - u 用户名 - p 密码 < 导入路径
举例:mysql -uroot -p123456 < /tmp/testdatebase.sql
- Nginx 搭建
- 安装:yum install nginx
- 启动 service nginx start /(restart)
- 停止:service nginx stop
- 重载:service nginx reload
- 搜索 nginx 进程是否启动:ps -ef | grep nginx
- 缓存服务
memcached
- 安装:yum install memcached
- 启动:memcached -d -l -m -p
- 停止:kill pid
Redis 基本操作
- 源码编译安装
- 启动:redis -server start/restart
- 停止:redis server stop
- 客户端:redis -client
**
- java 安装
**
- yum -y install java-1.8.0-openjdk*
- Apache 基本操作
- 安装:yum install httpd
- 启动:service httpd start /restart
- 停止:service httpd stop
- 重载:service httpd load
四、Linux 系统根目录下各个目录的作用
/bin 二进制可执行命令。该目录下存放着普通用户的命令
/dev 系统的设备文件,即设备的驱动程序
/home 存放用户文件的主目录,用户数据
/lib 存放着和系统运行相关的库文件
/mnt 存放临时的映射文件,通常是一些用来安装其他设备的子目录
/boot 存放启动 linux 的核心文件
/media 存放着可移除的设备,比如软盘,光盘
/misc 储存着一些特殊的字符的定义
/net 存放着和网络相关的一些文件
/proc 存放着用户与内核的交互信息
/sbin 系统的管理命令,这里存放的是系统管理员使用的程序
/srv 系统启动服务时可以访问的数据库目录
/tmp 临时文件,重启后自动清空
/var 存放系统产生的经常变化的文件
/etc 系统所有的配置文件都在这个目录中
/opt (option : 自由选择)主要给源码安装软件时选择的安装目录位置
/root 超级用户的目录
/selinux 主要用来加固操作系统,提高系统的安全性
/sys 管理设备文件
/usr 最大的目录,存放着应用程序和文件
/lost-found 这个目录平时是空的,当系统非正常关机而留下的“无家可归”的文件便会储存在这里