内核和发行版本
内核:只提供操作系统的基本功能和特性,如内存管理,进程调度,文件管理等等。 发行版:基于linus维护的linux内核,是由一些厂商集成了漂亮易用的桌面和常用的软件而发布的商品。 常见的发行版本:Redhat、centos、Debian、Ubuntu、SUSE
Linux和Windows的不同
1.Linux严格区分大小写 2.Linux中所有内容都以文件形式保存,包括硬件. 3.Linux不靠拓展名区分文件类型: >压缩包:".gz","*.bz2","*.tar.bz2","*.tgz"等 >二进制软件包:"*.rpm" >网页文件:"*.html","*.php" >脚本文件:"*.sh" >配置文件:"*.conf" 4.Windows下的程序不能直接在Linux中安装和运行
~家目录
root用户,家目录/root
普通用户,家目录/home/用户名
cd 目录名:当前目录下有我们要找的文件
cd /xxx/xxx/当前目录没有我们要找的文件,需写清楚文件具体地址
SSH(安全外壳协议)
SSH为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。
Linux系统的目录结构
Linux系统的目录结构是一个树状结构,每一个文件或目录都从跟目录开始,并且根目录只能有一个。
6、/proc - 进程信息 包含系统进程的相关信息。 这是一个虚拟的文件系统,包含有关正在运行的进程的信息。 例如:/proc/{pid}目录中包含的与特定pid相关的信息。 这是一个虚拟的文件系统,系统资源以文本信息形式存在。 例如:/proc/uptime 7、/var - 变量文件 var代表变量文件。 这个目录下可以找到内容可能增长的文件。 这包括 - 系统日志文件(/var/log);包和数据库文件(/var/lib);电子邮件(/var/mail);打印队列(/var/spool);锁文件(/var/lock);多次重新启动需要的临时文件(/var/tmp); 8、/tmp - 临时文件 包含系统和用户创建的临时文件。 当系统重新启动时,这个目录下的文件都将被删除。 9、/usr - 用户程序 包含二进制文件、库文件、文档和二级程序的源代码。 /usr/bin中包含用户程序的二进制文件。如果你在/bin中找不到用户二进制文件,到/usr/bin目录看看。 例如:at、awk、cc、less、scp。 /usr/sbin中包含系统管理员的二进制文件。如果你在/sbin中找不到系统二进制文件,到/usr/sbin目录看看。 例如:atd、cron、sshd、useradd、userdel。 /usr/lib中包含了/usr/bin和/usr/sbin用到的库。 /usr/local中包含了从源安装的用户程序。 例如,当你从源安装Apache,它会在/usr/local/apache2中。 10、/home - HOME目录 所有用户用home目录来存储他们的个人档案。 例如:/home/john、/home/nikita 11、/boot - 引导加载程序文件 包含引导加载程序相关的文件。 内核的initrd、vmlinux、grub文件位于/boot下。 例如:initrd.img-2.6.32-24-generic、vmlinuz-2.6.32-24-generic 12、/lib - 系统库 包含支持位于/bin和/sbin下的二进制文件的库文件. 库文件名为 ld*或lib*.so.* 例如:ld-2.11.1.so,libncurses.so.5.7 13、/opt - 可选的附加应用程序 opt代表可选的。 包含从个别厂商的附加应用程序。 附加应用程序应该安装在/opt/或者/opt/的子目录下。 14、/mnt - 挂载目录 临时安装目录,系统管理员可以挂载文件系统。 15、/media - 可移动媒体设备 用于挂载可移动设备的临时目录。 举例来说,挂载CD-ROM的/media/cdrom,挂载软盘驱动器的/media/floppy; 16、/srv - 服务数据 srv代表服务。 包含服务器特定服务相关的数据。 例如,/srv/cvs包含cvs相关的数据。
命令基本格式
命令提示符: [root@localhost ~]# root(当前登录用户) localhost(主机名) ~(当前所在目录(家目录),如果是root,代表/root;如果是普通用户user1,代表/home/user1) #(超级用户的提示符#;普通用户提示符$) 命令格式: 命令[选项][参数] 注意:个别命令的使用不遵循次格式,当有多个选项时,可以写在一起,简化选项与完整选项(-a等于--all) 查询目录中的内容: ls[选项][文件或目录] 选项: -a显示所有文件,包括隐藏文件 ls -a:查看所有 -l显示详细信息 ls -l:查看详情 -h人性化显示文件大小 ls -h:人性化查看详情 ll :ls -l的缩写(通过alias看快捷方式) ls -alh:查询所有
文件处理命令
查询所在目录位置:pwd 切换所在目录:cd 简化操作: cd ~:切换到用户目录(家目录) cd :切换到用户目录 cd -:切换到上一个访问目录 cd ..:切换到上一级目录 创建文件:touch [文件名] 建立目录:mkdir -p[目录名] -p创建目录递归 mkdir 目录名:创建目录 mkdir -p xx/yyy/zz :创建多级目录 删除空目录:rmdir[目录名] rmdir 目录:删除的目录一定是为空(空目录) 删除文件或目录:rm rm -rf[文件或目录] 选项:-r(递归删除目录) -f(强制删除) rm -r目录:递归文件夹(带提示) rm -f文件:删除文件(不带提示,强制删除) rm -rf文件/文件夹:递归删除,无提示 #禁止:rm -rf /*删除所有文件# 复制命令:cp cp[选项][原文件或目录][目标目录] 选项: -r(复制目录) cp 源文件 备份文件:不会删除源文件(备份文件) cp -r源目录 目标目录 剪切或改名命令:mv mv[原文件或目录][目标目录] mv 源文件 目标目录:剪切(将源文件移动到目标目录,并删除源文件) mv 源文件 不存在的文件:重命名 mv 源文件 文件夹/不存在的文件:剪切并重命名
命令搜索
whereis 命令名(搜索命令所在的路径及帮助文档所在的位置) -b 只查找可执行文件 -m 查找帮助文件 which 命令名(搜索命令所在的路径及别名) alias 别名 PATH环境变量量(定义的是系统搜索命令的路径,相当于window下的path) echo $PATH :查看环境变量
文件搜索命令find(系统中的文件)
通配符: * 匹配任意内容(vm*) ? 匹配任意一个字符(vm?或vm???) [] 匹配任意一个中括号内的字符 时间查询: find /var/log -mtime +10(查找十天前修改的文件) -10 10天内修改文件 10 10天当天修改的文件 +10 10天前修改的文件 atime 文件访问时间 access访问 ctime 改变文件属性时间 change改变 mtime 修改文件时间 modify修改 按文件大小查询: find / -size 25k #查找文件大小是25KB的文件,注意k是小写的. -25k 小于25KB的文件 25k 等于25KB的文件 +25k 大于25KB的文件 find / -size 25M #查找文件大小是25MB的文件,注意M是大写的. 符合条件查询: find /etc -size +20k -a -size -50k #查找/etc/目录下,大于20KB并且小于50KB的文件 -a and 逻辑与,两个条件都满足 -o or 逻辑或,两个条件满足一个即可 find /etc -size +20k -a -size -50k -exec ls -lh {} \; #查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息 #-exec {} \;这是固定格式
字符串搜索命令grep
grep [选项] 字符串 文件名(文件中的字符串) 选项: -i 忽略大小写 -v 排除指定字符串 cat anaconda-ks.cfg 查看内容 grep timezone anaconda-ks.cfg 经典使用: ps -ef | grep java
find命令与grep命令的区别
find命令:在系统中搜索符合条件的文件名. grep命令:在文件中搜索符合条件的字符串.
帮助命令
man命令: man ls(查看ls的帮助) man 命令名 :查看帮助命令f b 键翻页 q退出 选项帮助: 命令 --help #获取命令选项的帮助 实例: ls --help 命令 --help :简洁版帮助 但是不适用内部命令,如cd: help cd 命令特殊时,使用 help 命令 比如: help cd
压缩与解压命令
.zip格式: 压缩 zip 压缩文件名 原文件(压缩文件) zip a.zip a.txt zip -r 压缩文件名 原文件(压缩目录,递归压缩) 先安装zip 软件: yum install zip yum install -y zip : 不带确认的安装 卸载: yum remove zip zip -r 压缩文件名 原文件夹 :递归要是文件夹 【如果不指定递归压缩,仅仅是压缩文件夹】 zip -r bb.zip bb 解压:(解压缩.zip文件) unzip 压缩文件 ;解压
.gz 格式: 压缩: gzip 原文件(压缩为.gz格式的压缩文件,原文件会消失) gzip -c 原文件 > 压缩文件 (压缩为.gz格式,原文件保留) (-c的意思不是说需要保留文件,而是要把压缩的结果输出到控制台) (>的意思是吧结果输到什么地方去) gzip -r 目录 (压缩目录下所有的子文件,但不能压缩目录) gzip 原文件 (压缩文件,原文件会消失 如:gzip a.txt) gzip -r 原文件(遍历文件夹,压缩文件夹中文件,目录不压缩 如:gzip -r learn) gzip -d 压缩文件(#解压缩文件) gunzip 压缩文件(解压缩文件) gunzip -r 压缩文件目录 ;递归解压
.tar.gz格式 打包命令: tar -cvf 打包文件名 源文件(例:tar -cvf learn.tar learn) 选项:(原文件不会消失) -c 打包 -v 显示过程 -f 指定打包后的文件名 解打包命令: tar -xvf 打包文件名( -x 解打包) 压缩: tar -zcvf 打包压缩包名.tar.gz 源文件(例:tar -zcvf learn.tar.gz learn) 选项: -z 压缩为.tar.gz格式 tar -zcvf 指定目录/压缩包名 原文件 解压: tar -zxvf 压缩包名.tar.gz 选项: -x 解压缩.tar.gz格式 #加上-C表示解压到指定的目录 tar -zxvf 压缩包名.tar.gz -C 指定目录 解压: tar -zxvf learn.tar.gz -C 目录 压缩: tar -zcvf learn.tar.gz learn
其他命令
查看用户信息: w 用户名(如:w root) who 命令输出: 用户名 登陆终端 登陆时间(登陆来源IP地址) 查询当前登录和过去登录的用户信息: last命令默认时读取/var/log/wtmp文件数据 命令输出 -用户名 -登陆终端 -登陆IP -登陆时间 -退出时间(在线时间) 查看最后一次登录时间:lastlog 磁盘使用情况:df (df -h: 格式化显示输出磁盘使用情况) 查看任务进程:top 查看内存占用:free 查看历史操作:history 在显示器输出内容:echo 文件查看命令: cat 文件名(整个文件内容显示出来 tail(默认在屏幕上显示指定文件的末尾10行) 参数: -f 显示文件最新追加的内容。 -行数 在屏幕上显示指定文件的末尾参数设置的行数(Ctrl+c退出)
vi编辑器
编辑器的三种模式:末行模式—编辑模式—输入模式
打开和关闭文件: 打开文件 vi /path/to/file wq:保存退出 q!:退出不保存 编辑模式 ZZ保存退出 移动光标 翻屏操作(Ctrl+f向下,Ctrl+b向上) 删除命令 复制和粘贴 查找和替换
权限管理
用户管理 useradd: 创建用户:useradd 用户名 创建用户并分配一个组:useradd -G 组名 用户名 查看系统用户:cat /etc/passwd groupadd: 创建用户组:groupadd 组名 查看系统用户:cat /etc/group usermod: 修改用户属性:usermod -G 组名 用户名 userdel: 删除用户: -f:强制删除 -r:删除与用户相关的所有文件 groupdel: 删除组 passwd: 设置用户密码:passwd 用户名 查看密码:cat /etc/shadow 注销:logout 切换用户:su 用户名
文件基本权限
基本权限的修改: 文件权限解释: -rw-r--r-- - 文件类型(- 文件 d 目录 I 软链接文件) rw- r-- r--(r读 w写 x执行) u用户 g用户组 o其他 chmod命令: chmod [选项] 模式 文件名 -R 递归 修改权限方式: chmod [选项] 模式 文件名 [guoa] [+-=] [rwx] (g:groud u:user o:other a:all) 权限的数字表示 r 4 r-- 100 w 2 -w- 010 x 1 --x 001 #0 --- (例:chmod 744 a --> chmod u+rwx,g+r,o+r a) #1 --x #2 -w- #3 -wx #4 r-- #5 r-x #6 rw- #7 rwx 其他权限命令: 修改文件的所有者:chown 用户名 文件名 修改文件的所属组:chgrg 组名 文件名
sudo权限
visudo (实际修改的是/etc/sudoers文件) #用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径) root ALL=(ALL) ALL #%组名 被管理注解的地址=(可使用身份) 授权命令(绝对路径) %wheel ALL=(ALL) ALL
系统服务管理
systemctl是CentOS7的服务管理工具中主要的工具 启动服务:systemctl start <服务名> 关闭服务:systemctl stop <服务名> 重启服务:systemctl restart <服务名> 查看服务状态:systemctl status <服务名> 添加开机启动项:systemctl enable <服务名> 禁止开机启动项:systemctl disable <服务名> 查看开机启动项:systemctl list-unit-files #关闭防火墙:systemctl stop firewalld #禁止开机启动:systemctl disable firewalld #查看状态:systemctl status firewalld 进程查看:ps(用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序) 杀死进程:kill
网络管理
网络中的基本概念: 1)ip地址:在网络通信中主机的标识符(好比手机号码) 2)mac地址:主机的物理网卡的唯一标识符(好比身份证号码) 3)子网掩码:用于区分主机的IP地址中的网络地址和主机地址,并由此确定该主机的IP地址的网段 4)网关:就是一个网络中的主机连接到另一个网络的主机的关口 5)DNS:域名解析服务器,把域名解析成对应的IP地址 防火墙: centos7的防火墙程序服务名为:firewalld #防火墙配置命令:firewall-cmd ifcfg-eth解释: 文件 /etc/sysconfig/network-scripts/ifcfg-eth0在/etc/sysconfig/network-script在这个 目录下面,存放的是网络接口(网卡)的脚本文件(控制文件),ifcfg-eth0是默认的第一个网络接口,如果 机器中有多网络接口,那么名字就将依此类推ifcfg-eth1,ifcfg-eth2,ifcfg-eth3......(这里的文件 是相当重要的,涉及到网络能否正常工作)
Linux应用
软件安装: rpm -q <软件名> # rpm -qi < 软件名> (得到被安装的包的信息 ) # rpm -ql < 软件名> (列出该包中有哪些文件 ) #rpm -qf <文件或目录名> (列出服务器上的一个文件或目录属于哪一个RPM包 ) # rpm -qa (列出所有被安装的rpm package ) # rpm -e <软件名> (卸载一个包 ) **有安装包,知道依赖关系使用rpm**
yum: 1. 配置一个自定义的仓库地址 /etc/yum.repos.d local.repo 2.安装命令 yum install 3.查看软件包 yum list |grep mysql yum list installed 4.卸载软件包 yum remove **没安装包, 不知道依赖关系,使用yum** 修改yum: yum install wget -y mv(改名)(cp复制) /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS- Base.repo_bak wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum makecache #更新系统软件,不执行 yum -y update
用zip gz .tar.gz三种,压缩文件到指定目录
zip ii/aa.zip aa
gzip -c aa > ii/aa.gz
tar -zcvf ii/aa.tar.gz aa