MYSQL和Linux的基本命令
1.MySQL数据库命令大全
--数据库操作前的准备
-- 创建数据库
-- create database python_test_1 charset=utf8;
-- 使用数据库
-- use python_test_1;
-- students表
-- create table students(
-- id int unsigned primary key auto_increment not null,
-- name varchar(20) default '',
-- age tinyint unsigned default 0,
-- height decimal(5,2),
-- gender enum('男','女','中性','保密') default '保密',
-- cls_id int unsigned default 0,
-- is_delete bit default 0
-- );
-- classes表
-- create table classes (
-- id int unsigned auto_increment primary key not null,
-- name varchar(30) not null
-- );
-- 查询练习
-- 查询所有字段
-- select * from 表名;
select * from students;
-- 查询指定字段
-- select 列1,列2,... from 表名;
select name,age from students;
-- 使用 as 给字段起别名
-- select 字段 as 名字.... from 表名;
select name as '姓名',age from students;
-- select 表名.字段 .... from 表名;
select students.name from students;
-- 可以通过 as 给表起别名
-- select 别名.字段 .... from 表名 as 别名;
select * from students as s;
select s.name from students as s;
-- 消除重复行(查性别)
-- distinct 字段 不要记有个印象
select distinct gender from students;
> < >= <= != <>
-- 条件查询
-- 比较运算符
-- select .... from 表名 where .....
-- >
-- 查询年纪大于18岁的信息
select * from students where age > 18;
-- <
-- 查询年纪小于18岁的信息
select * from students where age < 18;
-- >=
-- <=
-- 查询小于等于18岁的信息
select * from students where age <= 18;
-- =
-- 查询年龄为18岁的所有学生的名字
select * from students where age = 18;
-- != 或者 <>
-- 查询年龄不为18岁的所有学生的名字
select * from students where age != 18;
-- select * from students where age <> 18;
and or not
-- 逻辑运算符
-- and
-- 18和28之间的所以学生信息
select * from students where age > 18 and age < 28;
-- 18岁以上的女性
select * from students where age > 18 and gender = '女';
-- or
-- 18以上或者身高高过180(包含)以上
select * from students where age > 18 or height >= 180;
-- not
-- 不在 18岁以上的女性 这个范围内的信息
-- select * from students where not (age>18 and gender=2);
select * from students where not age > 18 and gender= "女";
select * from students where not (age > 18 and gender = "女");
like % _
-- 模糊查询(where name like 要查询的数据)
-- like
-- % 替换任意个
-- _ 替换1个
-- 查询姓名中 以 "小" 开始的名字
select * from students where name like '小%';
-- 查询姓名中 有 "小" 所有的名字
select * from students where name like '%小%';
-- 查询有2个字的名字
select * from students where name like '__';
-- 查询有3个字的名字
select * from students where name like '___';
-- 查询至少有2个字的名字
select * from students where name like '__%';
select * from students where name not like "__";
-- 范围查询
-- in (1, 3, 8)表示在一个非连续的范围内
-- 查询 年龄为18或34的姓名
select * from students where age = 18 or age = 34 ;
select * from students where age in (18,34);
-- not in 不非连续的范围之内
-- 年龄不是 18或34岁的信息
select * from students where age not in(18,34);
-- between ... and ...表示在一个连续的范围内
-- 查询 年龄在18到34之间的的信息
select * from students where age > 18 and age < 34;
-- between xxx and xxx
select * from students where age between 18 and 34; --between...and...这是包含两端的数据
-- not between ... and ...表示不在一个连续的范围内
-- 查询 年龄不在18到34之间的的信息
select * from students where age not between 18 and 34;
-- 空判断
-- 判空is null
-- 查询身高为空的信息
select * from students where height is null;
-- 判非空is not null
select * from students where height is not null;
order by 字段 asc,desc
-- 排序
-- order by 字段
-- asc
-- asc从小到大排列,即升序
-- desc
-- desc从大到小排序,即降序
-- 查询年龄在18到34岁之间的男性,按照年龄从小到大到排序
select * from students where (age between 18 and 34) and gender='男' order by age asc;
-- 查询年龄在18到34岁之间的女性,身高从高到矮排序
select * from students where (age between 18 and 34) and gender ='女' order by height desc;
-- order by 多个字段
-- 查询年龄在18到34岁之间的女性,身高从高到矮排序, 如果身高相同的情况下按照年龄从小到大排序
select * from students where (age between 18 and 34) and gender = '女' order by height desc,age asc;
-- 如果年龄也相同那么按照id从大到小排序
select * from students where (age between 18 and 34) and gender ='女' order by height desc,age asc,id desc;
-- 排序有优先级,第一个主排序,后面是次排序,在保证主排序不变的情况下,能排就排,不排就算了
-- 聚合函数
-- 总数
-- count
-- 查询男性有多少人 count(字段) 要注意如果值有null那么不会进行计算
select count(*) from students where gender='男';
-- 最大值
-- max
-- 查询最大的年龄
select max(age) from students;
-- 查询女性的最高 身高
select max(height) from students where gender ='女';
-- 最小值
-- min
select min(age) from students ;
-- 求和
-- sum
-- 计算所有人的年龄总和
select sum(age) from students;
-- 平均值
-- avg
-- 计算平均年龄
select avg(age) from students;
-- 计算平均年龄 sum(age)/count(*)
select sum(age)/count(*) from students;
-- 四舍五入 round(123.23 , 1) 保留1位小数
-- 计算所有人的平均年龄,保留2位小数
select round (avg(age),2) from students;
-- 计算男性的平均身高 保留2位小数
select round(avg(height),2) from students where gender='男';
select avg(height) from students where gender = '男';
-- 分组
-- group by
-- 按照性别分组,查询所有的性别
-- select 分组字段 from 表名 group by 分组字段;
select gender from students group by gender;
select 分组字段 from 表名 group by 分组字段;
-- 计算每种性别中的人数
select gender,count(*) from students group by gender;
-- group_concat(...)
-- 查询同种性别中的姓名
select gender,group_concat(name) from students group by gender;
-- 查询每组性别的平均年龄
select gender,avg(age) from students group by gender;
-- select * from students where
-- group by xxx having having用在分组条件
-- having(注意having和group by 连用 having后通常也要跟 聚合函数)
-- 查询平均年龄超过30岁的性别,以及姓名
select gender ,avg(age) from students group by gender having avg(age) > 30;
-- 查询每种性别中的人数多于2个的信息
select gender,count(*) from students group by gender having count(*) > 2;
-- with rollup 汇总的作用(了解)
--select gender,count(*) from students group by gender with rollup;
select gender,count(*) from students group by gender with rollup having count(*) >2;
--按性别分组,平均身高大160的女性组的名字
select gender,avg(height),group_concat(name) from students group by gender having avg(height) > 160 and gender='女';
-- limit 起始位置,个数, 这个一定要放在最后
-- 分页
-- limit start, count
-- limit 放在最后面(注意)
起始位置 = (页数-1)*每页的个数
-- 限制查询出来的数据个数
-- 查询前5个数据
select * from students limit 0,5;
-- 每页显示2个,第1个页面
select * from students limit 0,2;
-- 每页显示2个,第2个页面
select * from students limit 2,2;
-- 每页显示2个,第3个页面
select * from students limit 4,2;
-- 每页显示2个,第4个页面
select * from students limit 6,2;
-- 每页显示2个,显示第6页的信息, 按照年龄从小到大排序
select * from students order by age asc limit 6,2;
-- 如果重新排序了,那么会显示第一页
-- 连接查询
-- inner join ... on
-- select ... from 表A inner join 表B;
-- 查询 有能够对应班级的学生以及班级信息
select * from students inner join classes on students.cls_id = classes.id;
-- 按照要求显示姓名、班级
select students.name,classes.name from students inner join classes on students.cls_id = classes.id;
-- 给数据表起名字
select s.name,c.name from students as s inner join classes as c on s.cls_id = c.id;
-- 查询 有能够对应班级的学生以及班级信息,显示学生的所有信息 students.*,只显示班级名称 classes.name.
select students.* ,classes.name from students inner join classes on students.cls_id = classes.id;
-- 在以上的查询中,将班级名显示在第1列
select classes.name,students.* from students inner join classes on students.cls_id = classes.id;
-- 查询 有能够对应班级的学生以及班级信息, 按照班级名进行排序
select classes.name,students.* from students inner join classes on students.cls_id = classes.id order by classes.name asc;
-- 当时同一个班级的时候,按照学生的id进行从小到大排序
select classes.name,students.* from students inner join classes on students.cls_id = classes.id order by classes.name asc,students.id asc;
#如果是group by 条件使用having
#如果是inner join条件使用on
#其他都用where
-- left join
-- 查询每位学生对应的班级信息
select * from students left join classes on students.cls_id = classes.id;
左边的表不管在右边的表中是否找到数据,都显示
-- 查询没有对应班级信息的学生
select * from students left join classes on students.cls_id = classes.id where classes.name is null;
-- right join on
-- 将数据表名字互换位置,用left join完成
select * from students right join classes on students.cls_id = classes.id;
select * from classes right join students on students.cls_id = classes.id;
-- 子查询
-- 标量子查询: 子查询返回的结果是一个数据(一行一列)
-- 列子查询: 返回的结果是一列(一列多行)
-- 行子查询: 返回的结果是一行(一行多列)
-- 查询出高于平均身高的信息(height)
select avg(height) from students;
select * from students where height > 172;
select * from students where height > (select avg(height) from students);
-- 查询学生的班级号能够对应的 学生名字
select * from students where cls_id in (1,2);
select id from classes;
select * from students where cls_id in (select id from classes);
省市区三级联动
--数据操作前的准备
--创建数据库表
create table areas(
aid int primary key,
atitle varchar(20),
pid int
);
--从sql文件中导入数据
-- source 具体地址/areas.sql;
source areas.sql;
--查询一共有多少个省
select * from areas where pid is null;
--例1:查询省的名称为“山西省”的所有城市
select aid from areas where atitle = '山西省';
select * from areas where pid = (select aid from areas where atitle = '山西省');
select * from areas as a1 inner join areas as a2 on a1.pid = a2.aid where a2.atitle='山西省';
--例2:查询市的名称为“广州市”的所有区县
select * from areas where pid = (select aid from areas where atitle = '广州市');
select * from areas as a1 inner join areas as a2 on a1.pid = a2.aid where a2.atitle='广州市';
2.
最全 Linux常用命令大全
1.Linux管理文件和目录的命令
命令 功能
pwd 显示当前目录
ls 查看目录下的内容
cd 改变所在目录
cat 显示文件的内容
grep 在文件中查找某字符
cp 复制文件
touch 创建文件
mv 移动文件
rm 删除文件
rmdir 删除目录
1.1 pwd命令该命令的英文解释为 print working directory( 打印工作目录 )。输入 pwd 命令, Linux 会输出当前目录。
1.2 cd命令cd 命令用来改变所在目录。cd / 转到根目录中cd ~ 转到 /home/user 用户目录下cd /usr 转到根目录下的 usr 目录中 -------------绝对路径cd test 转到当前目录下的 test 子目录中 -------相对路径
1.3 ls命令ls 命令用来查看目录的内容。选项 含义-a 列举目录中的全部文件,包括隐藏文件-l 列举目录中细节,包括权限、所有者、组群、大小、创建日期、文件是否是链接等-f 列举的文件显示文件类型-r 逆向,从后向前地列举目录中内容-R 递归,该选项递归地列举当前目录下所有子目录内的内容-s 大小,按文件大小排序-h 以人类可读的方式显示文件的大小,如用 K、M、G 作单位Ls -l examples.doc 列举文件 examples.doc 的所有信息
1.4 cat命令cat 命令可以用来合并文件,也可以用来在屏幕上显示整个文件的内容。cat snow.txt 该命令显示文件 snow.txt 的内容, ctrl+D 退出 cat。
1.5 grep命令grep 命令的最大功能是在一堆文件中查找一个特定的字符串。grep money test.txt以上命令在 test.txt 中查找 money 这个字符串, grep 查找是区分大小写的。
1.6 touch命令touch 命令用来创建新文件,他可以创建一个空白的文件,可以在其中添加文本和数据。touch newfile 该命令创建一个名为 newfile 的空白文件。
1.7 cp命令cp 命令用来拷贝文件,要复制文件,输入命令:cpcp t.txt Document/t 该命令将把文件 t.txt 复制到 Document 目录下,并命名为 t。
选项 含义
-i 互动:如果文件将覆盖目标中的文件,他会提示确认
-r 递归:这个选项会复制整个目录树、子目录以及其他
-v 详细:显示文件的复制进度
1.8 mv命令
mv 命令用来移动文件。
选项 说明
-i 互动:如果选择的文件会覆盖目标中的文件,他会提示确认
-f 强制:它会超越互动模式,不提示地移动文件,属于很危险的选项
-v 详细:显示文件的移动进度
mv t.txt Document 把文件 t.txt 移动到目录 Document 中。
1.9 rm命令
rm 命令用来删除文件。
选项 说明
-i 互动:提示确认删除
-f 强制:代替互动模式,不提示确认删除
-v 详细:显示文件的删除进度
-r 递归:将删除某个目录以及其中所有的文件和子目录
rm t.txt 该命令删除文件 t.txt
1.10 rmdir命令
rmdir 命令用来删除目录。
2 有关磁盘空间的命令
命令 功能
mount 挂载文件系统
umount 卸载已挂载上的文件系统
df 检查各个硬盘分区和已挂上来的文件系统的磁盘空间
du 显示文件目录和大小
fsck 主要是检查和修复 Linux 文件系统
2.1 mount命令
mount 命令的功能是挂载文件系统,可以挂载硬盘、光盘、软盘,也可以挂载 NFS网络文件系统。这个命令的标准
用法如下: mount –t 设备类型 存放目录
mount IP 地址: / 所提供的目录 存放目录
选项 说明
(无 ) 不加任何参数,直接输入命令可以显示已挂载的文件系统和目录
-a 挂上 /etc/fstab 下的全部文件系统
-t 制定所挂上来的文件系统的名称,所有系统支持的文件系统,这个信息可以在
/proc/filesystems 这个文件里看到
-n 挂上文件系统,但是不把文件系统的数据写入 /etc/mtlab 这个文件
-w 将文件系统设为可读写
-r 挂上来的文件系统设为只读
在目录 /mnt 下,挂上 iso9660 文件系统。输入命令:
mount –t iso9660 /dev/hdb /cdrom
2.2 umount命令
umount 命令的功能是卸载已挂上的文件系统, 在关闭系统前应该把所有挂载上的文件系统卸载。 这个命令和 mount
命令是相对的。用法:
umount 已挂上的目录或设备
卸载已挂上的 /cdrom 目录,输入命令: umount /cdrom
卸载已挂上的某个分区,输入命令: umount /dev/hdb1
2.3 df 命令
df 命令用来检查硬盘分区和已挂在的文件系统的磁盘空间,也就是说,检查硬盘的使用量。标准用法如下:
df [-选项 ]
选项 功能
-a 把全部的文件系统和各分区的硬盘使用情形列出来,包括 0 区块的,例如 /proc 这个文件系统
-i 列出 I-nodes 的使用量
-k 把各分区的大小和挂上来的文件分区的大小用 k 表示
-t 列出某一文件系统的所有分区磁盘空间使用量
-x 列出不是某一文件系统的所有分区磁盘空间使用量,和 -t 选项相反
-T 列出每个分区所属文件系统的名称
例如,要列出全部文件系统和各分区的磁盘使用情况,输入命令:
df –a
2.4 du命令
du 命令的功能是用于显示文件目录或大小。标准用法:
du [-选项 ]
选项 含义
-a 显示全部目录及其次目录下的每个文件所占的磁盘空间
-b 显示目录和文件的大小,以 B 为单位
-c 最后再加上一个总计
-h 以 KB、 MB、GB 为单位,提高信息可读性
-s 只列出各文件大小的总和
-x 只计算属于同一文件系统的文件
2.5 fsck命令
fsck 命令的功能是检查和修复 Linux 文件系统,这个命令最好在没有人或是没有分区挂上来时使用,其实每次开机
系统都会做一次检查,看是否有坏轨或数据流失的现象。用法:
fsck (-选项 ) 分区名称
选项 功能
-a 自动修复文件系统,不询问任何问题,比较危险
-A 依照 /etc/fstab 配置文件的内容, 检查该文件内所列全部文件系统。 若没有附加参数 "-P”,
则会先检查 /目录的文件系统,而不会同时检查所有文件系统
-R 采取互动方式,在修复时询问问题,让用户确认并决定处理方式
-S 依次检查作业而不是同时执行。 当依次指定多个文件系统且采用互动的方式进行检查时,
请使用此参数以便顺序执行,否则 fsck 可能会同时询问数个问题,让人不知所措
-V 显示命令执行的过程
-T 指定要检查的文件系统的类型
-N 不是真正执行指令,仅列出实际执行时会进行的动作
3.文件备份和压缩命令
在 Linux 中,常用的文件压缩工具有 gzip、bzip2、zip。bzip2 是最理想的压缩工具, 它提供了最大限度的压缩。 zip 兼
容性好, Windows 也支持。
命令 功能
bzip2/bunzip2 扩展名为 bz2 的压缩 /解压缩工具
gzip/gunzip 扩展名为 gz 的压缩 / 解压缩工具
zip/unzip 扩展名为 zip 的压缩 / 解压缩工具
tar 创建备份和归档
3.1 bzip2命令
要使用 bzip2 来压缩文件,在 shell 提示下输入命令: bzip2 filename
文件即会被压缩,并被保存为 filename.bz2 。
要解压缩文件,输入命令:
bunzip2 filename.bz2
filename.bz2 会被删除,而以 filename 代替。
bzip2 filename.bz2 file1 file2 file3 /usr/work/school
上面的命令把 file1、file2、file3 以及 /usr/work/school 目录中的内容压缩起来放入 filename.bz2 。
3.2 gzip命令
要使用 gzip 来压缩文件,输入命令: gzip filename
文件即会被压缩,并被保存为 filename.gz。
要解压缩文件,输入命令: gunzip filename.gz
filename.gz 会被删除,而以 filename 代替。
gzip -r filename.gz file1 file2 file3 /usr/work/school
上面的命令把 file1、file2、file3 以及 /usr/work/school 目录中的内容压缩起来放入 filename.gz。
3.3 zip命令
zip 命令的使用方法同 gzip。
3.4 tar 命令
tar 命令最早是用来做磁带备份的,但是由于硬盘容量越来越大,因此现在主要用这个命令来备份所有的文件。 tar
这个命令把大量的文件和目录打包成一个文件。
选项 功能
-c 创建一个新归档
-f 当与 -c 选项一起使用时,创建的 tar 文件使用该选项指定的文件名;当与 -x 选
项一起使用时,则解除该选项指定的归档
-t 显示包括在 tar 文件中的文件列表
-v 显示文件的归档进度
-x 从归档中抽取文件
-z 使用 gzip 压缩 tar 文件
-j 使用 bzip2 压缩 tar 文件
要创建一个 tar 文件,输入命令: tar –cvf filename.tar directory/file /home/mine
上面的命令将 directory/file 、/home/mine 放入归档文件中。
要列出 tar 文件的内容,输入命令: tar –tvf filename.tar
要抽取 tar 文件的命令,输入命令: tar –xvf filename.tar
这个命令不会删除 tar 文件,但会把解除归档的内容复制到当前工作目录下,并保留归档文件所使用的任何目录结
构。
请记住, tar 默认不压缩文件。要创建一个使用 tar 和 bzip2 来归档压缩的文件,使用 -j 选项:
tar –cjvf filename.tbz file
如果使用 bunzip2 命令解压 filename.tbz 文件,则 filename.tbz 会被删除,以 filename.tar 代替。
要扩展并解除归档 bzip tar 文件,输入命令: tar –xjvf filename.tbz
要创建一个用 tar 和 gzip 归档并压缩的文件,使用 -z 选项: tar –czvf filename.tgz file
如果使用 gunzip 命令解压 filename.tgz 文件,则 filename.tgz 会被删除,以 filename.tar 代替。
4.有关关机和查看系统信息的命令
命令 说明
shutdown 正常关机
reboot 重启计算机
ps 查看目前程序执行的情况
top 查看目前程序执行的情景和内存使用的情况
kill 终止一个进程
date 更改或查看目前日期
cal 显示月历及年历
4.1 shutdown命令
要使用这个命令必须保证是根用户,否则使用 su 命令改变为根用户。命令格式如下:
shutdown –(选项 )
选项 功能
-k 不是真正的关机,只是发出警告命令
-r 关机后重启
-t 在规定的时间内关机
加入要在 2min 内关机,输入命令: shutdown –t 2
如果是关机后重启,输入命令: shutdown –r
4.2 reboot命令
这个命令也是一个关机命令,只有输入,不加任何参数,系统会以最快的速度关机,且不将内存或缓冲区里的东西
写回硬盘。
选项 功能
-d 不把记录写到 /var/log/wtmp 档案里 (-n 这个参数包含了 -d)
-f 强迫重开机,不呼叫 shutdown 这个指令
-n 在重开机前不做将记忆体资料写回硬盘
-w 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
4.3 ps命令
ps 命令用来查看在计算机系统中有哪些程序正在执行,及其执行的情况。这是一个相当强大的命令,可以用它来找
出所有的 process id 和名称。另外, ps 命令也可以用来列出所有程序占用内存的情况。用法如下:
ps –(选项 )
选项 功能
-l 用长格式列出
-u 列出使用者的名称和使用时间
-m 列出内存分布的情况
-r 只列出正在执行的前台程序,不列出其他信息
-x 列出所有程序,包括那些没有终端机的程序
4.4 top 命令
top 命令可以查看目前程序的执行情景和内存使用。 它和 ps 类似,不过,它会几秒钟更新一次系统状态, 方便追踪。
要离开这个程序,按 Ctrl+C 键就可以了。
4.5 kill命令
kill 命令用来终止一个正在执行中的进程。 如果一个程序执行过程中失败了, 可以把这个程序终止, 避免留在内存中
占用系统资源。 不过,它的实际意义是送一个信号给这个正在执行的程序, 叫它自杀。 可以送很多信号给这些程序,
也可以让他们受到信号后做很多事情。标准用法:
kill –(选项 ) pid
在执行 kill 命令前。可以先用 ps 命令查一下某宕掉程序的 pid,然后使用 kill 除去某个程序。例如,终止 pid 为 90
的程序: kill 90
选项 功能
-l 列出所有可用的信号名称
-p 印出 pid 并不发送信号
-signal 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表著重跑 , 砍掉 , 结
束
将 pid 为 323 的行程砍掉 (kill) :kill -9 323
将 pid 为 456 的行程重跑 (restart) :kill -HUP 456
4.6 date命令
date 命令用来显示、设定和修改现在的时间和日期。标准用法:
date –(选项 ) 显示时间格式 (以+号开头,后加格式 )
date 设定时间格式
选项 功能
-u 使用格林尼治时间
-r 最后一次修改文件的时间
-s 设置时间
常用的几种时间格式如下表所示:
格式 说明
%a 星期几的简称,例如一、二、三
%A 星期几的全名,例如星期一、星期二
%D 日期 (mm/dd/yy 格式 )
%T 显示时间格式, 24 小时制 (hh:mm:ss)
%x 显示日期的格式 (mm/dd/yy)
%y 年的最后两个数字
%Y 年(如 2007、 2008)
%r 时间 (hh:mm:ss 上午或下午 )
%p 显示上午或下午
如果输入命令: date “+%x,%r”
系统返回如下信息: 2010 年 3 月 26 日,下午 18 时 06 分 49 秒
4.7 cal命令
cal 命令有两种功能:显示月历以及年历。
直接输入 cal 命令则系统会显示目前月份的月历。
若要显示一整年的年历,可以在 cal 命令后加 4 位数的公元年份。例如要显示 2008 年的年历,必须输入:
cal 2008
若输入 cal 08 ,则最显示公元 8 年的年历。
若只需要查看某一年份中某一月份的月历,可以输入: cal 月份 公元年份。例如输入: "cal 12 2004 。”
5.管理使用者和设立权限的命令
命令 说明 命令 说明
chmod 用来改变权限 useradd 用来增加用户
su 用来修改用户
5.1 chmod命令
chmod 命令用来改变许可权限。读取、写入和执行是许可权限中的三个主要设置。因为用户在他们的账号被创建时
就被编入一个组群,所以还可以指定那些组群可以读取、写入或执行某一文件。其中:
r—文件可以被读取
w—文件可以被写入
x—文件可以被执行,如果文件是程序的话
可以使用带有 -l 的 ls 命令来仔细查看一个文件的许多细节。
chmod 命令用来设定文件的权限。标准用法:
chmod 文件的使用者 (u,g,o,a)增减 (+,-,=)权限名称 (r,w,x) 文件
文 件 的 使 用
者
说明 权限 说明 增减 说明
u 拥有文件的用户 r 读取权 + 添加权限
g 所有者所在的组群 w 写入权 - 删除权限
o 其他人 x 执行权 = 是它称为唯一权限
a 全部 (u,g 和 o)
删除某一文件的所有权限,输入命令: chmod a-rwx test.txt
为文件所有者添加权限,输入命令: chmod u+rwx test
还可以用数字表示权限: 4——读取, 2——写入, 1——执行。下面的两个命令等价:
chmod 751 filename
chmod u+rwx,g=rx,0=x filename
5.2 su命令
su 命令用来修改用户。这个命令非常重要,它可以让一个普通的使用者拥有超级用户或其他使用者的权限。不过,
这个命令必须具有超级用户或其他使用者的口令才能成为超级用户或其他使用者。如果要离开,可以输入 exit。标
准用法:
su 用户名 (如果没有输入用户名则预设为 root)
举例说明,假设当前用户 user01,想要转变为 user02,则输入命令: su user02
系统返回: password:
此时,输入 user02 的指令,就会变为 user02。
5.3 useradd命令
useradd 命令用来增加用户,只有根用户才能增加用户。如果没有登录为根用户,输入 su,再输入根口令即可。
要增加用户,输入命令:
useradd 用户名
然后,根据提示为新用户输入一个口令即可。
6 线上查询的命令
命令 功能
man 查询和解释一个命令的使用方法,以及这个命令的说明事项
locate 定位文件和目录
whatis 寻找某个命令的含义
6.1 man命令
man 命令用来查询和解释一个命令的使用方法和这个命令的注意事项。这个查询查询在每个 Linux 上都有。通常,
使用者只要输入命令 man 和这个命令的名称 shell 就会列出一份完整的说明。标准用法:
man 命令的名称
要查询 ls 命令的说明书页,输入命令: man ls
要翻阅说明书页, 可以使用 Page Up和 Page Down键,或使用空格键向后翻一页, 使用 b 向前翻。 要退出说明书页,
输入命令 q。要在说明书页中搜索关键字,输入命令 / 和要搜索的关键字或短语,然后按 Enter 键即可。所有出现在
说明书页中的关键字都会被突出显示,允许快速地阅读上下文中的关键字。
6.2 locate命令
locate 命令的主要功能是定位文件和目录。 有时候, 只知道某一文件或目录存在, 却不知道在哪儿, 就可以用 locate
来定位文件和目录。使用 locate 命令,将会看到每一个包括搜索田间的文件和目录。例如,如果想要搜索带有 test
的这个词的文件,输入命令: locate test
locate 命令使用数据库来定位带有 test 这个词的文件或目录。
6.3 whatis命令
whatis 命令用来查询某个命令的含义。用法简单,也不需要什么参数,直接在 whatis 命令后加上所要查询的命令就
可以了,但是却很实用。
要查询 mv 命令的含义,输入命令: whatis mv
7.文件阅读的命令
命令 功能
head 查看文件的开头部分
tail 查看文件结尾的 10 行
less less 是一个分页工具,它允许一页一页地 (或一个屏幕一个屏幕地 )查看信息
more more 是一个分页工具, 它允许一页一页地 (或一个屏幕一个屏幕地 )查看信息
7.1 head命令
head 命令可以用来查看文件的开头部分。此命令的格式是:
head 文件名
默认设置,它只查看文件的前 10 行。但可以通过指定一个数字选项来改变要显示的行数,命令如下:
head –20 文件名
这个命令将会查看文件的前 20 行。
7.2 tail命令
tail 命令和 head 命令恰恰相反。使用 tail 命令,可以查看文件结尾的 10 行。这有助于查看日志文件的最后 10 行来
阅读重要的系统信息。还可以使用 tail 观察日志文件更新的过程。使用 -f 选项, tail 会自动实时地把打开文件中的新
信息显示到屏幕上。例如,要活跃地观察 /var/log/messages ,以根用户身份在 shell 下输入以下命令:
tail –f /var/log/messages
7.3 less命令
less命令与 more 命令相似。
7.4 more命令
more 和 less 的主要区别是, less 允许使用箭头来前后移动, 而 more 使用空格键和 b 键来前后移动。 使用 ls 和 more
来列举 /etc 目录下的内容:
ls –al /etc | more
要使用 more 在文本文件中搜索关键字,按 /键并输入命令搜索条目: /foo
使用空格键来先前翻阅页码。按 q 键退出。
more 命令标准格式为:
more [选项 ] [fileNames]
选项 含义
-num 一次显示的行数
-d 提示使用者,在画面下方显示 [Press space to continue, q to quit.],如果使用
者按错键,则会显示 [Press h for instructions.] 而不是哔声
-l 取消遇见特殊字元 ^L(送纸字元 )时会暂停的功能
-f 计算行数时, 以实际上的行数, 而非自动换行过后的行数 (有些单行字数太
长的会被扩展为两行或两行以上 )
-p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-c 跟-p 相似,不同的是先显示内容再清除其他旧资料
-s 当遇到有连续两行以上的空白行,就代换为一行的空白行
-u 不显示下引号 (根据环境变数 TERM指定的 terminal 而有所不同 )
+/ 在每个档案显示前搜寻该字串 (pattern) ,然后从该字串之后开始显示
+num 从第 num 行开始显示
fileNames 欲显示内容的档案,可为复数个数
例如:
more -s testfile 逐页显示 testfile 之档案内容,如有连续两行以上空白行则以一行空白行显示。
more +20 testfile 从第 20 行开始显示 testfile 之档案内容。
8.网络操作命令
命令 功能 命令 功能
ftp 传送文件 telnet 远端登陆
bye 结束连线并结束程序 rlogin 远端登入
ping 检测主机 netstat 显示网络状态
8.1 ftp 命令
ftp 命令用来传输文件, 非常重要。 如果在网络上看到一个很重要的文件, 就可以用这个命令把那个文件传到自己的
机器上来。
标准用法: ftp (- 选项 ) 主机名称或 IP 地址
选项 含义
-D 详细显示命令的执行过程,便于排错和分析程序的执行情况
-I 关闭互动模式,不询问任何问题
-G 关闭本地主机文件名称支持特殊字符的扩充特征
-N 不适用自动登录。 FTP在启动时, 会尝试自动登录远端系统, 它会从用户
的转述目录中读取 .netrc 文件的内容,以便自行登录。若该文件不存在,
FTP会放弃自动登录,并询问用户的账号名称
-V 显示命令的执行过程
举例说明,用 ftp 登录 ftp.dark.com 主机,输入命令: ftp ftp.dark.com
注意:用户必须有相应的存取权限,否则不能从远程系统中获得文件或向远程系统中传输文件。为了使用 ftp 来传
输文件,用户必须知道远程计算机上的合法用户名和口令。
8.2 bye命令
在 ftp 模式下,输入 bye 即可中断目前的连线作业,并结束 ftp 的执行,没有选项。
8.3 ping命令
执行 ping 命令,它会使用 ICMP传输协议, 发出要求回应的信息, 若远程主机的网络没有什么问题, 就会回应信息,
因而得知该主机运作正常。
标准用法: ping (-选项 ) 主机名称或 IP 地址
选项 含义
c 次数 设置完成要求回应的次数。 ping 命令会反复发出信息,直到达到设定的
次数为止
D 使用 Socket 的 SO_DEBUG功能
F 大量而且快速地送网络封包给一台机器,看它的回应。一般不到几秒钟,
送出去的封包就会超过两千个
I 秒数 指定收发信息的间隔时间,单位为 s,预置位 1s。与参数 f 不兼容
S bytes 设置数据包的大小。预设置为 56B,加上 8B ICMP头文件,共 64B
R 忽略网关, 直接将数据保送到远程主机上。 如果该主机并非局域网的一份
子,就会传回错误信息
Q 不显示命令的执行过程,只显示结果
V 详细显示命令的执行过程,包括非回应信息和其它信息
T 存活数值 设置存活数值 TTL的大小。 TTL是 IP 协议包中的一个值, 它告诉网络, 数
据包在网络中的时间是否太长而应被丢弃
举例说明,检测 des.bllod.net 主机网络功能是否正常,送出去要去信息需完成 5 次回应,每次间隔 10s,数据包的
大小为 512B,输入命令: ping –c 5 –i 10 –s 504 –t 64 des.blood.net
8.4 telnet 命令
telnet 命令的主要功能是进行远程登录。该命令允许用户在使用 telnet 协议的远程计算机之间进行通信,用户可以
通过网络在远程计算机上登录,就像登录到本地机上执行命令一样。为了通过 telnet 登录计算机,必须知道远程计
算机上的合法用户名和口令。 telnet 只为普通终端提供终端仿真,而不支持 X Window 等图形环境。
标准用法:
telnet 主机名或 IP
例如登录 IP 地址为 140.114.63.12 的计算机,输入命令: telnet 140.114.63.12
一旦 telnet 成功连接到远程系统上,就显示登录信息,并提示用户输入用户名和口令。如果用户名和口令正确,就
能成功登录并在远程系统上工作。用户结束了远程会话后,一定要确保使用 logout 命令退出远程系统。然后 telnet
报告远程会话被关闭,并返回到用户本地机的 shell 提示符下。
8.5 rlogin命令
rlogin 也是用来远程登录的。它的英文含义是 remote login 。该命令与 telnet 命令很相似,允许用户启动远程系统上
的交互命令会话。用法:
rlogin (- 选项 ) host
选项 含义
8 允许输入 8 位字符数据
e 为 rlogin 会话设置转义字符,默认的转义字符是 “ ~,用户可以指定一个 ”
文字字符或一个 /nnn 形式的八进制数
E 停止任何转义字符。当与 -8 选项一起使用时,它提供一个完全透明的链
接
l 用户名称 指定要登入远端主机的用户名称
L 使用 litout 模式进行远端登入操作
例如,要登入别人的计算机。输入命令:
rlogin –l inin 140.114.125.24
8.6 netstat命令
netstat 命令的主要功能是了解 Linux 系统的网络情况。 假设没有指定任何参数给 netstat 命令, 则效果和指定 -F 参数
相同。
用法: netstat (- 选项 )
选项 说明
a 显示所有连线中的 Socket
F 显示 FIB
a 全部列出,包括正在等待的程序
c 持续列出网络状态
i 显示网络界面信息
n 使用网络 ip 地址代替名称
o 显示计时器
r 显示网络路径表
t 显示 TCP协议的连接情形
u 显示 UDP协议的连接情形
v 显示版本信息
w 显示 RAW 传输协议的连接情形
9.定位、查找文件的命令
选项 含义
Which 依序从 path 环境变量所列的目录中找出 command 的位置,并显示完整
路径的名称
whereis 找出特定程序的可执行文件、源代码文件以及 manpage 的路径
find 按条件搜索,并执行一定的动作。
locate 带记忆的文件搜索
updatedb 更新 slocate 的索引数据库
9.1which
语法 which command
说明
依序从 path 环境变量所列的目录中找出 command 的位置,并显示完整路径的名称。在找到第一个符合条件的程序
文件时,就立刻停止搜索,省略其余未搜索目录。
范例,找出 ls 命令的程序文件的位置: which ls ,系统输出: /usr/bin/ls
9.2whereis
语法 whereis [option] name
说明
找出特定程序的可执行文件、源代码文件以及 manpage 的路径。你所提供的 name 会被先除去前置的路径以及任
何.ext 形式的扩展名。
whereis 只会在标准的 Linux 目录中进行搜索。
选项 含义
-b 只搜索可执行文件
-m 只搜索 manpage
-s 只搜索源代码文件
-B directory 更改或限定搜索可执行的文件的目录
-M directory 更改或限定搜索 manpage 的目录
-S directory 更改或限定搜索源代码文件的目录
9.3find
语法 find paths expression [action]
说明
以 paths 为搜索起点逐层往下找出每一个符合 expression 条件的文件,并对该文件执行 action 所代表的动作。
expression 是搜索条件,它由一个代表匹配项目的选项以及一个代表匹配模式的参数构成。
action 是处理动作, 它有一个代表 “处理方式 ”的选项以及一个操作参数构成。 若不指定 action ,则默认动作是显示出
文件名。
常用的搜索条件
-name pattern
-path pattern
-lname pattern
找出名称、路径名称或符号链接的目标匹配 pattern 模式的文件。 pattern 可以包含 shell 的文件名通配符,路径是相
对于搜索起点的。
常见处理动作
显示出文件的相对路径(相对于搜索起点) 。
-exec cmd /;
执行指定的 shell 命令。若 cmd 含有任何 shell 特殊字符,则他们之前都必须加上 /符号,以免 shell 立刻执行他们。
在 cmd 里,可以用 ”{}符号” (包括双引号 )表示 find 所找出的文件。
9.4locate
语法 locate patterns
说明 第一次执行 locate 时,它会建立一个索引数据库,当往后再次执行时,它便从索引数据库中迅速找出文件的
位置。 locate 很适合用来反复搜索很少变动的目录树,但是对于刚改名的旧文件以及新建的文件, locate 就找不到
了,除非重建数据库。
9.5updatedb
语法 updatedb [option]
说明 更新 slocate 的索引数据库。
选项
-e directories
略过 directories 所列的目录。
10.其他命令
命令 功能 命令 功能
echo 显示一字串 passwd 修改密码
clear 清除显示器 lpr 打印
lpq 查看在打印队列中等待的作
业
lprm 取消打印队列中的作业
10.1 echo命令
echo 命令用来在显示器上输出一段文字, 这个命令常用来输出一些提示信息, 因此这个命令的意义在于输出一些文
字。它的用法也很简单:
echo –(参数 ) 字串 (可以用 " ”,也可以不用,显示略有区别 )
参数 n 代表输出文字后不换行,如果不加参数会自动换行。
输入命令: echo “welcome to use Linux ”
输出结果为: welcome to use Linux
如果不加 " ”,则输出结果为: welcome to use Linux
它们的区别在于后一个输出,每两个输出之间只隔一个空格,这是因为 echo 把这些输出看做字串的缘故。
10.2 clear命令
clear 命令的主要功能是清除显示器,这个命令很简单,只要输入 clear 即可。
10.3 passwd命令
passwd 命令用来修改用户的密码。
在 shell 下输入 passwd
然后,根据提示输入旧密码和新密码即可。
10.4 lpr命令
lpr 命令的功能是把指定的文件发送到打印队列中。例如, lpr foo.txt 会打印 foo.txt 文件。
标准用法: lpr filename
要查看在打印队列中等待的作业,在命令行中输入命令 lpq。系统返回如下信息:
active root 389 foo.txt
在这个例子中, 389 是作业号码。还可以取消打印队列中的作业,格式是:
lprm 作业号码
输入命令: lprm 389
这样就去修了 foo.txt 打印作业。