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