一、Linux简介 1、Linux分为内核版和发行版 2、Window是与Linux的区别 (1)Linux严格区分大小写 (2)Linux中所有内容以文件形式保存,包括硬件 (3)Linux没有扩展名概念 即Linux不靠扩展名区分文件类型(靠权限区分),但会有一些约定寻常的扩展名区分 压缩包:“*.gz”、”*.bz2”、”*.tar.bz2”、”*.tgz”等 二进制软件包:”*.rpm” 网页文件:”*.html”、”*.php” 脚本文件:”*.sh” 配置文件:”*.conf” (4)Windows下的程序不能直接在Linux中安装和运行 好处:病毒和木马不能执行 坏处:要针对Linux单独开发 3、字符界面的优势 (1)字符界面占用系统资源少 (2)字符界面较少了出错、被攻击的可能性 二、Linux安装 1、虚拟机的安装(VMware) http://www.vmware.com 7(Windows7装不了)、8 建议配置: CPU:主频1GHz 内存:1GB以上 硬盘:8GB2、虚拟机使用VMware_install_cleaner 删除虚拟机3、系统分区只分区与格式化(1)分区:将硬盘逻辑上分为几个不同存储空间保存数据(2)分区类型:(通用)主分区:最多只能有四个扩展分区: 最多只能有一个主分区加扩展分区最多有四个不能写入数据,只能包含逻辑分区逻辑分区(3)格式化:只根据用户选定的文件系统(如FAT16(最大支持2GB分区)、FAT32(单个文件大小不能超过4GB,支持分区大小能达到16GB)、NTFS、EXT2、EXT3、EXT4等) ,在磁盘的特定区域写入特定数据,在分区中划出一片用于存放文件分配表、目录表等用于文件管理的磁盘空间。首先将磁盘分为等大小的数据块(4kb一个),在分区列表里建立二维表格(ID号(I节点)、修改时间、权限、文件保存位置)4、分区之分区设备文件名与挂载分区,格式化,(起名Linux)、分配盘符/:根目录dev:硬件设备文件hd:硬盘sd:SCSI或SATA或USB硬盘cdrom或hdc:光驱fd:软盘lp:打印机(25针)usb/lp:打印机(USB)mouse:鼠标(1)设备文件名:例——/dev/sda1:第一块(a)SATA接口硬盘的第一个(1)分区sda1中1的位置上1、2、3、4只能给主分区命名,即使主分区只有两个,第一个逻辑分区也是5(2)挂载点(Linux)=盘符(Windows)挂载:给分区分配盘符的过程必须分区:/(根分区)、swap分区(交换分区,内存2倍(内存4GB之内)、同内存相同(内存大于4GB)(虚拟内存))推荐分区:/boot(启动分区,200M)(系统启动至少需要几十MB)挂载:把盘符和分区连接在一起的过程挂载点:目录5、Linux安装中文插件:zhcon6、Xshell的安装和使用先设置地址1、命令基本格式三、Linux常用命令命令 【选项】 【参数】(个别命令不遵循)当有多个选项是,可以写在一起 -L和-a 可写成-aL简化选项与完整选项 -a=--allls【选项】 【文件或目录】(操作对象) (不加选项,不加文件也出现)选项:-a 显示所有文件,包括隐藏文件-l 显示详细信息-d 查看目录属性-h 人性化显示文件大小-i 显示inode(i节点)权限:(10位)-rw-r--r--:-文件类型(-文件、d目录、l软链接文件(快捷方式)、块设备文件、字符设备文件、套接字文件、管道文件。只要求掌握前三个,后四个特殊)除去第一位,后面每三位为一组,代表文件的(u)所有者、(g)所属组、(o)其他人三个身份。r读 w写 x执行用户组:相同身份,相同权限的人输入ls -l出现:权限 .(ACL权限) 引用计数 文件所有者 所属组 文件大小(字节(-l变为-lh会变为XX K) 最后一次修改时间 文件名若不加参数则是对当前文件进行操作隐藏文件:系统文件若非必要不要操作,另一可能为病毒、木马2、文件处理命令建立目录:mkdir mkdir -p【目录名】 (-p为递归创建建(创建多个目录))切换目录:cd简化操作:cd ~、cd 进入当前用户的家目录 cd - 进入上次目录cd .. 进入上一级目录 cd . 进入当前目录相对路径,绝对路径Tab键可补全目录或命令pwd:显示当前所在位置删除目录:-r 删除文件 -f 强制rmdir【目录名】(只能删除空白目录)rm -rf【目录名】强制删除所选目录复制命令:cpcp 【选项】 【源文件或目录】 【目标目录】选项:-r 复制目录-p 连带文件属性复制-d 若原文件是链接文件,则复制链接-a 相当于 -pdr(复制文件和原文件一模一样)mv 【原文件或目录】 【目标目录】也可以改名,当原文件和目标文件在同一个目录3、常用目录的作用/ 根目录/bin和/sbin 命令保存目录(普通用户就可以读取的命令)/boot 启动目录,启动相关文件/dev 设备文件保存目录/etc 配置文件保存目录/home 普通用户的家目录/lib 系统库保存目录/mnt 系统挂载目录/media 挂载目录/root 超级用户的家目录 /proc和sys 目录不能直接操作,这两个目录保存的是内存的过载点 /tmp 临时目录 /usr 系统软件资源目录 /usr/bin/ 系统命令(普通用户) /usr/sbin/系统命令(超级用户) /var 系统相关文档内容 4、链接命令:ln ln -s [源文件][目标文件] -s创建软连接 硬连接特征:1、拥有相同的i节点和存储block块,可看做是同一个文件 2、可通过i节点识别 3、不能跨分区 4、不能针对目录使用 (类似于同一个教室的前后门) 软连接特征: 1、类似Windows快捷方式 2、软连接拥有自己的I节点和Block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据 3、lrwxrwxrwx l软连接 (软连接文件权限都为rxwrxwrxw) 4、修改任意文件,另一个都改变 5、删除原文件,软连接不能使用 做软连接原文件要写绝对路径,除非在同一路径下 5、文件搜索命令 (1)locate 【文件】 在后台数据库中按文件名搜索,搜索速度快 /var/lib/mlocate #locae命令所搜索的后台数据库(数据库每天更新一次) updatedb 强制更新数据库 缺点:只能按照文件名来搜索 /etc/updatedb.comf配置文件(conf一般为配置文件扩展名) PRUNE_BIND_MOUNTS="yes" #开启搜索限制 PRUNEFS= #搜索时,不搜索的文件系统 PRUNENAMES= #搜索时,不搜索的文件类型 PRUNEPATHS= #搜索时,不搜索的路径 (2)命令的搜索命令whereis与which —— whereis 命令名 #搜索命令所在路径及帮助文档所在位置 -b:只查找可执行文件 -m:只查找帮助文件 ——which 文件名 搜索命令的位置和别名,有的也不会显示 cd:shell内置命令,不需要有独立执行文件 PATH环境变量:定义的是系统搜索命令的路径 【root@localhost ~】#echo $PATH /usr/lib/pt-3.3/bin: /ust/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 执行自己写的脚本必须加绝对路径,否则要放在PATH环境变量中 (3)文件搜索命令find 格式:find【搜索范围】【搜索条件】 #搜索文件 find / -name install.log #避免大范围搜索,会非常耗费系统资源 #find是在系统当中搜索符合文件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配 通配符:*——匹配任意内容 【】——匹配任意一个中括号内的字符 ?——匹配任意一个字符 find /root -iname install.log #不区分大小写 find /root -ust root #按所有者搜索 find /root -nouser #查找没有所有者的文件没有所有者的目录一般为垃圾文件,但是如果文件由内核产生,就没有所有者(proc,sys中),外来文件如U盘、光盘中的文件也没有所有者find /var/log/ -mtime +10 #查找10天前修改的文件-10:10天内修改文件 10:10天当天修改的文件atime 文件访问时间 ctime 改变文件属性时间 mtime 修改文件内容时间find . -size 25k #查找文件大小为25k文件-25k 小于25KB的文件 25k 等于25KB的文件 +25k 大于25KB的文件 (若是查找兆字节,必须用M,千字节用k) size默认单位是数据块512字节)find . -inum 262422 #查找i节点是262422的文件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/-ok命令{}\; 对搜索结果执行操作 (4)字符串搜索命令grep grep 【选项】 字符串 文件名 #在文件中匹配符合田间的字符串 选项: -i 忽略大小写 -v 排除指定字符 (5)find命令与grep命令的区别 find:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。 grep:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配(包含字符的文件都能搜到) 若搜索是文件名称,使用通配符,若搜索文件中内容,用正则表达式匹配 6、帮助命令 (1)man (manual的缩写) man 命令 #获取指定命令的帮助 例:man ls #查看ls的帮助 /选项:寻找该选项的帮助 man的级别: 1:查看命令的帮助 2:查看可被内核调用的函数帮助 3:查看函数和函数库的帮助 4:查看特殊文件的帮助(主要是/dev(硬件)目录下的文件) 5:查看配置文件的帮助 6:查看游戏的帮助 7:查看其他杂项的帮助 8:查看系统管理员可用命令的帮助 9:查看和内核相关文件的帮助 man -f 命令 相当于 whatis 命令 man -数字 打开相应等级 man -k 命令 相当于 apropos 命令 只要包含关键字的有关文件全部显示 (2)其他帮助命令 选项帮助: 命令 --help #获取命令选项的帮助 shell内部命令帮助和man差不多: help shell内部命令 #获取shell内部命令的帮助 info命令 按 回车: 进入子帮助页面(带有*标记) 按 u: 进入上层页面 按 p: 进入上一个帮助小节 按 n: 进入下一个帮助小节 按 q: 退出 7、压缩与解压缩命令 常用压缩格式:.zip .gz .rar .bz2 .tar.gz .tar.bz2 (1).zip格式压缩 zip 压缩文件名(不一定要写后缀名) 源文件 #压缩文件 软件包为红色 zip -r 压缩文件名 源目录 #压缩目录 解压缩:unzip 压缩文件 #解压缩.zip文件 (2).gz格式压缩 gzip 源文件 #压缩为.gz格式的压缩文件,源文件会消失 gzip -c 源文件 > 压缩文件 #压缩为.gz格式,源文件保留 gzip -r 目录 #压缩目录下所有的子文件,但是不能压缩目录 解压缩:gzip -d 压缩文件 #解压缩文件 gunzip 压缩文件 #解压缩文件 (3).bz2格式压缩 bzip2 源文件 #压缩为.bz2格式,不保留源文件 bzip2 -k 源文件 #压缩之后保留源文件 不能压缩目录 解压缩:bzip2 -d 压缩文件 #解压缩,-k保留压缩文件 bunzip2 压缩文件 #解压缩,-k保留压缩文件 (4)打包命令tar tar -cvf 打包文件名 源文件 选项: -c: 打包 -v: 显示过程 -f: 指定打包后的文件名 解打包命令: tar -xvf 打包文件名 选项:-x 解打包 .tar.gz格式是先打包为.tar格式,再压缩为.gz格式 tar -zcvf 压缩包名.tar.gz 源文件 选项: -z:压缩为.tar.gz格式 tar -zxvf 压缩包名.tar.gz 选项: -x:解压缩.tar.gz格式 tar -jcvf 压缩包名.tar.bz2 源文件 选项: -z:压缩为.tar.bz2格式 tar -jxvf 压缩包名.tar.bz2 选项: -x:解压缩.tar.bz2格式 解压缩目录在之后加 -C 目录 就能把压缩包放到所写目录里 压缩多个目录在压缩包之前加绝对路径 tar -ztvf 压缩文件 只查看不解压 8、关机和重启命令 (1) shutdown命令【root@localhost ~】#shutdown[选项]时间选项: -c:取消前一个关机命令 -h:关机 -r:重启时间:now (加&表示将这条命令放在后台执行,因为这条命令后电脑将不在有反应)Ctrl+c:取消命令 尽量避免远程关机(?)(2)其他关机命令[root@localhost ~]# halt[root@localhost ~]# poweroff[root@localhost ~]# init 0但是不是太安全,不会在关机重启是正确保存文件(3)其他重启命令[root@localhost ~]# reboot[root@localhost ~]# init 6 init:调用系统级别(4)系统运行级别0 关机1 单用户:Windows中安全模式,启动最小程序,主要做系统修复2 不完全多用户,不含NFS服务:字符界面 NFS:文件共享服务3 完全多用户:字符界面4 未分配5 图形界面6 重启[root@localhost ~]# cat/etc/inittab 修改系统默认运行级别 id:3(开机进入字符界面):initdefault[root@localhost ~]# runlevel 查询系统运行级别 蹦出来的是前一个是之前的级别,后一个是现在级别(5)退出登录命令[root@localhost ~]#logout9、其他常用命令(一)挂载命令(1)查询与自动挂载[root@localhost ~]# mount 查询系统中已经挂载的设备[root@localhost ~]# mount -a 依据配置文件/etc/fstab的内容,自动挂载(2)挂载命令的格式[root@localhost ~]# mout [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点-t文件系统:加入文件系统类型来指定挂载的类型,ext3、4(标准文件系统)、iso9660(光盘默认文件系统)-o特殊选项:可以指定挂载的额外选项参数 说明atime/noatime 更新访问时间/不更新访问时间。范文分区文件时,是否更新文件的访问时间,默认为更新。async/sync 异步/同步。默认为异步auto/noauto 自动/手动,mount -a命令执行时,是否会自动安装/etc/fstab文件内容挂载,默认为自动defaults 定义默认值,相当于rw,suid,dev,exec,auto,nouser,async这七个选项exec/noexec 执行/不执行,设定是否允许在文件系统中执行可执行文件,默认是exec允许remount 重新挂载已经过载的文件系统,一般用于指定修改特殊权限rw/ro 读写/只读,文件系统挂载时,是否具有读写权限,默认是rwsuid/nosuid 具有/不具有SUID权限,设定文件系统是否具有SUID和SGID权限,默认是具有user/nouser 允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载,默认是不允许,只有root可以挂载分区usrquota 写入代表文件系统支持用户磁盘配额,默认不支持grpquota 写入代表文件系统支持组磁盘配额,默认不支持(3)挂载光盘建立挂载点挂在光盘 mount -t iso9660 /dev/sr0 /mnt/cdroom(光盘挂载点)或mount /dev/sr0 /mnt/cdroom(4)卸载命令[root@localhost ~]# umount 设置文件名或挂载点用完之后必须卸载(5)挂载U盘[root@localhost ~]# fdisk -l(查看系统中已识别硬盘)[root@localhost ~]# mount -t vfat /dec/(U盘所在分区)/mnt/usb/(挂载点)注:Linux默认不支持NTFS文件系统,所以不能直接挂载U盘在系统中安装ntfs-3g,但是只读模式。(二)用户登录查看(1)w 用户名USER:登录的用户名TTY:登录终端FROM:从哪个IP地址登陆LOGIN@:登录时间IDLE:用户闲置时间JCPU:指的是个该终端连接的所有进程占用的时间。这个时间并不包括过去的后台作业时间,但包括当前正在运行的后台作业所占用的时间PCPU:是指当前进程所占用的时间WHAT:当前正在运行的命令(2)who 用户名命令输出:用户名 登录终端 登录时间(登录来源IP地址)(3)lastlast命令默认是读取/var/log/wtmp文件数据命令输出:用户名 登录终端 登录IP 登录时间 推出时间(在线时间)/var/log/wtmp是二进制文件不能用vi打开,为了防止人为修改(4)lastloglastlog命令默认是读取/var/log/lastlog文件内容命令输出:用户名 登录终端 登录IP 最后一次登录时间四、Shell基础1、Shell概述Shell是一个命令行解释器,为用户提供了一个向Linux内核发送请求以便运行程序的界面系统程序,用户可以用Shell开启动、挂起、停止甚至是编写一些程序。它还是一个功 能强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令2、Shell的分类Bourne Shell:从1979起Unix就开始使用Bourne Shell,主文件名为shC Shell:主要在BSD班的Unix系统中使用,其语法和C语言相似而得名Shell的两种主要语法彼此不兼容。Bourne主要包括sh、ksh、Bash、psh、zsh;C主要包括csh、tcshBash兼容sh、tcsh等3、脚本执行方式(1)echo[选项][输出内容]输出有空格时,须加双引号选项:-e 支持反斜线控制的字符转换\a 警告音\b 退格键,即左删除键\n 换行符\r 回车键\t 制表符,即Tab键\v 垂直制表符\0nnn 按照八进制ASCII码表输出字符。其中0为数字零,nnn是三位八进制数\xhh 按照十六进制ASCII码表输出字符。其中hh是两位十六进制数例:echo -e “Hello\b world”(回车)Hell worldecho -e “\x68\t\x65\t\x6c\n\x6c\t\x6f\t”(回车)h e ll o输出颜色:#30m=黑色 31m=红色 32m=绿色 33m=黄色 34m=蓝色 35m=洋红 36m=青色 37m=白色\e代表调用颜色命令格式:echo -e “\e[1;(颜色序号)XXXXX\e[0m” [1表示开启颜色,[0表示关闭颜色(2)第一个脚本(3)脚本执行赋予执行权限,直接运行chmod 755 hello.sh./hello.sh方向路径 或绝对路径通过Bash调用执行脚本bash hello.sh4、Bash的基本功能(1)命令别名与快捷键alias:查看系统中所有的命令别名alias 别名=‘原命令’ 设定命令别名 临时生效,注销重启后就会还原(2)别名永久生效与删除别名vi ~/.bashrc 写入环境变量配置文件 环境变量配饰文件:所有定义操作环境的文件 重启才会生效source .bashrc 会立即生效 将文件内容调用一遍unalias 别名 删除别名(临时删除)(3)命令生效顺序:第一顺位执行用绝对路径或相对路径执行的命令第二顺位执行别名第三顺位执行Bash的内部命令第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令PATH:用“:”分割的一些系统目录(4)常用快捷键ctrl+c:强制终止当前命令ctrl+l:清屏ctrl+a:光标移动到命令行首ctrl+e:光标移动到命令行尾ctrl+u:从光标所在位置删除到行首ctrl+z:把命令放入后台ctrl+r:在历史命令中搜索 出现(reverse-i-search)'vi':(5)历史命令history[选项][历史命令保存文件]选项: -c 清空历史命令 -w 把缓存中的历史命令写入历史命令保存文件~/.bash_history历史命令默认保存1000条,可以在环境变量配置文件/etc/profile中进行修改HISTSIZE= (数字)(6)史命令的调用使用上、下箭头调用以前的历史命令使用“!n”重复执行第n条命令使用“!!”重复执行上一条命令使用“!字串”重复执行最后一条一该字串开头的命令(7)令与文件补全命令与文件补全,只要在输入命令或文件是,按“Tab”键就会自动进行补全(8)输出重定向把数据写进电脑叫输入,电脑显示出来叫输出<1>标准输入输出:设备 设备文件名 类型 文件描述符键盘 /dev/stdin 标准输入 0显示器 /dev/sdtout 标准输出 1显示器 /dev/sdterr 标准错误输出 2<2>输出重定向正确输出是输出到显示器,输出重定向是指不在输出到显示器中,一般是输出到文件中类型 符号 作用标准输出重定向 命令 > 文件 以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中命令 >> 文件 以追加的方式,把命令的正确输出输出到指定的文件或设备当中标准错误输出重定向 命令 2> 文件 以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中命令 2>> 文件 以追加的方式,把命令的错误输出输出到指定的设备或文件当中正确输出和错误 命令 > 文件 2>&1 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中输出同时保存 命令 >> 文件 2>&1 以追加的方式,把正确输出和错误输出都保存到同一个文件当中命令 &>文件 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中命令 &>>文件 以追加的方式,把正确输出和错误输出都保存到同一个文件当中命令 >>文件1 2>>文件2 把正确的输出追加到文件1中,把错误的输出追加到文件2中<3>输入重定向[root@loclhost ~]# wc [选项][文件名] (统计命令)选项: -c统计字节数 -w统计单词数 -l统计行数命令<文件把文件作为命令的输 文件<<标识符 标识符吧标识符之间内容作为命令的输入 <4>管道符 多命令执行符: ; 命令1;命令2 多个命令顺序执行,命令之间没有任何逻辑联系 && 命令1&&命令2 逻辑与 当命令1正确执行,则命令2才会执行,当命令1执行不正确,则命令2不会执行 || 命令1||命令2 逻辑或 当命令1执行不正确,则命令2才会执行,当命令1正确执行,则命令2不会执行 管道符: | 命令1 | 命令2 命令1的结果作为命令2的操作对象(此时命令2不用再写操作对象) <5>通配符 ? 匹配一个任意字符 * 匹配0个或任意多个任意字符,即可以匹配任何内容 [] 匹配中括号中任意一个字符 ^ 逻辑非,即去除所写的字符 <6>Bash中其它特殊符号 '' 若将变量放在单引号中,任何字符没有特殊意义 "" 双引号中只有“$”,“`(反引号)”,“\”有“调用变量的值”、“引用命令”和“转义符”的特殊含义,其他符号没有特殊意义 ``(反引号) aa=`ls` 表示先执行ls命令,然后将值赋给aa变量。也可用$(___)代替,两种表示相同。
Linux达人养成计划(慕课网笔记)
最新推荐文章于 2022-09-09 11:18:20 发布