常用命令记录
1.统计文件个数
ls -l | wc -l
ls -l | grep "^d" | wc -l
ls -l | grep "^-" | wc -l
2.文件目录大小
du -sh
du -h
du -lh --max-depth=1
3.挂载
df -Th
4.终端重定向到文件
ls -l >> log.txt 2>&1
5.后台运行命令,终端关闭也不影响。显示输出到文件
nohup python test.py >> log.txt 2>&1 &
分区挂载
1、主分区,扩展分区
扩展分区最多有1个,主分区加扩展分区最多有4个
扩展分区的作用是在其中包含更多的逻辑分区
逻辑分区只能从5开始,1234只能给主分区或扩展分区使用
2、格式化
格式化就是写入文件系统
3、linux分区
linux必须分区包括根分区/和swap分区(交换分区,内存2倍,真实内存够大就相等,相当于虚拟内存),推荐分区有/boot(启动分区,200MB)
文件处理命令
//ls命令
-l 显示详细信息
-a 显示所有文件,包括隐藏文件
-d 显示目录属性
-h 人性化显示文件大小
-i 显示inode
ll 等于ls -l
//第一个-表示文件类型,-表示普通文件,d表示目录,l表示链接文件
//后面9个三个一组,u所有者,g所属组,o其他人
//r可读,w可写,x可执行
-rw-r--r--
//递归创建目录
mkdir -p
//cd用法
cd || cd ~ 进入当前用户的家目录
cd - 进入上次目录
cd .. 进入上一级目录
cd . 进入当前目录
Tab+Tab 显示当前目录所有文件
//rm删除文件
rm -rf 强制删除所有文件和目录
rmdir 删除空目录,用得少
//cp复制文件
-r 复制目录
-p 连带文件属性复制
-d 复制链接属性
-a 相当于pdr
cp 1 2 普通复制,如果2是目录,则按原名复制;如果2是文件,则按新名复制
cp -a 1 2 保持源文件属性复制,包括时间,链接等等
//根目录下各目录作用
/bin || /usr/bin 保存系统命令
/sbin || /usr/sbin 保存系统命令(管理员可使用)
/boot 启动目录
/dev 保存特殊文件,硬件文件
/etc 保存配置文件
/home 保存各用户文件
/root 管理员的目录
/lib 函数库
/media、/mnt、/misc 外部设备挂载目录
/proc、/sys 内存挂载,别乱动
/usr 系统软件资源目录
/var 系统相关文档目录
/tmp 临时目录
//链接命令
ln -s 源文件 目标文件 -s表示创建软链接
**硬链接**(相当于复制了一模一样的文件)
1、拥有相同的i节点和存储block块,可以看做是同一个文件
2、可通过i节点识别
3、不能跨分区
4、不能针对目录使用
5、源文件删了不影响硬链接使用
**软链接**(相当于创建了一个快捷方式)
1、和windows快捷方式一模一样
2、拥有自己的i节点和block块,但是数据块中只保存源文件的i节点和文件名,没有实际文件数据
3、删除源文件,软链接不能使用
4、创建软链接源文件必须写绝对路径
文件搜索命令
//locate命令,这个是在后台数据库中搜索,新创建的文件要更新数据库后才能搜索到(/etc/updatedb.conf中记录了哪些文件系统/文件类型/路径不搜索)
locate 文件名
//whereis 搜索命令所在路径以及帮助文档的位置
//which 搜索命令所在路径以及别名
//find命令
find 路径 -name
通配符:*(任意多个内容),?(任意一个),[](中括号内任意一个)
-iname 不区分大小写
-user 按照所有者搜索
-nouser 查找没有所有者的文件
find 路径 -mtime +10
-10 10天内修改的文件
10 10天当天修改的文件
+10 10天前修改的文件
-mtime 修改文件内容
-ctime 改变文件属性
-atime 文件访问时间
-size 文件大小(k,M)
-inum 按照i节点搜索
-a 逻辑与
-o 逻辑或
-exec 命令 {} \; 对find结果执行命令
//grep命令,搜索文件中包含字符串的行
-i 不区分大小写
-v 排除某字符串
find:在系统中搜索符合条件的文件名(通配符完全匹配)
grep:在文件中搜索符合条件的字符串(正则表达式包含 匹配)
帮助命令
1、man
man 命令
man -f 命令 查看命令拥有哪个级别的帮助
2、--help,help
ls --help
help shell内部命令
3、info
info ls
压缩命令
//.zip文件
zip 压缩文件 源文件
zip -r 压缩文件 目录
unzip 压缩文件 //解压
//.gz文件
gzip 源文件(源文件会消失)
gzip -c 源文件 > 压缩文件
gzip -r 目录 //压缩目录下所有子文件,不能压缩目录
gzip -d 压缩文件 //解压
gunzip 压缩文件 //解压
//.bz2文件
bzip2 源文件(源文件会消失)
bzip2 -k 源文件(保留源文件)
bzip2不能压缩目录
bzip2 -d 压缩文件 //解压
bunzip2 压缩文件 //解压
//.tar.gz文件
压缩:tar -zcvf 压缩包名.tar.gz 源文件
解压:tar -zxvf 压缩包名.tar.gz
//.tar.bz2文件
压缩:tar -jcvf 压缩包名.tar.bz2 源文件
解压:tar -jxvf 压缩包名.tar.bz2
关机与重启命令
shutdown -r 时间 //指定时间关机
shutdown -h //关机
shutdown -c //取消上一次的关机指定
//关机,用的少
halt
poweroff
init 0
//重启
reboot //常用重启命令
init 6 //共7个级别
//退出登录
logout
挂载命令
1、查询与自动挂载
mount //查询系统中已经挂载的设备
mount -a //根据配置文件/etc/fastab的内容自动挂载
2、挂载命令格式
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
-o选项用的少
-t通常可以不写,除非需要指定
3、挂载光盘
mkdir /mnt/cdrom/
mount -t iso9660 /dev/sr0 /mnt/cdrom/
4、卸载命令
umount 设备文件名或挂载点
5、挂载U盘
fdisk -l //查看U盘设备文件名
mount -t vfat /dev/sdb1 /mnt/usb/
(有图形界面则不需要挂载,自动识别)
用户登录查看命令
1、查看用户登录信息
w
who
2、查看当前登录和过去登录的用户信息
last
3、查看所有用户最后一次登录的时间
lastlog
Shell概述
Shell是linux的命令解释器,分类有Bourne Shell和C shell,目前linux使用最多的是Bash。
1、echo输出命令
echo "字符串"
-e //反斜杠控制特殊符号(\n \t \b)
"\e[1;34m 字符串 \e[0m" //输出颜色
2、基本脚本
#!/bin/bash
#第一个脚本
echo "hello world!"
3、执行方式
chmod 755 hello.sh
./hello.sh
或
bash hello.sh(不需要赋权限)
Bash基本功能
1、命令别名
alias #查看系统中所有的命令别名
alias 别名='原命令' #设定命令别名
如果要别名永久生效,就要修改环境变量配置文件
然后source ./bashrc
unalias 别名 #临时删除别名,永久删除也需要改环境变量配置文件
别名的优先级高于Bash内部命令和$PATH路径下的命令
2、快捷键
ctrl+c:强制终止当前命令
ctrl+l:清屏
ctrl+a:光标移动到命令行首
ctrl+e:光标移动到命令行尾
ctrl+u:从光标所在位置删除到行首
ctrl+z:把命令放入后台
ctrl+r:在历史命令中搜索
3、历史命令
保存条数可以在/etc/profile中修改HISTSIZE
!! #重新执行上一条命令
!字符串 #重新执行上一条以字符串开头的命令
4、补全
Tab #按一次直接补全,按两次列出所有可能
5、输出重定向
命令 > 文件 # 以覆盖的方式,命令输出写入文件
命令 >> 文件 # 以追加的方式,命令输出写入文件
错误命令 2>文件 # 以覆盖的方式,命令错误输出写入文件(>左右没空格)
错误命令 2>>文件 # 以追加的方式,命令错误输出写入文件
正确错误命令输出同时写入:
命令 > 文件 2>&1
命令 >> 文件 2>&1
命令 &>文件
命令 &>>文件
命令 >> 文件1 2>>文件2 # 正确输出到文件1,错误输出到文件2
6、输入重定向(用的很少)
wc [选项] [文件名]
-c 统计字符数
-w 统计单词数
-l 统计行数
wc < 文件 #也可以不加<,统计文件的字符数、单词数、行数
7、管道符
1)多命令顺序执行
命令1;命令2 #多个命令顺序执行,1报错不影响2执行
命令1&&命令2 #逻辑与,只有命令1正确执行,命令2才执行
命令1||命令2 #逻辑或,只有命令1执行不正确,命令2才执行
2)管道符
命令1 | 命令2 #命令1的输出结果作为命令2的操作对象
ls /etc/ | more
# 首先查询etc目录下所有文件信息,再通过more命令分屏显示这些信息
netstat -an | grep "ESTABLISHED" | wc -l
# 首先通过netstat查询当前端口占用信息,然后在其结果中查找有"ESTABLISHED"的行数据,再统计这些数据的行数并输出
8、通配符
1)通配符
? #匹配一个任意字符
* #匹配任何内容
[] #匹配括号内任意一个字符
[-] #-代表一个范围
[^] #匹配不是中括号内的一个字符
2)特殊符号
' ' #单引号中所有特殊符号例如"$"和"`"都没有特殊含义
" " #双引号中"$"、"`"、"\"有特殊含义,表示“拥有变量的值”、“引用命令”和“转义符”
` ` #反引号括起来的内容是系统命令
$() #同反引号,推荐使用
# #注释
$ #调用变量的值
\ #转义符,跟在\之后的特殊符号将失去作用