精华内容
下载资源
问答
  • 常用姓名大全
    千次阅读
    2022-04-06 17:16:42

    连接MySQL

    mysql -h主机地址 -u用户名 -p用户密码

    1、连接到本机上的 MySQL。

    首先在打开 DOS 窗口,然后进入目录 mysqlbin,再键入命令 mysql -uroot -p,回车后提示你输密码,如果刚安装好 MySQL,超级用户 root 是没有密码的,故直接回车即可进入到 MySQL 中了,MySQL 的提示符是:

    mysql>

    2、连接到远程主机上的 MySQL。假设远程主机的 IP 为:110.110.110.110,用户名为 root,密码为 abcd123。则键入以下命令:

    mysql -h110.110.110.110 -uroot -pabcd123

    注:u 与 root 可以不用加空格,其它也一样

    3、退出 MySQL 命令:

    exit

    修改密码

    mysqladmin -u用户名 -p旧密码 password 新密码

    1、给root加个密码ab12。首先在 DOS 下进入目录 mysqlbin,然后键入以下命令:

    mysqladmin -uroot -password ab12

    注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

    2、再将root的密码改为djg345。

    mysqladmin -uroot -pab12 password djg345

    增加新用户

    注意:和上面不同,下面的因为是MySQL环境中的命令,所以后面都带一个分号作为命令结束符

    grant select on 数据库.* to 用户名@登录主机 identified by "密码"

    1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令:

    grant select,insert,update,delete on *.* to test2@localhost identified by "abc";

    如果你不想test2有密码,可以再打一个命令将密码消掉。

    grant select,insert,update,delete on mydb.* to test2@localhost identified by "";

    在上面讲了登录、增加用户、密码更改等问题。下面我们来看看MySQL中有关数据库方面的操作。

    注意:你必须首先登录到MySQL中,以下操作都是在MySQL的提示符下进行的,而且每个命令以分号结束。

    MySQL 常用命令

    • create database name; 创建数据库
    • use databasename; 选择数据库
    • drop database name 直接删除数据库,不提醒
    • show tables; 显示表
    • describe tablename; 表的详细描述
    • select 中加上distinct去除重复字段
    • mysqladmin drop database name 删除数据库前,有提示。
    • select version(),current_date; 显示当前mysql版本和当前日期

    修改 MySQL中 root 的密码:

    shell> mysql -u root -pmysql> update user set password=password(”xueok654123″) where user=’root’;mysql> flush privileges; 刷新数据库mysql> use dbname; 打开数据库:mysql> show databases; 显示所有数据库mysql> show tables; 显示数据库mysql中所有的表:先 use mysql 然后执行mysql> describe user; 显示表mysql数据库中user表的列信息

    删除授权

    mysql> revoke all privileges on *.* from root@”%”;mysql> delete from user where user=”root” and host=”%”;mysql> flush privileges;

    创建一个用户 custom 在特定客户端 it363.com 登录,可访问特定数据库 fangchandb

    mysql> grant select,insert,update,delete,create,drop on fangchandb.* to custom@ it363.com identified by 'passwd';

    重命名表

    mysql> alter table t1 rename t2;

    mysqldump 工具

    备份数据库

    shell> mysqldump -h host -u root -p dbname >dbname_backup.sql

    恢复数据库

    shell> mysqladmin -h myhost -u root -p create dbnameshell> mysqldump -h host -u root -p dbname < dbname_backup.sql

    如果只想导出建表指令,则命令如下:

    shell> mysqladmin -u root -p -d databasename > a.sql

    如果只想卸出插入数据的 sql 命令,而不需要建表命令,则命令如下:

    shell> mysqladmin -u root -p -t databasename > a.sql

    那么如果我只想要数据,而不想要什么 sql 命令时,应该如何操作呢?

    mysqldump -T./ phptest driver

    其中,只有指定了-T 参数才可以导出纯文本文件,表示导出数据的目录,./ 表示当前目录,即与 mysqldump 同一目录。如果不指定 driver 表,则将导出整个数据库的数据。每个表会生成两个文件,一个为 .sql 文件,包含建表执行。另一个为 .txt 文件,只包含数据,且没有 sql 指令。

    储存查询命令

    可将查询存储在一个文件中并告诉 mysql 从文件中读取查询而不是等待键盘输入。可利用外壳程序键入重定向实用程序来完成这项工作。例如如果在文件 my_file.sql 中存放有查询,可如下执行这些查询:

    mysql > mysql -h myhost -u root -p database < sql.txt

    安装 MySQL

    Windows XP

    Mysql 4.0.17 从下次就需要用 mysql -uroot -proot 才可以登陆,在远程或本机可以使用 mysql -h 172.5.1.183 -uroot 登陆,这个根据第二行的策略确定,权限修改生效:

    net stop mysqlnet start mysql

    c:\mysql\bin\mysqladmin flush-privileges

    登陆mysql后,用 flush privileges 语句

    创建数据库 staffer

    create database staffer;

    下面的语句在mysql环境在执行

    • 显示用户拥有权限的数据库:show databases;
    • 切换到 staffer 数据库:use staffer;
    • 显示当前数据库中有权限的表:show tables;
    • 显示表 staffer 的结构:desc staffer;

    创建测试环境

    创建数据库 staffer

    mysql> create database staffer

    创建表

    create table s_position(  id int not null auto_increment,  name varchar(20) not null default '经理', #设定默认值  description varchar(100),  primary key PK_positon (id)   #设定主键);create table department(  id int not null auto_increment,  name varchar(20) not null default '系统部', #设定默认值  description varchar(100),  primary key PK_department (id)   #设定主键);create table depart_pos(  department_id int not null,  position_id int not null,  primary key PK_depart_pos (department_id,position_id)   #设定复和主键);create table staffer(  id int not null auto_increment primary key,   #设定主键  name varchar(20) not null default '无名氏',   #设定默认值  department_id int not null,  position_id int not null,  unique (department_id,position_id)   #设定唯一值);

    删除表

    drop table depart_pos;drop table department;drop table s_position;drop table staffer;drop database staffer;

    修改结构

    #表position增加列testalter table position add(test char(10));#表position修改列testalter table position modify test char(20) not null;#表position修改列test默认值alter table position alter test set default 'system';#表position去掉test默认值alter table position alter test drop default;#表position去掉列testalter table position drop column test;#表depart_pos删除主键alter table depart_pos drop primary key;#表depart_pos增加主键alter table depart_pos add primary key PK_depart_pos (department_id,position_id);

    操作数据

    #插入表departmentinsert into department(name,description) values('系统部','系统部');insert into department(name,description) values('公关部','公关部');insert into department(name,description) values('客服部','客服部');insert into department(name,description) values('财务部','财务部');insert into department(name,description) values('测试部','测试部');#插入表s_positioninsert into s_position(name,description) values('总监','总监');insert into s_position(name,description) values('经理','经理');insert into s_position(name,description) values('普通员工','普通员工');#插入表depart_posinsert into depart_pos(department_id,position_id)select a.id department_id,b.id postion_idfrom department a,s_position b;#插入表stafferinsert into staffer(name,department_id,position_id) values('陈达治',1,1);insert into staffer(name,department_id,position_id) values('李文宾',1,2);insert into staffer(name,department_id,position_id) values('马佳',1,3);insert into staffer(name,department_id,position_id) values('亢志强',5,1);insert into staffer(name,department_id,position_id) values('杨玉茹',4,1);

    查询及删除操作

    #显示系统部的人员和职位select a.name,b.name department_name,c.name position_namefrom staffer a,department b,s_position cwhere a.department_id=b.id and a.position_id=c.id and b.name='系统部';#显示系统部的人数select count(*) from staffer a,department bwhere a.department_id=b.id and b.name='系统部'#显示各部门的人数select count(*) cou,b.namefrom staffer a,department bwhere a.department_id=b.idgroup by b.name;#删除客服部delete from department where name='客服部';#将财务部修改为财务一部update department set name='财务一部' where name='财务部';

    备份和恢复

    备份数据库 staffer

    c:\mysql\bin\mysqldump -uroot -proot staffer>e:\staffer.sql

    得到的 staffer.sql 是一个 sql 脚本,不包括建库的语句,所以你需要手工创建数据库才可以导入,恢复数据库staffer,需要创建一个空库staffer

    c:\mysql\bin\mysql -uroot -proot staffer<staffer.sql

    如果不希望后来手工创建 staffer 可以

    c:\mysql\bin\mysqldump -uroot -proot --databases staffer>e:\staffer.sqlmysql -uroot -proot >e:\staffer.sql

    但这样的话系统种就不能存在 staffer 库,且无法导入其他名字的数据库,当然你可以手工修改 staffer.sql文件

    从文本向数据库导入数据

    使用工具 mysqlimport

    这个工具的作用是将文件导入到和去掉文件扩展名名字相同的表里,如将 staffer.txt 和 staffer 都导入到 staffer 表中

    常用选项及功能如下

    • -d or --delete 新数据导入数据表中之前删除数据数据表中的所有信息
    • -f or --force 不管是否遇到错误,mysqlimport将强制继续插入数据
    • -i or --ignore mysqlimport跳过或者忽略那些有相同唯一关键字的行, 导入文件中的数据将被忽略。
    • -l or -lock-tables 数据被插入之前锁住表,这样就防止了,你在更新数据库时,用户的查询和更新受到影响。
    • -r or -replace 这个选项与-i选项的作用相反;此选项将替代表中有相同唯一关键字的记录。

    --fields-enclosed- by= char

    指定文本文件中数据的记录时以什么括起的, 很多情况下数据以双引号括起。 默认的情况下数据是没有被字符括起的。

    --fields-terminated- by=char

    指定各个数据的值之间的分隔符,在句号分隔的文件中,分隔符是句号。您可以用此选项指定数据之间的分隔符。默认的分隔符是跳格符(Tab)

    --lines-terminated- by=str

    此选项指定文本文件中行与行之间数据的分隔字符串或者字符。 默认的情况下 mysqlimport 以 newline 为行分隔符,您可以选择用一个字符串来替代一个单个的字符,一个新行或者一个回车。

    mysqlimport命令常用的选项还有-v 显示版本(version),-p 提示输入密码(password)等。

    这个工具有个问题,无法忽略某些列,这样对我们的数据导入有很大的麻烦,虽然可以手工设置这个字段,但会出现莫名其妙的结果,我们做一个简单的示例,我们定义如下的depart_no.txt,保存在e盘,间隔为制表符 \t

    10 1011 1112 24

    执行如下命令

    c:\mysql\bin\mysqlimport -uroot -proot staffer e:\depart_pos.txt

    在这里没有使用列的包围符号,分割采用默认的\t,因为采用别的符号会有问题,不知道是不是windows的原因

    Load Data INFILE file_name into table_name(column1_name,column2_name)

    这个命令在mysql>提示符下使用,优点是可以指定列导入,示例如下

    c:\mysql\bin\mysql -uroot -proot staffermysql>load data infile "e:/depart_no.txt" into depart_no(department_id,position_id);

    这两个工具在 Windows 下使用都有问题,不知道是 Windows 的原因还是中文的问题,而且不指定的列它产生了空值,这显然不是我们想要的,所以谨慎使用这些工具

    mysql -uuser -ppassword --port=3307

    使用SHOW语句找出在服务器上当前存在什么数据库:

    mysql> SHOW DATABASES;

    创建一个数据库MYSQLDATA

    mysql> Create DATABASE MYSQLDATA;

    选择你所创建的数据库

    mysql> USE MYSQLDATA;

    按回车键出现 Database changed 时说明操作成功!

    查看现在的数据库中存在什么表

    mysql> SHOW TABLES;

    创建一个数据库表

    mysql> Create TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));

    显示表的结构:

    mysql> DESCRIBE MYTABLE;

    往表中加入记录

    mysql> insert into MYTABLE values ("hyq","M");

    用文本方式将数据装入数据库表中(例如D:/mysql.txt)

    mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;

    导入 .sql 文件命令(例如D:/mysql.sql)

    mysql>use database;mysql>source d:/mysql.sql;

    删除表

    mysql>drop TABLE MYTABLE;

    清空表

    mysql>delete from MYTABLE;

    更新表中数据

    mysql>update MYTABLE set sex="f" where name='hyq';UPDATE [LOW_PRIORITY] [IGNORE] tbl_nameSET col_name1=expr1 [, col_name2=expr2 ...][WHERE where_definition][ORDER BY ...][LIMIT rows]orUPDATE [LOW_PRIORITY] [IGNORE] tbl_name [, tbl_name ...]SET col_name1=expr1 [, col_name2=expr2 ...][WHERE where_definition]

    UPDATE 以新的值更新现存表中行的列。SET 子句指出要修改哪个列和他们应该给定的值。WHERE 子句如果被给出,指定哪个记录行应该被更新。否则,所有的记录行被更新。如果 ORDER BY 子句被指定,记录行将被以指定的次序更新。

    • 如果你指定关键词 LOW_PRIORITY,UPDATE 的执行将被延迟,直到没有其它的客户端正在读取表。
    • 如果你指定关键词 IGNORE,该更新语句将不会异常中止,即使在更新过程中出现重复键错误。导致冲突的记录行将不会被更新。
    • 如果在一个表达式中从 tbl_name 中访问一个列,UPDATE 使用列的当前值。举例来说,下面的语句设置 age 列值为它的当前值加 1 :

    mysql> UPDATE persondata SET age=age+1;

    UPDATE 赋值是从左到右计算的。举例来说,下列语句将 age 列设置为它的两倍,然后再加 1 :

    mysql> UPDATE persondata SET age=age*2, age=age+1;

    如果你设置列为其当前的值,MySQL 注意到这点,并不更新它。

    UPDATE 返回实际被改变的记录行数目。在 MySQL 3.22 或更新的版本中,C API 函数 mysql_info()

    返回被匹配并更新的记录行数目,以及在 UPDATE 期间发生的警告的数目。

    在 MySQL 3.23 中,你可以使用 LIMIT # 来确保只有给定的记录行数目被更改。

    如果一个 ORDER BY 子句被使用(从 MySQL 4.0.0 开始支持),记录行将以指定的次序被更新。这实际上只有连同 LIMIT 一起才有用。

    从 MySQL 4.0.4 开始,你也可以执行一个包含多个表的 UPDATE 的操作:

    UPDATE items,month SET items.price=month.price WHERE items.id=month.id;

    注意:多表 UPDATE 不可以使用 ORDER BY 或 LIMIT。

    创建表是先判断表是否存在

    create table if not exists students(……);

    从已经有的表中复制表的结构

    create table table2 select * from table1 where 1<>1;

    复制表

    create table table2 select * from table1;

    对表重新命名

    alter table table1 rename as table2;

    修改列的类型

    alter table table1 modify id int unsigned;//修改列id的类型为int unsignedalter table table1 change id sid int unsigned;//修改列id的名字为sid,而且把属性修改为int unsigned

    创建索引

    alter table table1 add index ind_id (id);create index ind_id on table1 (id);create unique index ind_id on table1 (id);//建立唯一性索引

    删除索引

    drop index idx_id on table1;alter table table1 drop index ind_id;

    联合字符或者多个列,例如将列id与":"和列name和"="连接

    select concat(id,':',name,'=') from students;

    limit 选出10到20条,第一个记录集的编号是 0

    select * from students order by id limit 9,10;

    MySQL不支持的功能:事务,视图,外键和引用完整性,存储过程和触发器

    MySQL 会使用索引的操作符号,<,<=,>=,>,=,between,in,不带%或者_开头的like

    使用索引的缺点

    • 减慢增删改数据的速度;
    • 占用磁盘空间;
    • 增加查询优化器的负担;

    当查询优化器生成执行计划时,会考虑索引,太多的索引会给查询优化器增加工作量,导致无法选择最优的查询方案;

    分析索引效率

    在一般的SQL语句前加上explain,分析结果的含义:

    1. table:表名;
    2. type:连接的类型,(ALL/Range/Ref)。其中ref是最理想的;
    3. possible_keys:查询可以利用的索引名;
    4. key:实际使用的索引;
    5. key_len:索引中被使用部分的长度(字节);
    6. ref:显示列名字或者"const"(不明白什么意思);
    7. rows:显示MySQL认为在找到正确结果之前必须扫描的行数;
    8. extra:MySQL的建议;

    使用较短的定长列

      • 尽可能使用较短的数据类型;
      • 尽可能使用定长数据类型;
        1. 用char代替varchar,固定长度的数据处理比变长的快些;
        2. 对于频繁修改的表,磁盘容易形成碎片,从而影响数据库的整体性能;
        3. 万一出现数据表崩溃,使用固定长度数据行的表更容易重新构造。使用固定长度的数据行,每个记录的开始位置都是固定记录长度的倍数,可以很容易被检测到,但是使用可变长度的数据行就不一定了;
        4. 对于MyISAM类型的数据表,虽然转换成固定长度的数据列可以提高性能,但是占据的空间也大;

    使用 not null 和 enum

    尽量将列定义为not null,这样可使数据的出来更快,所需的空间更少,而且在查询时,MySQL不需要检查是否存在特例,即null值,从而优化查询.

    如果一列只含有有限数目的特定值,如性别,是否有效或者入学年份等,在这种情况下应该考虑将其转换为enum列的值,MySQL处理的更快,因为所有的enum值在系统内都是以标识数值来表示的;

    使用 optimize table

    对于经常修改的表,容易产生碎片,使在查询数据库时必须读取更多的磁盘块,降低查询性能。具有可变长的表都存在磁盘碎片问题,这个问题对blob数据类型更为突出,因为其尺寸变化非常大。可以通过使用 optimize table 来整理碎片,保证数据库性能不下降,优化那些受碎片影响的数据表。 optimize table 可以用于 MyISAM 和 BDB 类型的数据表。实际上任何碎片整理方法都是用mysqldump 来转存数据表,然后使用转存后的文件并重新建数据表;

    使用 procedure analyse()

    可以使用procedure analyse()显示最佳类型的建议,使用很简单,在 select 语句后面加上 procedure analyse() 就可以了例如:

    select * from students procedure analyse();select * from students procedure analyse(16,256);

    第二条语句要求 procedure analyse() 不要建议含有多于 16 个值,或者含有多于 256 字节的 enum 类型,如果没有限制,输出可能会很长;

    使用查询缓存

    查询缓存的工作方式:

    第一次执行某条select语句时,服务器记住该查询的文本内容和查询结果,存储在缓存中,下次碰到这个语句时,直接从缓存中返回结果;当更新数据表后,该数据表的任何缓存查询都变成无效的,并且会被丢弃。

    配置缓存参数:

    query_cache _type:查询缓存的操作模式。有3中模式,

    • 0:不缓存;
    • 1:缓存查询,除非与 select sql_no_cache 开头;
    • 2:根据需要只缓存那些以select sql_cache开头的查询;

    query_cache_size:设置查询缓存的最大结果集的大小,比这个值大的不会被缓存。

    调整硬件

    • 在机器上装更多的内存;
    • 增加更快的硬盘以减少I/O等待时间,寻道时间是决定性能的主要因素,逐字地移动磁头是最慢的,一旦磁头定位,从磁道读则很快;
    • 在不同的物理硬盘设备上重新分配磁盘活动,如果可能,应将最繁忙的数据库存放在不同的物理设备上,这跟使用同一物理设备的不同分区是不同的,因为它们将争用相同的物理资源(磁头)。

    更多相关内容
  • 中国姓名大全,170+万个中国常用人名大全
  • 常用汉语人名大全.txt

    2019-05-23 10:59:29
    来自于搜狗热词库,包含2.5万条常用汉语人名,TXT格式,每行一条记录
  • Linux常用命令,Linux常用基本命令大全

    万次阅读 多人点赞 2022-03-19 07:58:25
    Linux常用命令大全整理前言 最近在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的Linux...

    Linux常用命令大全整理前言

    最近在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的Linux常用命令列举一下,仅供大家参考。

    需要Linux常用命令大全PDF版的关 注:微 信 公 众 号:“ C和C加加 ” 回复:“ LP ”即可获取 

    更多 linux C/C++学习资料 可以 关 注 微 信 公 众 号:“ C和C加加 ” 回复:“ Linux ”即可获取 

    一、系统信息Linux常用命令大全

    arch 显示机器的处理器架构
    uname -m 显示机器的处理器架构
    uname -r 显示正在使用的内核版本 
    dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) 
    hdparm -i /dev/hda 罗列一个磁盘的架构特性 
    hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 
    cat /proc/cpuinfo 显示CPU info的信息 
    cat /proc/interrupts 显示中断 
    cat /proc/meminfo 校验内存使用 
    cat /proc/swaps 显示哪些swap被使用 
    cat /proc/version 显示内核的版本 
    cat /proc/net/dev 显示网络适配器及统计 
    cat /proc/mounts 显示已加载的文件系统 
    lspci -tv 罗列 PCI 设备 
    lsusb -tv 显示 USB 设备 
    date 显示系统日期 
    cal 2022 显示2022年的日历表 
    date 061217002022.00 设置日期和时间 - 月日时分年.秒 
    clock -w 将时间修改保存到 BIOS 

    二、系统的关机、重启Linux常用基本命令

    shutdown -h now 关闭系统
    init 0 关闭系统
    telinit 0 关闭系统
    shutdown -h hours:minutes & 按预定时间关闭系统 
    shutdown -c 取消按预定时间关闭系统 
    shutdown -r now 重启
    reboot 重启
    logout 注销 

    三、目录操作Linux常用基本命令

    1、目录切换 cd

    命令:cd 目录

    cd /        切换到根目录
    cd /usr        切换到根目录下的usr目录
    cd ../        切换到上一级目录 或者  cd ..
    cd ~        切换到home目录
    cd -        切换到上次访问的目录

    2、目录查看 ls [-al]

    命令:ls [-al]

    ls                查看当前目录下的所有目录和文件
    ls -a            查看当前目录下的所有目录和文件(包括隐藏的文件)
    ls -l 或 ll       列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)
    ls /dir            查看指定目录下的所有目录和文件   如:ls /usr

    3、目录操作【增,删,改,查】

    创建目录【增】 mkdir

    命令:mkdir 目录

    mkdir    aaa            在当前目录下创建一个名为aaa的目录
    mkdir    /usr/aaa    在指定目录下创建一个名为aaa的目录

    删除目录或文件【删】rm

    命令:rm [-rf] 目录

    删除文件:
    rm 文件        删除当前目录下的文件
    rm -f 文件    删除当前目录的的文件(不询问)

    删除目录:
    rm -r aaa    递归删除当前目录下的aaa目录
    rm -rf aaa    递归删除当前目录下的aaa目录(不询问)

    全部删除:
    rm -rf *    将当前目录下的所有目录和文件全部删除
    rm -rf /*    【自杀命令!慎用!慎用!慎用!】将根目录下的所有文件全部删除

    注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了方便大家的记忆,无论删除任何目录或文件,都直接使用 rm -rf 目录/文件/压缩包

    目录修改【改】mv 和 cp

    重命名目录
        命令:mv 当前目录  新目录
        例如:mv aaa bbb    将目录aaa改为bbb
        注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行    重命名的操作

    剪切目录
        命令:mv 目录名称 目录的新位置
        示例:将/usr/tmp目录下的aaa目录剪切到 /usr目录下面     mv /usr/tmp/aaa /usr
        注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作

    拷贝目录
        命令:cp -r 目录名称 目录拷贝的目标位置   -r代表递归
        示例:将/usr/tmp目录下的aaa目录复制到 /usr目录下面     cp /usr/tmp/aaa  /usr
        注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不    用写-r递归

    搜索目录【查】find

    命令:find 目录 参数 文件名称
    示例:find /usr/tmp -name 'a*'    查找/usr/tmp目录下的所有以a开头的目录或文件
     

    四、文件操作Linux常用命令

    1、文件操作【增,删,改,查】

    新建文件【增】touch
    命令:touch 文件名
    示例:在当前目录创建一个名为aa.txt的文件        touch  aa.txt

    删除文件 【删】 rm
    命令:rm -rf 文件名

    修改文件【改】 vi或vim

    【vi编辑器的3种模式】
        基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
    1) 命令行模式command mode)
          控制屏幕光标的移动,字符、字或行的删除,查找,移动复制某区段及进入Insert mode下,或者到 last line mode。
          命令行模式下的常用命令:
          【1】控制光标移动:↑,↓,j
          【2】删除当前行:dd 
          【3】查找:/字符
          【4】进入编辑模式:i o a
          【5】进入底行模式::
          
    2) 编辑模式(Insert mode)
          只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
          编辑模式下常用命令:
          【1】ESC 退出编辑模式到命令行模式;
          
    3) 底行模式(last line mode)
         将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
         底行模式下常用命令:
         【1】退出编辑:   :q
         【2】强制退出:   :q!
         【3】保存并退出:  :wq

    打开文件

    命令:vi 文件名
    示例:打开当前目录下的aa.txt文件     vi aa.txt 或者 vim aa.txt

    注意:使用vi编辑器打开文件后,并不能编辑,因为此时处于命令模式,点击键盘i/a/o进入编辑模式。

    编辑文件

    使用vi编辑器打开文件后点击按键:i ,a或者o即可进入编辑模式。

    i:在光标所在字符前开始插入
    a:在光标所在字符后开始插入
    o:在光标所在行的下面另起一新行插入

    保存或者取消编辑

    保存文件:

    第一步:ESC  进入命令行模式
    第二步::     进入底行模式
    第三步:wq     保存并退出编辑

    取消编辑:

    第一步:ESC  进入命令行模式
    第二步::     进入底行模式
    第三步:q!     撤销本次修改并退出编辑

    文件的查看【查】

    文件的查看命令:cat/more/less/tail

    cat:看最后一屏

    示例:使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容
    cat sudo.conf

    more:百分比显示

    示例:使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看
    more sudo.conf

    less:翻页查看

    示例:使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上    和向下翻页,q结束查看
    less sudo.conf

    tail:指定行数或者动态查看

    示例:使用tail -10 查看/etc/sudo.conf文件的后10行,Ctrl+C结束  
    tail -10 sudo.conf

    2、权限修改

    rwx:r代表可读,w代表可写,x代表该文件是一个可执行文件,如果rwx任意位置变为-则代表不可读或不可写或不可执行文件。

    示例:给aaa.txt文件权限改为可执行文件权限,aaa.txt文件的权限是-rw-------

    第一位:-就代表是文件,d代表是文件夹
    第一段(3位):代表拥有者的权限
    第二段(3位):代表拥有者所在的组,组员的权限
    第三段(最后3位):代表的是其他用户的权限

       421  421  421
    -  rw-   ---     --

    五、压缩文件操作Linux常用命令

    1、打包和压缩

    Windows的压缩文件的扩展名  .zip/.rar
    linux中的打包文件:aa.tar      
    linux中的压缩文件:bb.gz    
    linux中打包并压缩的文件:.tar.gz

    Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。
    而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。

    命令:tar -zcvf 打包压缩后的文件名 要打包的文件
    其中:z:调用gzip压缩命令进行压缩
      c:打包文件
      v:显示运行过程
      f:指定文件名
      
    示例:打包并压缩/usr/tmp 下的所有文件 压缩后的压缩包指定名称为xxx.tar
    tar -zcvf ab.tar aa.txt bb.txt 
    或:tar -zcvf ab.tar  *

    2、解压

    命令:tar [-zxvf] 压缩文件    
    其中:x:代表解压
    示例:将/usr/tmp 下的ab.tar解压到当前目录下

    示例:将/usr/tmp 下的ab.tar解压到根目录/usr下
    tar -xvf ab.tar -C /usr------C代表指定解压的位置

    六、查找命令Linux常用命令

    1、grep

    grep命令是一种强大的文本搜索工具

    使用实例:

    ps -ef | grep sshd  查找指定ssh服务进程 
    ps -ef | grep sshd | grep -v grep 查找指定服务进程,排除gerp身 
    ps -ef | grep sshd -c 查找指定进程个数 

    2、find

    find命令在目录结构中搜索文件,并对搜索结果执行指定的操作。 

    find 默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。

    使用实例:

    find . -name "*.log" -ls  在当前目录查找以.log结尾的文件,并显示详细信息。 
    find /root/ -perm 600   查找/root/目录下权限为600的文件 
    find . -type f -name "*.log"  查找当目录,以.log结尾的普通文件 
    find . -type d | sort   查找当前所有目录并排序 
    find . -size +100M  查找当前目录大于100M的文件

    3、locate

    locate 让使用者可以很快速的搜寻某个路径。默认每天自动更新一次,所以使用locate 命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。如果数据库中没有查询的数据,则会报出locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory该错误!updatedb即可!

    yum -y install mlocate 如果是精简版CentOS系统需要安装locate命令

    使用实例:

    updatedb
    locate /etc/sh 搜索etc目录下所有以sh开头的文件 
    locate pwd 查找和pwd相关的所有文件

    4、whereis

    whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。

    使用实例:

    whereis ls    将和ls文件相关的文件都查找出来

    5、which

    which命令的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

    使用实例:

    which pwd  查找pwd命令所在路径 
    which java  查找path中java的路径 

    七、su、sudo

    1、su

    su用于用户之间的切换。但是切换前的用户依然保持登录状态。如果是root 向普通或虚拟用户切换不需要密码,反之普通用户切换到其它任何用户都需要密码验证。

    su test:切换到test用户,但是路径还是/root目录
    su - test : 切换到test用户,路径变成了/home/test
    su : 切换到root用户,但是路径还是原来的路径
    su - : 切换到root用户,并且路径是/root
    su不足:如果某个用户需要使用root权限、则必须要把root密码告诉此用户。

    退出返回之前的用户:exit

    2、sudo

    sudo是为所有想使用root权限的普通用户设计的。可以让普通用户具有临时使用root权限的权利。只需输入自己账户的密码即可。

    进入sudo配置文件命令:

    vi /etc/sudoer或者visudo
    案例:
    允许hadoop用户以root身份执行各种应用命令,需要输入hadoop用户的密码。
    hadoop  ALL=(ALL)   ALL 
     
    案例:
    只允许hadoop用户以root身份执行ls 、cat命令,并且执行时候免输入密码。 
    配置文件中: 
    hadoop  ALL=NOPASSWD:  /bin/ls, /bin/cat 

    八、系统服务

    service iptables status  --查看iptables服务的状态
    service iptables start  --开启iptables服务
    service iptables stop  --停止iptables服务
    service iptables restart  --重启iptables服务
     
    chkconfig iptables off  --关闭iptables服务的开机自启动
    chkconfig iptables on  --开启iptables服务的开机自启动

    九、网络管理Linux常用命令

    1、主机名配置

    [root@node1 ~]# vi /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=node1

    2、IP 地址配置

    [root@node1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

    3、域名映射

    /etc/hosts文件用于在通过主机名进行访问时做ip地址解析之用。所以,你想访问一个什么样的主机名,就需要把这个主机名和它对应的ip地址。

    [root@node1 ~]# vi /etc/hosts
    #### 在最后加上
    192.168.52.201  node1
    192.168.52.202  node2
    192.168.52.203  node3

    十、定时任务指令crontab 配置Linux常用命令

    crontab是Unix和Linux用于设置定时任务的指令。通过crontab命令,可以在固定间隔时间,执行指定的系统指令或shell脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。

    crontab安装:

    yum install crontabs
    服务操作说明:

    service crond start   ## 启动服务 
    service crond stop    ## 关闭服务 
    service crond restart ## 重启服务

    1、命令格式

    crontab [-u user] file

    crontab [-u user] [ -e | -l | -r ]

    参数说明:

    -u user:用来设定某个用户的crontab服务  

    file:file是命令文件的名字,表示将file做为crontab的任务列表文件

    并载入crontab。

    -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前

    用户的crontab文件。

    -l:显示某个用户的crontab文件内容。如果不指定用户,则表示显示当前

    用户的crontab文件内容。

    -r:删除定时任务配置,从/var/spool/cron目录中删除某个用户的crontab

    文件,如果不指定用户,则默认删除当前用户的crontab文件。

    命令示例:

    crontab file [-u user] ## 用指定的文件替代目前的crontab
    crontab -l [-u user]  ## 列出用户目前的crontab
    crontab -e [-u user]  ## 编辑用户目前的crontab

    2、配置说明

    命令:*   *    *   *   *   command  

    解释:分  时  日  月  周  命令

    第1列表示分钟1~59 每分钟用*或者 */1表示    

    第2列表示小时0~23(0表示0点)

    第3列表示日期1~31  

    第4列表示月份1~12  

    第5列标识号星期0~6(0表示星期天)  

    第6列要运行的命令

    十一、其他Linux常用命令

    查看当前目录:pwd
    命令:pwd     查看当前目录路径

    查看进程:ps -ef
    命令:ps -ef    查看所有正在运行的进程

    结束进程:kill
    命令:kill pid 或者 kill -9 pid(强制杀死进程)           pid:进程号

    网络通信命令:
    ifconfig:查看网卡信息

    命令:ifconfig 或 ifconfig | more

    ping:查看与某台机器的连接情况

    命令:ping ip

    netstat -an:查看当前系统端口

    命令:netstat -an

    搜索指定端口
    命令:netstat -an | grep 8080

    配置网络
    命令:setup

    重启网络
    命令:service network restart

    切换用户
    命令:su - 用户名

    关闭防火墙
    命令:chkconfig iptables off

    或者:

     iptables -L;
     iptables -F;
     service iptables stop
    修改文件权限
    命令:chmod 777

    清屏
    命令:ctrl + l

    vi模式下快捷键
    esc后:

    保存并退出快捷键:shift+z+z

    光标跳到最后一行快捷键:shift+g

    删除一行:dd

    复制一行内容:y+y

    粘贴复制的内容:p

    十二、更多linux C/C++学习资料

    需要Linux常用命令大全PDF版的 关 注:微 信 公 众 号:“ C和C加加 ” 回复:“ LP ”即可获取 ​​​​​​​

    更多 linux C/C++学习资料 可以 关 注 微 信 公 众 号:“ C和C加加 ” 回复:“ Linux ”即可获取  

    展开全文
  • 通过大数据统计的中国姓名TOP500排行榜,在渗透测试过程中,攻击者可以利用此字典进行社工和暴力破解,结合弱口令字典,成功率很高。
  • Oracle的分析函数功能非常强大,工作这些年来经常用到。这次将平时经常使用到的分析函数整理出来... sname varchar2(20), -- 打工者姓名 times int, -- 本月打工次数 singleincome number(10,2), -- 每次赚多少钱 pe
  • 史上超强最常用SQL语句大全

    万次阅读 多人点赞 2021-01-27 11:13:31
    史上超强最常用SQL语句大全,) 1)DDL--数据定义语言 用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等 2) DML--数据操作语言 用来对数据库中表的数据进行增删改。关键字:insert, delete, ...
    史上超强最常用SQL语句大全

    DDL(Data Definition Language)数据定义语言

    一、操作库

    二、操作表

    DML(Data Manipulation Language)数据操作语言

    一、增加 insert into

    二、删除 delete

    三、修改 update

    DQL(Data Query Language)数据查询语言

    一、基础关键字

    二、排序查询 order by

    三、 聚合函数:将一列数据作为一个整体,进行纵向的计算。

    四、 分组查询 group by

    五、 分页查询

    六、内连接查询:

    1.隐式内连接:使用where条件消除无用数据

     2.显式内连接

     七、外连接查询

    1.左外连接 -- 查询的是左表所有数据以及其交集部分。

     2.右外连接  -- 查询的是右表所有数据以及其交集部分。

     八、子查询:查询中嵌套查询

       1.子查询的结果是单行单列的

       2. 子查询的结果是多行单列的:

       3. 子查询的结果是多行多列的:

     DCL(Data Control Language)数据控制语言

    管理用户

    添加用户

    删除用户

    权限管理

    查询权限

    授予权限

    撤销权限

      创作不易,如果本篇博客对您有一定的帮助,大家记得留言+点赞哦。  


    DDL(Data Definition Language)数据定义语言

    一、操作库

    -- 创建库
    create database db1;
    -- 创建库是否存在,不存在则创建
    create database if not exists db1;
    -- 查看所有数据库
    show databases;
    -- 查看某个数据库的定义信息 
    show create database db1; 
    -- 修改数据库字符信息
    alter database db1 character set utf8; 
    -- 删除数据库
    drop database db1; 

    二、操作表

    --创建表
    create table student(
        id int,
        name varchar(32),
        age int ,
        score double(4,1),
        birthday date,
        insert_time timestamp
    );
    
    -- 查看表结构
    desc 表名;
    -- 查看创建表的SQL语句
    show create table 表名;
    -- 修改表名
    alter table 表名 rename to 新的表名;
    -- 添加一列
    alter table 表名 add 列名 数据类型;
    -- 删除列
    alter table 表名 drop 列名;
    -- 删除表
    drop table 表名;
    drop table  if exists 表名 ;

    DML(Data Manipulation Language)数据操作语言

    一、增加 insert into

    -- 写全所有列名
    insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);
    -- 不写列名(所有列全部添加)
    insert into 表名 values(值1,值2,...值n);
    -- 插入部分数据
    insert into 表名(列名1,列名2) values(值1,值2);

    二、删除 delete

    -- 删除表中数据
    delete from 表名 where 列名  = 值;
    -- 删除表中所有数据
    delete from 表名;
    -- 删除表中所有数据(高效 先删除表,然后再创建一张一样的表。)
    truncate table 表名;

    三、修改 update

    -- 不带条件的修改(会修改所有行)
    update 表名 set 列名 = 值;
    -- 带条件的修改
    update 表名 set 列名 = 值 where 列名=值;

    DQL(Data Query Language)数据查询语言

    关于查询语句有很多,这里基础的不再介绍。主要介绍排序查询、聚合函数、模糊查询、分组查询、分页查询、内连接、外连接、子查询

    一、基础关键字

     BETWEEN...AND (在什么之间)和  IN( 集合)

    -- 查询年龄大于等于20 小于等于30				
    SELECT * FROM student WHERE age >= 20 &&  age <=30;
    SELECT * FROM student WHERE age >= 20 AND  age <=30;
    SELECT * FROM student WHERE age BETWEEN 20 AND 30;
    				
    -- 查询年龄22岁,18岁,25岁的信息
    SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25
    SELECT * FROM student WHERE age IN (22,18,25);

     is null(不为null值) 与 like(模糊查询)、distinct(去除重复值)

    -- 查询英语成绩不为null
    SELECT * FROM student WHERE english  IS NOT NULL;
    	
     _:单个任意字符
     %:多个任意字符
    -- 查询姓马的有哪些? like
    SELECT * FROM student WHERE NAME LIKE '马%';
    -- 查询姓名第二个字是化的人			
    SELECT * FROM student WHERE NAME LIKE "_化%";				
    -- 查询姓名是3个字的人
    SELECT * FROM student WHERE NAME LIKE '___';					
    -- 查询姓名中包含德的人
    SELECT * FROM student WHERE NAME LIKE '%德%';
    
    -- 关键词 DISTINCT 用于返回唯一不同的值。
    -- 语法:SELECT DISTINCT 列名称 FROM 表名称
    SELECT DISTINCT NAME FROM  student ;
    

    二、排序查询 order by

    语法:order by 子句

              order by 排序字段1 排序方式1 ,  排序字段2 排序方式2...

    注意:
                如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。

    -- 例子
    SELECT * FROM person ORDER BY math; --默认升序
    SELECT * FROM person ORDER BY math desc; --降序

    三、 聚合函数:将一列数据作为一个整体,进行纵向的计算。

    1.count:计算个数

    2.max:计算最大值

    3.min:计算最小值

    4.sum:计算和

    5.avg:计算平均数

    四、 分组查询 grout by

          语法:group by 分组字段;

          注意:分组之后查询的字段:分组字段、聚合函数

    -- 按照性别分组。分别查询男、女同学的平均分
    SELECT sex , AVG(math) FROM student GROUP BY sex;
    
    -- 按照性别分组。分别查询男、女同学的平均分,人数
     SELECT sex , AVG(math),COUNT(id) FROM student GROUP BY sex;
    
    --  按照性别分组。分别查询男、女同学的平均分,人数 要求:分数低于70分的人,不参与分组
    SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex;
    
     --  按照性别分组。分别查询男、女同学的平均分,人数 要求:分数低于70分的人,不参与分组,分组之后。人数要大于2个人
    SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex HAVING COUNT(id) > 2;
    SELECT sex , AVG(math),COUNT(id) 人数 FROM student WHERE math > 70 GROUP BY sex HAVING 人数 > 2;

    五、 分页查询

        1. 语法:limit 开始的索引,每页查询的条数;
        2. 公式:开始的索引 = (当前的页码 - 1) * 每页显示的条数
        3. limit 是一个MySQL"方言" 

    -- 每页显示3条记录 
    
    SELECT * FROM student LIMIT 0,3; -- 第1页
    
    SELECT * FROM student LIMIT 3,3; -- 第2页
    
    SELECT * FROM student LIMIT 6,3; -- 第3页

    六、内连接查询:

       1. 从哪些表中查询数据

       2.条件是什么

       3. 查询哪些字段

    1.隐式内连接:使用where条件消除无用数据

    -- 查询员工表的名称,性别。部门表的名称
    SELECT emp.name,emp.gender,dept.name FROM emp,dept WHERE emp.`dept_id` = dept.`id`;
    
    SELECT 
        t1.name, -- 员工表的姓名
        t1.gender,-- 员工表的性别
        t2.name -- 部门表的名称
    FROM
        emp t1,
        dept t2
    WHERE 
        t1.`dept_id` = t2.`id`;

     2.显式内连接

    -- 语法: 
    select 字段列表 from 表名1 [inner] join 表名2 on 条件
    -- 例如:
    SELECT * FROM emp INNER JOIN dept ON emp.`dept_id` = dept.`id`;   
    SELECT * FROM emp JOIN dept ON emp.`dept_id` = dept.`id`; 

     七、外连接查询

    1.左外连接 -- 查询的是左表所有数据以及其交集部分。

    -- 语法:select 字段列表 from 表1 left [outer] join 表2 on 条件;
    -- 例子:
    -- 查询所有员工信息,如果员工有部门,则查询部门名称,没有部门,则不显示部门名称
    SELECT  t1.*,t2.`name` FROM emp t1 LEFT JOIN dept t2 ON t1.`dept_id` = t2.`id`;

     2.右外连接  -- 查询的是右表所有数据以及其交集部分。

    -- 语法:
    select 字段列表 from 表1 right [outer] join 表2 on 条件;
    -- 例子:
    SELECT  * FROM dept t2 RIGHT JOIN emp t1 ON t1.`dept_id` = t2.`id`;

     八、子查询:查询中嵌套查询

    -- 查询工资最高的员工信息
    -- 1 查询最高的工资是多少 9000
    SELECT MAX(salary) FROM emp;
    
    -- 2 查询员工信息,并且工资等于9000的
    SELECT * FROM emp WHERE emp.`salary` = 9000;
    
     -- 一条sql就完成这个操作。这就是子查询
    SELECT * FROM emp WHERE emp.`salary` = (SELECT MAX(salary) FROM emp);

       1.子查询的结果是单行单列的

     子查询可以作为条件,使用运算符去判断。 运算符: > >= < <= =

    -- 查询员工工资小于平均工资的人
    SELECT * FROM emp WHERE emp.salary < (SELECT AVG(salary) FROM emp);

       2. 子查询的结果是多行单列的:

       子查询可以作为条件,使用运算符in来判断

    -- 查询'财务部'和'市场部'所有的员工信息
    SELECT id FROM dept WHERE NAME = '财务部' OR NAME = '市场部';
    SELECT * FROM emp WHERE dept_id = 3 OR dept_id = 2;
    
    -- 子查询
    SELECT * FROM emp WHERE dept_id IN (SELECT id FROM dept WHERE NAME = '财务部' OR NAME = '市场部');

       3. 子查询的结果是多行多列的:

       子查询可以作为一张虚拟表参与查询

    -- 查询员工入职日期是2011-11-11日之后的员工信息和部门信息
    -- 子查询
    SELECT * FROM dept t1 ,(SELECT * FROM emp WHERE emp.`join_date` > '2011-11-11') t2 WHERE t1.id = t2.dept_id;
    
    -- 普通内连接
    SELECT * FROM emp t1,dept t2 WHERE t1.`dept_id` = t2.`id` AND t1.`join_date` >  '2011-11-11'

     DCL(Data Control Language)数据控制语言

    管理用户

    添加用户

    语法:CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

    删除用户

    语法:DROP USER '用户名'@'主机名';

    权限管理

    查询权限

    -- 查询权限
    SHOW GRANTS FOR '用户名'@'主机名';
    SHOW GRANTS FOR 'lisi'@'%';

    授予权限

    -- 授予权限
    grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
    
    -- 给张三用户授予所有权限,在任意数据库任意表上
    GRANT ALL ON *.* TO 'zhangsan'@'localhost';

    撤销权限

    -- 撤销权限:
    revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';
    REVOKE UPDATE ON db3.`account` FROM 'lisi'@'%';

      创作不易,如果本篇博客对您有一定的帮助,大家记得留言+点赞哦。  

    展开全文
  • linux常用命令大全,入门基础版

    千次阅读 2021-11-28 17:43:57
    一、常用的基本命令 1.目录管理 2.进程管理 3.修改文件属性 4.文件内容查看 5.安装软件 6.Vim编辑器 7.基本属性 8.账号管理 9.用户组管理 10.磁盘管理 二、Linux 目录结构 一、常用的基本命令 1.目录...

    目录

    一、常用的基本命令

    1.目录管理

    2.进程管理

    3.修改文件属性

    4.文件内容查看

    5.安装软件

    6.Vim编辑器

    7.基本属性

    8.账号管理

    9.用户组管理

    10.磁盘管理

    二、Linux 目录结构


    一、常用的基本命令

    1.目录管理

    • ls:   #列出目录
      
          -a:   #参数: all ,查看全部的文件,包括隐藏文件
       
          -l:   #参数 列出所有的文件,包含文件的属性和权限,没有隐藏文件
      
      cd:  #切换目录
      
      /cd   #当前目录
      
      cd .. #返回上一级目录
      
      cd /.../... #切换绝对路径
      
      cd .../.... #切换相对路径
      
      pwd       #显示用户所在的目录
      
      
      mkdir     #创建一个新的目录
      
      mkdir -p  #创建多层目录
      
      rmdir:   #删除一个空的目录
      
      rmdir -p  #删除多层空的目录
      
      cp:       #复制文件或目录 在文件所在目录执行 cp 要复制的文件 目标路径/
      
      
      rm:       #移除文件或目录
      
          rm -f   #忽略不存在的文件,不会出现警告,强制删除!
      
          rm -r    #递归删除
      
          rm -i   #互动
      
          rm -rf  #相当于删库跑路
      
      
      mv:         #移动文件与目录,或修改文件与目录的名称 在文件所在目录执行 mv 要移动的文件 目标路径/
      
          mv -f     #强制v
      
          mv -u     #只替换更新后的文件
      
      hostname name      #修改主机名
      
      tar -zxvf tar.gz   #解压命令

    2.进程管理

    1.在linux中,每一个程序都有一个自己的进程,每一个进程都有一个id号

    2.每一个进程,都会有一个父进程

    3.进程可以有两种存在方式:前台,后台

    4.一般服务都是后台运行的,基本的程序都是前台运行的

    查看进程

    ps     #看当前系统中正在执行的各种进程信息:
    
    ps-xx:
    
      -a   #显示当期终端运行的所有的进行信息(当前的进程)
    
      -u   #以用户的信息显示进程
    
      -x    #显示后台运行进程的参数 比如jar包 java-jar xxxx.jar
    
    ps -aux |     #查看所有进程
    ps -aux | grep  mysql    #查看mysql的进程
        # | 管道符  A|B
        #grep   查看文件中符合条件中的字符串
        #查看父进程的信息
    ps -ef:   #可以看到父进程的信息
    
    #进程树
    pstree -pu  
        -p   #显示父级 id
        -u   #显示子集 id
     
    

    结束进程

    kill -9   #强制杀死进程

    3.修改文件属性

    3.1、chgrp:更改文件属组

    chgrp [-R] 属组名 文件名

    -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

    3.2、chown:更改文件属主,也可以同时更改文件属组

    chown [–R] 属主名 文件名chown [-R] 属主名:属组名 文件名

    3.3、chmod:更改文件9个属性

    chmod [-R] xyz 文件或目录

    Linux文件属性有两种设置方法,一种是数字(常用的是数据),一种是符号。

    Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。

    文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

    r:4     w:2         x:1
    可读可写可执行    rwx  7
    可读可写不可执行  rw-  6
    ​

    4.文件内容查看

    概述

    Linux系统中使用以下命令来查看文件的内容:

    • cat    #由第一行开始显示文件内容
      
      tac    #从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
      
      nl     #显示的时候,顺道输出行号!
      
      more   #一页一页的显示文件内容 空格代表翻页,回车代表向下看一行,:f 显示行号。
      
      less 与 more 类似,但是比 more 更好的是,他可以往前翻页! 上下键可以实现上下翻页
      
      空白键 :向下翻动一页;
      
      [pagedown]:向下翻动一页;
      
      [pageup] :向上翻动一页;
      
      /字串 :向下搜寻『字串』的功能;
      
      ?字串 :向上搜寻『字串』的功能;
      
      n :重复前一个搜寻 (与 / 或 ? 有关!)
      
      N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
      
      q :离开 less 这个程序
      
      head 只看头几行 -n 后面接数字,代表显示几行的意思!
      
      tail 只看尾巴几行

    5.安装软件

    软件安装一般有三种方式:

    • rpm

    • 解压缩

    • yum在线安装

    5.1.jdk安装(rpm安装)

    1、rpm下载地址Java Downloads | Oracle

    2、如果有安装openjdk 则卸载

    #查看jdk版本    java -versionjava version 
    #检查              rpm -qa|grep jdk 
    #卸载              -e --nodeps 
    #强制删除       rpm -e --nodeps jdk对应的信息
    ​

    3、安装JDK

    # 安装                    rpm -ivh jdk-8u221-linux-x64.rpm
    # 安装完成后配置环境变量 文件: 打开 vim /etc/profile 
        JAVA_HOME=/usr/java/jdk1.8.0_221amd64   (注意java安装路径)
        CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/libPATH=$PATH:$
        JAVA_HOME/bin:$JAVA_HOME/jre/bin
        export PATH CLASSPATH JAVA_HOME# 
    # 让新增的环境变量生效!     source /etc/profile
    # 测试                    java -version

    5.2.Tomcat安装(解压缩安装)

    1、将文件移动到/usr/tomcat/下,并解压!

    tar -zxvf 文件名.tar.gz   # 解压

    2、运行Tomcat,进入bin目录,和我们以前在Windows下看的都是一样的(.sh win下是bat)

    # 执行:  ./startup.sh     -->启动tomcats
    # 停止:  ./shutdown.sh    -->关闭tomcats

    3、确保Linux的防火墙端口是开启的

    # 查看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   #打开80端口
    #重启防火墙:
    systemctl restart firewalld.service
    ​
    命令含义:
    --zone              #作用域
    --add-port=80/tcp   #添加端口,格式为:端口/通讯协议
    --permanent         #永久生效,没有此参数重启后失效

    5.3.安装Docker(yum安装)

    基于 CentOS 7 安装

    1. 官网安装参考手册:Redirecting…

    2. 确定你是CentOS7及以上版本

      cat /etc/redhat-release

    3. yum安装gcc相关(需要确保 虚拟机可以上外网 )

      yum -y install gcc   #yum -y install 包名  -y 所有的提示都为 y
      yum -y install gcc-c++

    4. 卸载旧版本

      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

    5. 安装需要的软件包

      yum install -y yum-utils\
      device-mapper-persistent-data \
      lvm2

    6. 安装

       sudo yum install -y yum-utils
       sudo yum-config-manager \
          --add-repo \
          https://download.docker.com/linux/centos/docker-ce.repo

    7. 更新yum软件包索引

      yum makecache fast

    8. 安装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

    6.Vim编辑器

    三种使用模式

    基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode)输入模式(Insert mode)底线命令模式(Last line mode)。这三种模式的作用分别是:

    命令模式:

    用户刚刚启动 vi/vim,便进入了命令模式。

    • i 切换到输入模式,以输入字符。
      
      x 删除当前光标所在处的字符。
      
      : 切换到底线命令模式,以在最底一行输入命令。如果是编辑模式,需要先退出编辑模式

    输入模式:

    在命令模式下按下i就进入了输入模式。

    在输入模式中,可以使用以下按键:

    • 字符按键以及Shift组合,输入字符

    • ENTER,回车键,换行

    • BACK SPACE,退格键,删除光标前一个字符

    • DEL,删除键,删除光标后一个字符

    • 方向键,在文本中移动光标

    • HOME/END,移动光标到行首/行尾

    • Page Up/Page Down,上/下翻页

    • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线

    • ESC,退出输入模式,切换到命令模式

    底线命令模式

    在命令模式下按下:(英文冒号)就进入了底线命令模式。

    • q 退出程序

    • w 保存文件

    按ESC键可随时退出底线命令模式。

    vim 文件名 如果文件存在进入命令模式, 不存在就新建文件

    第一部分:一般模式可用的光标移动、复制粘贴、搜索替换等

    移动光标的方法
    h 或 向左箭头键(←)光标向左移动一个字符
    j 或 向下箭头键(↓)光标向下移动一个字符
    k 或 向上箭头键(↑)光标向上移动一个字符
    l 或 向右箭头键(→)光标向右移动一个字符
    [Ctrl] + [f]屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
    [Ctrl] + [b]屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
    [Ctrl] + [d]屏幕『向下』移动半页
    [Ctrl] + [u]屏幕『向上』移动半页
    +光标移动到非空格符的下一行
    -光标移动到非空格符的上一行
    n< space>那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。
    0 或功能键[Home]这是数字『 0 』:移动到这一行的最前面字符处 (常用)
    $ 或功能键[End]移动到这一行的最后面字符处(常用)
    H光标移动到这个屏幕的最上方那一行的第一个字符
    M光标移动到这个屏幕的中央那一行的第一个字符
    L光标移动到这个屏幕的最下方那一行的第一个字符
    G移动到这个档案的最后一行(常用)
    nGn 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
    gg移动到这个档案的第一行,相当于 1G 啊!(常用)
    n< Enter>n 为数字。光标向下移动 n 行(常用)
    搜索替换
    /word向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可!(常用)
    ?word向光标之上寻找一个字符串名称为 word 的字符串。
    n这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
    N这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
    删除、复制与粘贴
    x, X在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
    nxn 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
    dd删除游标所在的那一整行(常用)
    nddn 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
    d1G删除光标所在到第一行的所有数据
    dG删除光标所在到最后一行的所有数据
    d$删除游标所在处,到该行的最后一个字符
    d0那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符
    yy复制游标所在的那一行(常用)
    nyyn 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
    y1G复制游标所在行到第一行的所有数据
    yG复制游标所在行到最后一行的所有数据
    y0复制光标所在的那个字符到该行行首的所有数据
    y$复制光标所在的那个字符到该行行尾的所有数据
    p, Pp 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢?那么原本的第 20 行会被推到变成 30 行。(常用)
    J将光标所在行与下一行的数据结合成同一行
    c重复删除多个数据,例如向下删除 10 行,[ 10cj ]
    u复原前一个动作。(常用) 相当有Win下面的ctrl+z
    [Ctrl]+r重做上一个动作。(常用)

    第二部分:一般模式切换到编辑模式的可用的按钮说明

    进入输入或取代的编辑模式
    i, I进入输入模式(Insert mode):i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。(常用)
    a, A进入输入模式(Insert mode):a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用)
    o, O进入输入模式(Insert mode):这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处输入新的一行』;O 为在目前光标所在处的上一行输入新的一行!(常用)
    r, R进入取代模式(Replace mode):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
    [Esc]退出编辑模式,回到一般模式中(常用)

    第三部分:一般模式切换到指令行模式的可用的按钮说明

    指令行的储存、离开等指令
    :w将编辑的数据写入硬盘档案中(常用)
    :w!若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
    :q离开 vi (常用)
    :q!若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
    注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~
    :wq储存后离开,若为 :wq! 则为强制储存后离开 (常用)
    ZZ这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!
    :w [filename]将编辑的数据储存成另一个档案(类似另存新档)
    :r [filename]在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
    :n1,n2 w [filename]将 n1 到 n2 的内容储存成 filename 这个档案。
    :! command暂时离开 vi 到指令行模式下执行 command 的显示结果!例如 『:! ls /home』即可在 vi 当中看 /home 底下以 ls 输出的档案信息!
    :set nu显示行号,设定之后,会在每一行的前缀显示该行的行号
    :set nonu与 set nu 相反,为取消行号!

    7.基本属性

    十个字母

    第一个root属主 谁创建的

    第二个root属组 用户组,谁有权限

    在Linux中第一个字符代表这个文件是目录、文件或链接文件等等:

    • 当为[ d ]则是目录

    • 当为[ - ]则是文件;

    • 若是[ l ]则表示为链接文档 ( link file );

    • 若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );

    • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。

    接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。

    其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。

    8.账号管理

    简介

    Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

    用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

    8.1.添加账号

    useradd 选项 用户名

    参数说明:

    • 选项 :

      • -c comment 指定一段注释性描述。

      • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。

      • -g 用户组 指定用户所属的用户组。

      • -G 用户组,用户组 指定用户所属的附加组。

      • -m 使用者目录如不存在则自动建立。

      • -s Shell文件 指定用户的登录Shell。

      • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

    • 用户名 :

      • 指定新账号的登录名。

    查看用户 cat /etc/passwd

    8.2.切换用户

    1.切换用户的命令为:su username 【username是你的用户名哦】

    2.从普通用户切换到root用户,还可以使用命令:sudo su

    3.在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令

    4.在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:【su - root】

    $表示普通用户

    #表示超级用户,也就是root用户

    8.3.删除账户

    删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。

    userdel 选项 用户名

    常用的选项是 -r,它的作用是把用户的主目录一起删除。

    8.4.修改帐号

    修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。

    修改已有用户的信息使用usermod命令,其格式如下:

    usermod 选项 用户名

    常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。

    8.5.口令的管理

    用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。

    指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。

    passwd 用户名 为账户添加密码

    命令的格式为:

    passwd 选项 用户名

    可使用的选项:

    • -l 锁定口令,即禁用账号。

    • -u 口令解锁,解锁账号

    • -d 使账号无口令。 此命令将用户 kuangshen的口令删除 , 系统就不再允许该用户登录了

    • -f 强迫用户下次登录时修改口令。

    9.用户组管理

    每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。

    用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

    9.1.添加用户组

    • groupadd 选项 用户组
      • -g GID 指定新用户组的组标识号(GID)。

      • -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

    创建组 groupadd wdh

    创建组之后可以查看组ID cat /etc/group

    9.2.删除用户组

    groupdel 用户组

    9.3.修改属性

    groupmod 选项 用户组
    • -g GID 为用户组指定新的组标识号。

    • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。

    • -n新用户组 将用户组的名字改为新名字

    9.4.切换组

    $ newgrp root

    这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。

    9.5./etc/passwd

    /etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:

    用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
    
    

    1)"用户名"是代表用户账号的字符串。

    2)“口令”一些系统中,存放着加密后的用户口令字。

    虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux 系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。

    3)“用户标识号”是一个整数,系统内部用它来标识用户。

    一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。

    通常用户标识号的取值范围是0~65 535。0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500。

    4)“组标识号”字段记录的是用户所属的用户组。

    它对应着/etc/group文件中的一条记录。

    5)“注释性描述”字段记录着用户的一些个人情况。

    例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。在不同的Linux 系统中,这个字段的格式并没有统一。在许多Linux系统中,这个字段存放的是一段任意的注释性描述文字,用作finger命令的输出。

    6)“主目录”,也就是用户的起始工作目录。

    它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。

    7)用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。

    Shell是用户与Linux系统之间的接口。Linux的Shell有许多种,每种都有不同的特点。常用的有sh(Bourne Shell), csh(C Shell), ksh(Korn Shell), tcsh(TENEX/TOPS-20 type C Shell), bash(Bourne Again Shell)等。

    系统管理员可以根据系统情况和用户习惯为用户指定某个Shell。如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh。

    用户的登录Shell也可以指定为某个特定的程序(此程序不是一个命令解释器)。

    利用这一特点,我们可以限制用户只能运行指定的应用程序,在该应用程序运行结束后,用户就自动退出了系统。有些Linux 系统要求只有那些在系统中登记了的程序才能出现在这个字段中。

    8)系统中有一类用户称为伪用户(pseudo users)。

    这些用户在/etc/passwd文件中也占有一条记录,但是不能登录,因为它们的登录Shell为空。它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。

    常见的伪用户如下所示:

    伪 用 户 含 义bin 拥有可执行的用户命令文件sys 拥有系统文件adm 拥有帐户文件uucp UUCP使用lp lp或lpd子系统使用nobody NFS使用

    9.6/etc/shadow

    1、除了上面列出的伪用户外,还有许多标准的伪用户,例如:audit, cron, mail, usenet等,它们也都各自为相关的进程和文件所需要。

    由于/etc/passwd文件是所有用户都可读的,如果用户的密码太简单或规律比较明显的话,一台普通的计算机就能够很容易地将它破解,因此对安全性要求较高的Linux系统都把加密后的口令字分离出来,单独存放在一个文件中,这个文件是/etc/shadow文件。有超级用户才拥有该文件读权限,这就保证了用户密码的安全性。

    2、/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生

    它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用":"隔开。这些字段是:

    登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
    1. "登录名"是与/etc/passwd文件中的登录名相一致的用户账号

    2. "口令"字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合 { ./0-9A-Za-z }中的字符,则对应的用户不能登录。

    3. "最后一次修改时间"表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCO Linux 中,这个时间起点是1970年1月1日。

    4. "最小时间间隔"指的是两次修改口令之间所需的最小天数。

    5. "最大时间间隔"指的是口令保持有效的最大天数。

    6. "警告时间"字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。

    7. "不活动时间"表示的是用户没有登录活动但账号仍能保持有效的最大天数。

    8. "失效时间"字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。

    9.7/etc/group

    用户组的所有信息都存放在/etc/group文件中。

    将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段。

    每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。

    当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。

    用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。

    用户组的所有信息都存放在/etc/group文件中。此文件的格式也类似于/etc/passwd文件,由冒号(:)隔开若干个字段,这些字段有:

    组名:口令:组标识号:组内用户列表
    1. "组名"是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。

    2. "口令"字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令,即这个字段一般为空,或者是*。

    3. "组标识号"与用户标识号类似,也是一个整数,被系统内部用来标识组。

    4. "组内用户列表"是属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

    10.磁盘管理

    概述

    Linux磁盘管理好坏直接关系到整个系统的性能问题。

    Linux磁盘管理常用命令为 df、du。

    • df :列出文件系统的整体磁盘使用量

    • du:检查磁盘空间使用量

    df

    df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

    语法:

    df [-ahikHTm] [目录或文件名]

    选项与参数:

    • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;

    • -k :以 KBytes 的容量显示各文件系统;

    • -m :以 MBytes 的容量显示各文件系统;

    • -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;

    • -H :以 M=1000K 取代 M=1024K 的进位方式;

    • -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;

    • -i :不用硬盘容量,而以 inode 的数量来显示

    du

    Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍Linux du命令。

    语法:

    du [-ahskm] 文件或目录名称

    选项与参数:

    • -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。

    • -h :以人们较易读的容量格式 (G/M) 显示;

    • -s :列出总量而已,而不列出每个各别的目录占用容量;

    • -S :不包括子目录下的总计,与 -s 有点差别。

    • -k :以 KBytes 列出容量显示;

    • -m :以 MBytes 列出容量显示;

    二、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:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。

    /www:存放服务器网站相关的资源,环境,网站的项目

    Linux中一切皆文件

    展开全文
  • docker 常用命令大全

    万次阅读 多人点赞 2020-05-21 20:49:15
    Docker 常用命令大全
  • mysql sql常用语句大全

    千次阅读 2021-09-11 17:03:43
    一 、常用操作数据库的命令 1.查看所有的数据库 : show databases; 2.创建一个数据库 : create database if not exists 数据库名; 3.删除一个数据库 : drop database if exists 数据库名; 4.选择一张表 ...
  • 常用数据库命令大全

    千次阅读 2022-04-24 17:29:26
    常用数据库命令大全 #3.创建两个数据库,一个名为自己姓名首字母,一个名为老师名字首字母的数据库 CREATE DATABASE IF NOT EXISTS lgp; #使用数据库 USE lgp; CREATE DATABASE IF NOT EXISTS zxg; USE zxg; #4...
  • 常用DOS命令大全

    千次阅读 2021-03-15 11:23:46
    DOS和Windows最大的不同在于DOS命令方式操作,所以使用者需要记住大量命令及其格式使用方法,DOS...常用的内部命令  DOS的内部命令是DOS操作的基础,下面就来介绍一些常用的DOS内部命令。  1、DIR  含义:显示指
  • java常用英语单词大全(一)

    千次阅读 多人点赞 2019-09-29 11:08:35
    Java 基础阶段常用的基本关键字和常用单词 public 公有的 private 私有的 protected 保护的 class 类, 类型 void 空白, 无返回值 static 静态的 final 最终的 String 字符串 int 整数类型 long 长整型 double 双倍, ...
  • 常用姓名生日密码组合字典, lh123456 12041204 jennifer 111111qqq s5201314 5201314584 huangjun 010203040506 woaiwolaopo aiwosuoai 545007273 xiongxiong kongkong yangqing Hellocsdn c3df32...
  • Python常用模块大全(总结)

    万次阅读 多人点赞 2018-08-22 11:41:23
    sys.getfilesystemencoding() 返回将Unicode文件名转换成系统文件名的编码的名字 sys.builtin_module_names Python解释器导入的内建模块列表 sys.executable Python解释程序路径 sys.getwindowsversion() 获取...
  • 《编程小白的第一本书Python 入门书》,书中缺少的名字库,由于搜狗字库文件无法使用,故提供,已人工整理。(想免费提供,但不知道在哪里改)
  • XShell常用命令大全

    千次阅读 2022-07-18 18:12:41
    (1)命令ls——列出文件 ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件 ls a* ... xshell常用命令大全 编辑: crontab -e i进入编辑模式 esc 退出编辑模式 :wq 退出并保存 :q! 退出不保存
  • Linux常用命令大全(非常全!!!)

    万次阅读 多人点赞 2019-04-21 22:28:16
    日常使用命令 开关机命令 1、shutdown –h now:立刻进行关机 2、shutdown –r now:现在重新启动计算机 3、reboot:现在重新启动...常用快捷命令 1、tab = 补全 2、ctrl + l -:清屏,类似clear命令 3、...
  • 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 SELECT nickname,email FROM testtable WHERE name=’张三’ (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名...
  • 该资源是抓包时常用的用户名爆破字典,资源仅供学习参考使用,切勿用于非法用途,谢谢!
  • Xshell常用命令大全(附常用实例)

    万次阅读 多人点赞 2020-06-30 10:10:06
    Xshell常用命令大全Xshell常用命令cd-更改目录cp-复制文件cat-显示文件内容diff-比较文件内容find-查找文件grep-搜索文件内容head-查看文件的名字和后缀kill-杀掉进程ln-建立连接ls-列出文件mv-移动和重命名文件...
  • 弱口令大集合,从top100,1000到top100000的密码,以及常见的从3位到10位的弱口令,还有姓名拼音等多个弱口令字典,各种撞库等,数字
  • Python中常用英文单词大全

    千次阅读 2021-12-22 19:51:55
    9、name:姓名/名称 10、attribute:字段/属性 11、value:值 12、key:键 13、upper:上面 14、lower:下面 15、capitalize:用大写字母写或印刷 16、title:标题 17、replace:替换 18、ol
  • Linux常用命令大全

    千次阅读 多人点赞 2019-01-11 09:44:29
    指定名字 sudo find / -name passwd -maxdepth 指定最大深度 sudo find / -maxdepth 2 -name passwd -type 指定类型 (d/l/s/p/c/b) -size 指定大小 单位 k/m/g +表示大于 -表示小于 find -...
  • 数据库常用的sql语句大全--sql

    千次阅读 2022-04-02 15:38:53
    模糊查询 查询名字为h开头的数据,默认匹配不区分大小写,就是为H开头的也能查出来,但是可以在like后面加binary区分大小写 select * from `t_student` where `stu_name` like 'h%'; 查询名字不为h开头的数据 select...
  • 中国姓名汉语拼音字典大全打包下载,合计几百万个,包括大小写、任何姓名,拼音形式的字典;另外包含所有合理生日日期字典;可以使用暴力破解工具(如“hashcat”等)的组合破解模式,生成合成字典,用于密码跑包...
  • C# 常用控件大全

    千次阅读 2019-10-23 21:36:41
    C# 常用控件大全 1、 窗体 的属性 1、常用属性 (1) Name 属性:用来获取或设置窗体的名称,在应用程序中可通 过 Name 属性来引用窗体。 (2) WindowState 属性: 用来获取或设置窗体的窗口状态。 取 值有三种: ...
  • Linux命令大全常用的命令解析)

    万次阅读 多人点赞 2022-03-24 09:48:42
    Linux命令大全。详细介绍了比较常用的一些命令
  • javascript常用函数大全

    千次阅读 多人点赞 2018-10-24 23:19:29
    函数:返回从1970年1月1日零时整算的毫秒数,以GMT格林威治标准时间计算。 4.数学函数 javascript数学函数其实就是Math对象,它包括属性和函数(或称方法)两部分。其中,属性主要有下列内容。 Math.e :e(自然...
  • Springboot常用注解大全

    万次阅读 多人点赞 2018-06-30 14:42:45
    如果此列不建在主表上(默认建在主表),该属性定义该列所在从表的名字。  @Column(name = "user_code", nullable = false, length=32)//设置属性userCode对应的字段为user_code,长度为32,非空  private String ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 388,201
精华内容 155,280
热门标签
关键字:

常用姓名大全