目录
1.ipconfig 查看主机IP
2.切换盘符:盘符名:
例 切换到D盘 d :
3.切换目录位置:cd 目录名称
4.浏览当前目录内容 dir
5.ping命令 ping ip地址或者域名
例 ping www.baidu.com
1.命令行登录:输入用户名和密码
2.SSH登录 即远程登录
3.图形界面登录(ubuntu)
shutdown -s -t 100 定时100S关机
shutdown -h now 立刻关机
shutdown -h 20:20 今天20点20分关机
shutdown -r -t 100 100秒后重启
同步:sync 将内存内容同步至硬盘
[]提示符 分隔符号无特殊含义
@分隔符号 无特殊含义
localhost:当前系统主机名
#:命令提示符,表示登录用户等级,#是超级管理员,普通用户是$
家目录表示的是当前登录账号的目录,root权限则目录就是root目录
语法:ls [选项] 目录名称(不写目录名则表示显示当前位置的内容)
常用选项:
-l:长数据串方式列出
ls -l可以简写成ll
-a:显示当前目录下所有文件(包括隐藏文件)
~ :表示用户当前所在目录,~表示你现在在用户自己的家目录中
cd..后退至上一个目录
语法:cd[绝对路径或者相对路径]
相对路径:以当前目录为参照,即文件所在地址会改变
绝对路径:以根目录为此参照,文件所在地址不会改变
绝对路径例: cd /home
相对路径: cd ../../home
查看/etc下的内容
如果所在位置不是 / : ls /etc
如果所在位置是/ : ls etc
如果所在位置是/etc下 : ls
cd~:切换到当前登录用户家目录
cd~用户名:切换到指定用户家目录
cd -:回到上一次所在目录
cd ..:回到上一级(父级目录)目录
pwd 显示当前所处目录位置
pwd -P 显示真实路径而不是连接
mkdir 创建目录 (make directory)
语法:手动指定创建目录的权限 mkdir -m 目录名字(设定权限)
递归创建所有目录 mkdir -p 目录名(若父级目录不存在会自动创建)
mkdir 目录名
语法:touch 目录/文件名 在指定目录下创建文件
touch 文件名 在当前目录创建文件
rmdir 删除空目录(remove directory)
rmdir -p 根目录/子目录(用于删除非空)
语法:cp [选项] 源文件 目标文件
选项:
-i:,若目标文件存在,询问是否覆盖
-f:若目标文件存在,不询问是否覆盖
-l:将目标文件复制为源文件的硬链接文件
-s:将目标文件复制为源文件的软连接文件
-r:递归复制,一般用于目录复制
例:
cp 123 /home 将当前目录下的123文件复试到/home下
cp -r test /home 将当前目录下的test目录包括其中的文件复制到/home下
rm: [选项] 文件或目录
选项:
-f:强制删除,不做提示
-i:有提示删除
-r:递归删除,用来删除目录
rm -rf 强制删除目录和文件
语法:mv [选项]源文件 目标文件
选项:
-f:强制覆盖,目标文件存在不询问
-i:目标文件存在,则循环是否覆盖
-v:显示移动过程
-n:目标文件存在,就不执行移动
cat 从文本内容第一行开始查看
tac 从最后一行查看
more 分页查看
less 分页查看,可以往前翻页
head 看头部几行内容
tail 看尾部几行内容
一次性显示文件的所有内容,适合查看不太大的文件。如果太大,可能有些内容会不完全显示。
语法: cat [选项] 文件名 cat 文件1 文件2 > 文件3
选项:
和cat命令内容以相反的方式显示
语法: more [选项] 文件名
使用less命令可以向前翻看内容,more不可以
看到文件结束的时候,less需要以命令退出,Q可以退出
提供了高亮显示、检索功能
语法 : less [选项] 文件名
选项:
-N 显示行号
-e 文件看完后,自动离开
/字符串 向下搜索指定内容
?字符串 向上搜索指定内容
回车键 :向下移动一行
空格键 : 向下移动一页
可以查看指定的前几行内容
语法: head [选项] 文件名
-c num num表示字节数,显示前多少个字节
-n num num表示行数,显示前num行内容
示例:
和head命令相反,看文件末尾内容
语法: tail [选项] 文件名
-c num num表示字节数,显示前多少个字节
-n num num表示行数,显示前num行内容
-f 实时输出文件变化后的内容数据
先在工具中,创建文件
然后使用tail -f 文件名 ,监听文件
然后在虚拟机中,往被监听的文件中添加内容
然后在工具中,就可以实时的看到被添加的内容了
vi是老式的文字处理器,vim是新版的,一般情况下,使用vi就可以了
在家目录下,创建一个zhangsan的文件,在其中输入以下内容: 张三是通达学院的学生!!
保存退出
vim、vi
vi 文件名 进入该文件编辑界面
按i、a、o键进入输入状态
按ESC退出输入状态,然后输入:(加一些命令)进入底线命令模式
进入输入模式的命令
命令模式的指令
底线命令模式的指令
语法1:根据文件名搜索
find [路径] -name 文件名 -print
语法1:根据文件名搜索
find [路径] -name 文件名 -print 打印搜索到指定路径的文件名
find /etc -name "*.txt" -print 查找/etc下所有格式为txt的文件
语法2:根据文件修改时间来搜索
find [路径] -mtime +5 -print 查找更改时间为指定数值的文件
数值前减号表示5天前,加号表示5天内的
语法3: 根据文件大小来查找
find [路径] -size +100c -print 打印长度超过100个字节的文件,加号表示大于,减号表示小于,不写表示等于
语法4:搜索文件后执行操作
find 路径 -name 名字 -exec 命令 {} \; 找到某个路径下的文件并对其执行对应的操作命令
示例:找到/home的yuwennote.txt ,并执行vi命令将其打开
-type命令 :指定查找文件的类型
常用格式:
b 块设备文件
d 目录
c 字符设备文件
f 普通文件
l 链接文件
示例:查找到 /home更改时间为3天前的目录,并删除它们
grep命令:查找指定文档中的内容
语法:grep (选项) 模式(规则)[文件名]
选项:
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-v 显示不匹配的行
-i 匹配的时候忽略大小写
例如:
查找s开头的内容
grep -n ^s vietest/passwd
查找passwd中包含数字的行
grep -n [0-9] vitest/passwd
查找passwd中包含三位数字的行
grep -n '[0-9]\{3\}' vitest/passwd
查找passwd中包含两或者三位数字的行
grep -n '[0-9]\{2,3\}' vitest/passwd
正则表达式:计算机汇总一种正规的,带有规则的表达方式
例:搜索一个手机号码,可以把手机格式规定好,按照这个格式搜索便可以把所有符合格式规则的号码找到
规则:位数为11,第一位只能是1,第二位3,4,5etc,后面跟上随机9为数字
则其表达式为:1[3-9][0-9]{9}
LINUX文件系统中,保存在磁盘分区中的文件,是以索引节点号的方式保存的
硬链接:多个文件名指向同一个索引节点,那么可以称其他文件是其中一个文件的硬链接,如,a是b的硬链接,那么a的节点号和b的节点号相同(备份),删除其中任何一个,另一个不受影响
软链接:软链接类似于windows中的快捷方式,如果a是b的软链接,那么a和b 的节点不同,如果b被删除,a仍然存在,但是无法打开,是无效的
简单区别如下:创建文件f1,创建硬链接文件f2,创建软连接文件f3,删除f1,f2不收影响,f3不能使用;删除f2,f1f3都不受影响
打包(归档):就是把需要压缩的文件先放到一起
压缩:把打包好的文件,按照一定的要求,压缩,从而达到节省空间的目的
tar命令可以用来打包、解打包、压缩、解压缩
语法: tar [选项] 文件或者目录
选项
-c 将多个文件目录打包
-f 指定包的名称
-v 显示打包过程
-A 追加tar文件到归档文件中
示例:
打包之后压缩
压缩不能直接压缩目录,需要先用tar命令将目录打包,才能使用压缩命令压缩,比如gzip、bzip2...
gzip的使用: gzip tar包
后面可以通过tar命令,直接一步实现打包压缩操作
语法: tar [选项] 压缩包
选项:
-x 对tar包做解打包
-f 指定要解压的tar包的包名
-C 目录 指定解包的位置
-v 显示解包的过程
示例
使用tar命令做压缩和解压缩操作
语法:tar 选项 压缩文件 源文件或者目录
选项:
-z:压缩和解压缩.tar.gz格式
-j:压缩和解压缩.tar.bz2格式
压缩命令:
tat -zpcv
使用解压缩命令安装软件
在线安装:直接联网安装
压缩包安装:就是把安装包下好,然后安装
3种权限:读--r、写--w、执行--x,
1.使用数字修改文件权限
r-->4
w-->2
x-->1
chmod语法:
chmod 选项 文件名
选项:
-R 递归修改 修改目录中的所有文件权限
2.使用字母修改权限
LINUX将权限的3种身份 所有者、所属组、其他人分别用3个字母表示身份
所有者-->a
所属组-->g
其他人-->o
每个用户的权限,都可以通过对应的数字累加来确定具体权限
rwx r-x r-- 对应的数值组合是 : 7 5 4
所有者权限是 rwx = 4+2+1 = 7
所属组权限是 r-x = 4+0+1 = 5
其他人权限是 r-- = 4 +0+0 = 4
修改权限语法
示例:
将123文件都加一个x权限
将文件abc,所有者加x,所属组+w,其他人-r
分别创建两个文件,abc1和abc2
然后分别使用数字授权和字母授权的方式给他们不同的权限
abc1--> rwxr--r--
abc2-> r---w-r-x
LINUX是多任务多用户,不同用户可以同时访问执行不同的任务,不同的用户也有不同的权限,每个用户都可以在自己的权限范围内执行任务。
是系统用户配置文件,存储了用户的基本信息
每行通过:分隔成7个字段
含义如下:
用户名:密码:UID:GID:描述信息:主目录(家目录):默认的shell
存放用户组配置文件,所有的用户组的信息,存放在这里
以:分隔为4个字段,每个字段的含义
组名:密码:GID:用户列表
将具有相同特征的用户放在一起
系统不认识用户名,只认识对应ID,ID分为用户ID(UID)和组ID(GID)
UID:0-65535之间的数字
0:超级管理员,UID改成0既可
useradd:添加用户
passwd :修改用户密码
usermod:修改用户信息
userdel:删除用户
id:查看用户的UID和GID
su命令:切换用户
groupadd:添加用户组
groupmod:修改用户组
groupdel:删除用户组
gpasswd:添加用户进组或者删除用户出组
chgrp:修改文件或者目录的所属组
chown:修改文件或者目录的所有者和所属组
语法: useradd [选项] 用户名
选项:
-u UID : 手动指定UID,500-65535
-d 主目录 : 手动指定主目录,不写系统给
-c 说明 :passwd文件中描述信息那一栏
-g 组名: 指定用户初始组,不指定系统给和用户名同名组
-G 组名 : 指定附加组
-o :允许创建相同的用户的UID
示例:
语法: passwd [选项] 用户名
选项:
超级管理员root修改密码
用户修改自己密码,不能设置简单密码
语法: usermod [选项] 用户名
选项:
示例
语法: userdel [选项] 用户名
示例
语法: id 用户名
su命令:切换用户
语法 : su 用户名 或者 su - 用户名
root可以随意切换到普通用户
普通用户切换到root必须要密码
su - 表示,用户在切换身份的同事,将当前的环境变量也切换成指定用户的。
语法: groupadd [选项] 组名
选项:
示例:
语法: groupmod [选项] 组名
选项:
示例
删除用户组不能删除用户的初始组
语法: groupdel 组名
gpasswd:添加用户进组或者删除用户出组
可以设置组管理员,可以完成组中加人和删人的操作
语法: gpasswd [选项] 组名
不加选项是设置组密码
选项:
示例:
chgrp:修改文件或者目录的所属组
chown:修改文件或者目录的所有者和所属组
标准输入设备:键盘
标准输出设备:显示器
输入重定向:重新指定设备代替键盘作为新的输入设备
输出重定向:重新设定设备代替显示器作为新的输出设备
命令 < 文件 : 将指定的文件作为命令的输入设备
命令
命令 < 文件1 > 文件2 :将文件1作为命令的输入设备,该命令的执行结果输出到文件2中
示例:
执行命令 1, cat < /etc/passwd
2, cat /etc/passwd
这两个命令输出的结果是相同的,但是它们的本质是不同的,1就代表了,将passwd这个文件作为输入设备,2就代表是以键盘作为输入设备
执行命令 : cat < /etc/passwd > a.txt
通过重定向将 /etc/passwd作为输入设备,并且将内容输出到a.txt中。最终实现/etc/passwd中内容复制的操作
> 标准输出重定向
>> 错误输出重定向
语法
命令 > 文件 清空输出
命令 >> 文件 追加输出
命令 2> 文件 错误清空输出
命令 2>> 文件 错误追加输出
用来显示Linux系统中各文件系统的硬盘使用情况
语法: df [选项] [目录或者文件名]
语法: du [选项] [目录或者文件名称]
命令连接符,将一个命令生产的数据直接传递给后面的命令。
语法: 命令1 | 命令2 |命令3 | ....
示例1: 查看目录下内容比较多时,一下子查看不完,可以连接分页命令,分页查看
ls -l /etc | less
示例2: 查看进程中带有python关键的进程
查询进程: ps -ef
示例3: 将 /etc/issue文件中的内容转换大小写以后保存到 /tmp/issue.out中
转换内容: tr [a-z] [A-Z] 将小写转成大写
示例4:使用管道符 计算 1-100的和
需要安装一个 Linux的计算器功能
命令: yum -y install bc
echo {1..100} | tr ' ' '+' | bc
利用将echo输出的一串数字中的空格替换成+号,完成计算
rpm :软件管理器,相当于windows中控制面板中的程序,是本地的软件包的管理,可以查看和卸载一些软件
yum: 软件的仓库
可以做的操作:
1,yum check -update 更新仓库
2,yum -y install 软件名 :安装指定软件
3,yum update 软件名 : 更新软件
4,yum -y remove 软件名 :卸载软件
5,yum list installed :列出已经安装的软件包
yum repolist
cd /etc/yum.repos.d
sudo mv CentOS-Base.repo CentOS-Base.repo.bak
sudo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/Centos-7.repo
如果wget用不了就使用下面命令:
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
yum repolist
netstat -anp | grep 3306
netstat -nultp
shell编程
就是以编程的方式写一些可以执行的脚本文件
第一个Shell编程,HelloWorld!
使用vi命令,创建文件并输入内容
给创建好的文件添加一个可以执行的权限
使用./执行文件,显示器就会输出内容
第一行代码: #!/bin/bash
表示一个约定的标记,告诉系统这个脚本需要使用什么解释器来执行,即使用哪种shell,/bin/bash就是指明了解释器的具体位置,一般在这里都是固定写法
第二行代码 :echo "HelloWorld!"
echo 命令用于向标准输出设备,输出文件内容,在.sh中和在终端命令窗口直接输入名的效果一样
稍微复杂一点的Shell脚本
echo "请输入你的姓名:" #输出提示
read person #读取用户输入的内容
echo "Hello,$person" #将用户输入的内容读取后输出
变量:每个语言必不可少的部分,是在内存中开辟的一个小空间,用来存放数据的。
shell变量不用指定数据类型,直接赋值就可以使用
在shell中,每一个变量的值都是一个字符串
shell在默认情况下,不会区分变量的数据类型,即使你将整数或者小数赋值给变量,也会被当做字符串,这个特点和很多编程语言不同
shell变量定义支持以下三种方式:
变量名=值
变量名='值'
变量名="值"
如果值中,不包含空格或者其他的空白符,可以不适用引号,如果包含空白符必须适用引号引起来。
Shell变量名的取名规范(和大部分编程语言相通):
1,只能由数字、字母、下划线组成
2,必须以字母或者下划线开头
3,不能使用shell关键字
定义变量示例
变量名的外面可以加上一对花括号{}
花括号的作用,可以帮助解释器识别变量的边界,
一般推荐加上{}