Linux学习笔记——慕课 Linux达人养成计划 I

我又来了。最近在看Linux呢,教材用的是大家推荐的《鸟哥的Linux私房菜 基础学习篇》,整体看过了一遍,但之前因为在封闭研发加班较多+条件有限,很多操作没有动手去做,最近日子轻松点,正在做书上的例题,慕课的课程属于补充。个人学习东西的时候喜欢看多个版本的教程,互为补充,以下为慕课学习中的笔记:

服务器越稳定越好。

手机下载个xxxSSHd软件,试一试

Linux严格区分大小写;Linux中所有内容以文件形式保存,包括硬件;Linux不靠扩展名区分文件类型(将文件名写为“*.xxx”是为了方便应用和管理),靠文件权限区分;Windows下的程序不能直接在Linux中安装和运行(Linux中,Windows下的程序只能安在Windows模拟器下)

VMware用8.0就好,不需要最新;VMware Install Cleaner帮助卸载VMware  虚拟机上的时间通常不太准(真实机断电后,时间还走,是因为主板上的电池)

主分区+扩展分区最多有4个,扩展分区最多1个;扩展分区不能写入数据,只能包含逻辑分区;格式化的目的不是为了清空数据,而是为了写入文件系统

硬件设备文件名:IDE硬盘/dev/hd[a-d];SCSI/SATA/USB硬盘/dev/sd[a-p];……

Linux中格式化后,要给每个分区一个设备文件名,才能使用,如/dev/sda1 第一个硬盘的第一个分区;逻辑分区的分区号从5开始

挂载(像windows中分配盘符,但这里的盘符不是A、B、C、D,而是目录),/(根分区,必须有),swap分区(交换分区,作虚拟内存);推荐将/boot单独做一个分区(启动分区,最好和根分区分开),此时,从/boot是/的子目录,但是在硬盘上,它有自己独立的空间

Linux的管理员 root

密码原则:复杂性(八位字符以上,大小写、数字、字符混合,不能是英文单词,不能喝用户个人信息相关);易记忆性;时效性(密码每隔一段时间应更换一次)

分区、挂载的规划与服务器的工作有关

安装日志:/root/install.log /root/install.log.syslog /root/anaconda-ks.cfg

Linux纯字符界面是不支持中文的,除非安装中文插件

远程登录Linux

 

命令提示符:[用户名@主机名当前目录]$(管理员为#)

命令格式:命令 [选项]  [参数]  注意:个别命令不遵循此格式

                            选项分为简化选项和完整选项(-a 等于 --all)

Linux文件类型(d目录/-普通文件/l符号链接/b/s/c/p),文件有所有者、所属组和其他人

用户和用户组—>方便权限(r读/w写/x执行)的规划

mkdir–p [目录名]  建立目录,-p递归创建  新建的目录连接数是2(..和.)

cd [目录]  切换目录

.. 上级目录;. 当前目录;- 上次目录;~ 家目录(root:/root,普通用户:/home/用户名)

pwd 显示当前工作位置

rmdir[目录名]  删除空目录

rm -rf[目录或文件]  -r删除目录(一般都加上)  -f强制删除

cp [选项] [源文件] [目标文件(如为/../../之类形式,会沿用原文件名)] -r复制目录 -p连带文件属性复制 -d若源文件为链接文件,则复制链接属性 -a相当于-pdr

ll 是ls -l的别名(用alias可以查看)

ls -I可以查看inode编号

mv [源文件] [目标文件]  剪切或改名(不用加-r)

ln -s[源文件] [目标文件]  链接命令  -s创建软链接  硬链接,拥有相同的i节点,相同的存储空间,相当于建立一个文件的新的进入点,硬链接不能跨分区,不能针对目录;软链接,类似windows快捷方式,软链接拥有自己的i节点和Block块,但只是保存了源文件的文件名和i节点号,文件类型为l

 

Linux中常用目录的作用(Filesystem Hierarchy Standard (FHS)标准)

/ 根目录

/boot

/dev

/bin /sbin 保存系统命令(/sbin保存只有root可以执行的命令)

/etc 配置文件

/lib 函数库

/usr

/mnt linux的挂载都是习惯性的挂载到/mnt

/tmp 临时文件

/proc 放置的数据都是在内存当中

 

locate在后台数据库/var/lib/mlocate中搜索文件(但由于数据库不是实时更新的,所以新建的文件可能搜索不到,可以updatedb更新数据库),按/etc/updated.conf配置文件的配置搜索

whereis与which也遵循/etc/updated.conf的配置规则。Whereis只搜索系统命令(-b只查可执行文件所在位置;-m只查帮助文件);which搜索命令和别名;linux的shell自带命令(cd),用whereis或which找不到

PATH环境变量(注意PATH的字母都要大写),定义系统搜索命令的路径

echo$PATH  可以查看PATH的值;echo $变量名,查看变量的值

find[搜索范围] [搜索条件] 在系统中搜索符合条件的文件名,应用中应尽量避免大范围搜索;find [搜索范围] 文件名  如果需要模糊查询,要使用通配符(使用通配符后,要用引号括起字符串;*匹配任意内容;?匹配任意一个字符;[]匹配任意一个中括号内的字符);-iname  不区分大小写;find [搜索范围] -user 所有者  按照所有者搜索;find [搜索范围] –nouser  查找没有所有者的文件;find [搜索范围] -mtime+10  查找10天前修改的文件,-1010天内,10 10天当天,atime 文件访问时间,ctime 改变文件属性,mtime 修改文件内容;find [搜索范围] -size 25k  查找文件大小是25k的文件,-25k小于25k,+25k大于25k,兆是M,不写单位的话默认为block;find [搜索范围] -inum i节点号,按i节点搜索文件;-a and逻辑与,-o or逻辑或,可以连接两个搜索条件;find [搜索范围] [搜索条件] -exec ls -lh {} \;  可以将find命令查找结果交给第二条命令(ls -lh)处理,结尾加{} \; 为固定格式

注意:linux中,单引号与双引号的最大不同在于双引号仍然可以保有变量的内容,但单引号内仅能是一般字符 ,而不会有特殊符号

grep[选项] 字符串文件名  在文件中搜索符合条件的字符串;-I 忽略大小写;-v 排除指定字符串;find搜索用通配符完全匹配,grep用的是正则表达式包含匹配

 

man 命令名  获取指定命令的帮助(q退出帮助);man -f 命令  相当于whatis命令,可以查看帮助文件等级;man -等级命令名  仅获取指定等级的帮助;man-k xxx  相当于apropos命令,:根据关键字搜索联机帮助

命令名 –help  获取命令选项的帮助

help命令  获取shell内部命令的帮助(whereis 命令名  判断是否为shell内部命令)

info命令  详细命令帮助(回车,进入子帮助页面;u,返回上层;n,进入下一小节,p进入上一小节;q,退出)

 

常用压缩格式:.zip  .gz  .bz2 .tar.gz  .tar.bz2

压缩文件不一定比源文件小(压缩时要存储压缩格式,如果袁文件很小,可能压缩后反而变大了)

zip 压缩文件名源文件  .zip格式压缩;Windows中的zip与linux中的是相通的

zip –r 压缩文件名 源目录  压缩目录

unzip压缩文件  .zip格式解压缩

gzip源文件 .gz格式压缩,压缩后源文件小时

gzip -c 源文件 > 压缩文件  通过数据重定向将压缩结果存入新文件,源文件保留

gzip -r 目录  目录下所有的子文件分别压缩,但是不能压缩目录

gzip–d 压缩文件  或  gunzip 压缩文件  .gz格式解压缩

bzip2源文件  压缩为.bz2格式,不保留源文件;bzip不支持压缩目录

bzip2-k 源文件  保留源文件

bzip2-d 压缩文件  或  bunzip2压缩文件  .bz2格式解压缩,-k保留压缩文件

.tar 打包文件

tar -cvf打包文件名 源文件  打包命令;-c打包;-v显示过程;-f指定打包后的文件名

tar -xvf打包文件名  解打包

tar -zcvf压缩包名.tar.gz 源文件  打包并压缩

tar -zxvf压缩包名.tar.gz

tar -jcvf压缩包名.tar.bz2 源文件  打包并压缩

tar -jxvf压缩包名.tar.bz2

 

shutdown[选项] 时间  -c取消前一个关机命令;-h关机;-r重启;时间,now表示马上;注意:服务器不要远程关机(都说了是远程了,关了就开不了了啊)

halt、 poweroff 、init0 也可以关机,但别用

reboot  重启命令,相对安全

init6  重启,但别用

系统运行级别:0关机;1单用户(相当于windows的安全模式);2不完全多用户,不含NFS服务;3完全多用户;4未分配;5图形界面(X也指图形界面);6重启

logout  退出登录

 

mount  查询系统中已挂载设备

mount-a  依据配置文件/etc/fstab,自动挂载

mount[-t 文件系统] [-o 特殊选项] 设备文件名 挂载点 

umount设备文件名或挂载点  卸载命令(卸载后才能正常取出u盘或光盘),注意执行该命令时,当前目录不能是要卸载设备的挂载点哦

fdisk-l 可以查看U盘设备文件名(光盘的设备文件名是系统自带的)

Linux默认是不支持NTFS文件系统的

 

w [用户名] 查看登录用户信息(包括用户占用系统资源)

who[用户名]  查看登录用户信息(仅用户名、终端、登录时间)

last  查询当前登录和过去登录的用户信息(默认是读取/var/log/wtmp文件,这个文件不能直接用vim查看,会乱码)

lastlog  查询所有用户的最后一次登录时间(默认是读取/var/log/lastlog文件)

 

shell的分类:Bourne Shell(sh、ksh、bash、psh、zsh);C Shell(csh、tcsh)

echo$SHELL  查看当前shell

echo[选项] [输出内容] -e支持反斜杠控制的字符转换

shell脚本中,脚本开头#!/bin/bash不可省略,脚本中以#开头写注释

shell脚本的名称习惯为:xxx.sh

脚本执行:可以赋予执行权限,通过脚本路径直接运行(就像ls等命令),或用“bash 脚本”来执行

alias  列出系统中所有别名

alias别名=’原命名’ 给命令起别名

~/.bashrc环境变量配置文件(写入其中的别名可以永久生效)

unalias别名  删除别名

命令生效顺序:1、执行用绝对路径或相对路径执行的命令;2、执行别名;3、执行Bash的内部命令;4、执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令

快捷键:ctrl+c 强制停止;ctrl+l 清屏(clear命令也可以);ctrl+a 光标移动到命令行首;ctrl+e光标移动到命令行尾;ctrl+u从光标所在位置删除到行首;ctrl+z 把命令放入后台;ctrl+r在历史命令中搜索

编辑文件时,推荐使用vim,而不是vi,vim支持颜色

 

history[选项] [历史命令保存文件] 历史命令,-c:清空历史;-w:把缓存中的历史命令写入保存文件

历史命令默认保存1000条,如果不够的话,可以在环境变量配置文件/etc/profile中HISTSIZE=xxx处进行修改

上下箭头调用以前命令;!n 重复执行第n条历史命令;!! 重复执行上一条命令;!字串重复执行最后一条以该字串开头的命令

 

如果记不清命令/文件全称,可以命令或文件的开头[Tab][Tab] 自动补全命令或文件名

 

输出重定向和输入重定向

标准输入:键盘 /dev/stdin 文件描述符0(文件描述符用来指代设备)

标准输出:显示器 /dev/sdtour 文件描述符1

标准错误输出:显示器 /dev/sdterr 文件描述符2

输出重定向:

命令 > 文件 :以覆盖的方式把命令的正确输出输出到指定的文件或设备当中;

命令 >> 文件 :以追加的方式把命令的正确输出输出到指定的文件或设备当中;

         命令 2> 文件  或 命令 2>> 文件:把命令的错误输出输出到指定的文件或设备当中(2 与 > 间不能有空格)

         命令 > 文件2>&1  或  命令 >> 文件 2>&1 命令 &> 文件命令 &>> 文件:把命令正确和错误的输出都输出到同一个文件当中(可以这样理解:用2指代的标准错误输出的信息先重定向到用1指代的标准输出再重定向到指定文件)

         命令 >> 文件a  2>> 文件b :把命令的正确的输出追加到文件a,错误的输出追加到文件b

 

/dev/null 系统的特殊设备文件,一个黑洞,放进去就没有了

wc [选项] [文件名] -c 统计字节数;-w 统计单词数;-l 统计行数

 

输入重定向(了解就好,不常见):

         命令<文件 把文件作为命令的输入(比如wc < 文件名)

         命令<<标识符 然后从键盘上输入东西啦,标识符之间的内容将作为命令的输入

 

多命令顺序执行:

; 命令1;命令2 多个命令顺序执行,不论是否有命令报错,命令之间没有任何逻辑联系

         &&命令1&&命令2 逻辑与,命令1正确时,命令2才会执行

         ||命令1||命令2 逻辑或,命令1执行不正确时,命令2才会执行

例:&& 和 || 可以帮助根据上条命令是否正确决定下一步操作(如: lsgdfsas && echo yes || echo no)

 

管道符:

         命令1 | 命令2 | 命令3…… 将命令1 的正确输出作为 命令2 的操作内容

命令2、3、… 处可以放的命令:grep 文本搜索;wc ;……

netstat 查看所有的网络链接

 

通配符:*  匹配任意内容;?  匹配任意一个字符;[]  匹配任意一个中括号内的字符;[-]  -代表一个范围,如[0-9]代表匹配一个数字;[^]  匹配不是中括号内的一个字符,如[^0-9]代表匹配一个不是数字的字符

其他特殊符号:

’’和””  单引号中所有特殊符号都没有特殊含义,在双引号中$、`、\ 仍有特殊含义“调用变量的值”、“引用命令”、“转义符”

         ``和$()  引用系统命令,Bash会先执行它(为避免错误,少用反引号 `` )

         #  shell脚本中,注释以此开头

         $  调用和得到变量的值

         \  转义符,其后的特殊字符将失去特殊含义

正则表达式

终于听完了,happy,这部分命令基本都已执行过,最近期末考+毕设略忙,之后的内容可能要暂缓一下了

你可能感兴趣的:(Linux)