(程序猿养成计划)Linux手记(I)
跳了好多内容呢,所以手记内容并不全,真是一段艰辛的历程,然而还没有结束。
课程来源:http://www.imooc.com/learn/175
Linux基本操作
查询目录中内容: ls
ls [选项] [文件或目录]
选项:
-a 显示所有文件,包括隐藏文件
-l 显示详细信息
-d 查看目录属性
-h 人性化显示文件大小
-i 显示inode
举例:ls -lh
建立目录(make directories):mkdir
mkdir -p [目录名]
-p 递归创建
切换所在目录(change directory):cd
简化操作
cd 进入当前用户的家目录
cd ~ 进入当前用户的家目录
cd - 进入上次所在目录
cd .. 进入上一级目录
cd cd. 进入当前目录
查询所在目录位置(print working directory):pwd
pwd
删除空目录(remove empty directors): rmdir
rmdir[目录名]
复制命令(copy):cp
cp [选项] [原文件或目录] [目标目录]
-r 复制目录
-p 连带文件属性复制
-d 若原文件是链接文件,则复制链接属性
-a 相当于 -pdr
剪切或改名命令(move): mv
mv [原文件或目录] [目标目录]
删除目录或文件(remove):rm
rm -rf [文件或目录]
-r 删除目录
-f 强制
链接命令(link): ln
ln -s [原文件] [目标文件]
-s 创建软链接
#文件搜索命令locate
#命令搜索命令whereis与which
#文件搜索命令find
#字符串搜索命令grep
locate命令格式
locate 文件名 #在后台数据库中按文件名搜索,搜索速度更快
/var/lib/mlocate #locate命令所搜索的后台数据库
updatedb #更新数据库
搜索命令的命令whereis
whereis 命令名
-b 只查找可执行文件
-m 只查找帮助文件
find命令
find [搜索范围] [搜索命令]
#find / -name install.log #按文件名查找
#find /root -iname install.log #不区分大小写
#find /root -user root #按照所有者搜索
#find /root -nouser #查找没有所有者的文件
#find /var/log/ -mtime +10 #查找10天前修改的文件
-10 10天内修改的文件
10 10天当天修改的文件
+10 10天前修改的文件
atime 文件访问时间
ctime 改变文件属性
mtime 修改文件内容
#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 命令 {} \; 对搜索结果执行操作
搜搜字符串命令grep
grep [选项] 字符集 文件名
-i 忽略大小写
-v 排除指定字符集
帮助命令man
man 命令 #获取指定命令的帮助
man ls #查看ls的帮助
man -f 命令 #相当于 whatis 命令
举例:man -5 password
按q键退出man命令
选项帮助 --help
举例:ls --help
shell内部命令帮助
help shell内部命令
举例:whereis cd #确定是否是shell内部命令
举例:help cd #获取内部命令帮助
详细命令帮助info
info 命令
-回车:进入子帮助页面(带有*号标记)
-u: 进入上层页面
-n: 进入下一个帮助小节
-p: 进入上一个帮助小节
-q: 退出
.zip格式压缩
zip 压缩文件名 原文件 #压缩文件
zip -r 压缩文件名 源目录 #压缩目录
.zip格式解压缩
unzip 压缩文件 #解压缩文件
.gz格式压缩
gzip 源文件 #压缩为.gz格式的压缩文件,源文件会消失
gzip -c 源文件 > 压缩文件 #压缩为.gz格式,源文件保留
例如:gzip -c cangls > cangls.gz
gzip -r 目录 #压缩目录下所有的子文件,但是不能压缩目录
gzip -d 压缩文件 #解压缩文件
gunzip 压缩文件 #解压缩文件
.bz2格式压缩
bzip2 源文件 #压缩文件.bz2格式,不保留源文件
bzip2 -k 源文件 #压缩之后保留源文件
注意:bzip2命令不能压缩目录
打包命令tar
tar -cvf 打包文件名 源文件
-c 打包
-v 显示过程
-f 指定打包后的文件名
例如 tar -cvf longzls.tar longzls
.tar.gz压缩格式
tar -zcvf 压缩包名.tar.gz 源文件
-z 压缩为.tar.gz格式
tar -zxvf 压缩包名.tar.gz
-x 解压缩.tar.gz格式
.tar .bz2压缩格式
tar -jcvf 压缩包名.tar.bz2 源文件
-z 压缩为.tar.bz2格式
tar -jxvf 压缩包名.tar.bz2
-x 解压缩.tar.bz2格式
关机 shutdown命令
[[email protected] ~]# shutdown [选项]时间
-c 取消前一个关机命令
-h 关机
-r 重启
其他关机命令
[[email protected] ~]# halt
[[email protected] ~]# poweroff
[[email protected] ~]# init 0
其他重启命令
[[email protected] ~]# reboot
[[email protected] ~]# init 6
系统运行级别
0 关机
1 单用户
2 不完全多用户,不含NFS服务
3 完全多用户
4 未分配
5 图形界面
6 重启
[[email protected] ~]# cat/etc/inittab
#修改系统默认运行级别
id:3:initdafault:
[[email protected] ~]# runlevel
#查询系统运行级别
退出登录命令
[[email protected] ~]# logout
1.查询与自动挂载
[[email protected] ~]# mount
#查询系统中已经挂载的设备
[[email protected] ~]# mount -a
#依据配置文件/etc/fstab的内容,自动挂载
2.挂载命令格式
[[email protected] ~]# mount [-t 文件系统] [-o 特殊选项] 设备 文件名 挂载点
-t 文件系统:指定挂载类型,可以ext3、ext4、iso9660等
-o 特殊选项:可以指定挂载的额外选项
3.挂载光盘
[[email protected] ~]# mkdir /mnt/cdrom
#建立挂载点
[[email protected] ~]# mount -t iso9660 /dev/cdrom/mnt/cdrom
#挂载光盘
[[email protected] ~]# mont /dev/sr0/mnt/cdrom
4.卸载命令
[[email protected] ~]# umount 设备文件名或挂载点
[[email protected] ~]# umount /mnt/cdrom
5.挂载U盘
[[email protected] ~]# fdisk -l
#查看U盘设备文件名
[[email protected] ~]# mount -t vfat /dev/sdb1/mnt/usb/
注意:Linux默认不支持NTFS文件系统
查看登录用户信息
w 用户名
命令输出:登录的用户名
USER: 登录终端
TTY: 从哪个IP地址登录
FROM: 登录时间
[email protected]: 用户闲置时间
IDLE: 用户限制时间
JCPU: 连接所有进程占用时间
PCPU: 当前进程占用时间
WHAT: 当前正在运行的命令
Linux中的通配符
* 匹配任意内容
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符
文件类型显示
第一位:-文件 d目录 l软链接
后三位:u所有者
后三位:g所属组
后三位:o其他人
共十位:r读 w写 x执行
常用目录作用
/ 根目录
/bin 命令保存目录(普通用户就可以读取的命令)
/boot 启动目录,启动相关文件
/dev设备文件保存目录
/etc 配置文件保存目录
/home 普通用户的家目录
/lib 系统库保存目录
/mnt 系统挂载目录
/media 挂载目录
Shall基础
1.echo输出命令
echo [选项] [输出命令]
-e 支持反斜杠控制的字符转换
[[email protected] ~]# echo -e "hell\bo"
#删除左侧字符
[[email protected] ~]# echo -e "h\te\tl\nl\to"
#制表符与换行符
[[email protected] ~]# echo -e \ "x68\t\x65\t\x6c\n\x6c\t\x6f\t"
#按照十六进制ASCII码也同样可以输出
[[email protected] ~]# echo -e "\e[1;31m 嫁人就要嫁凤姐 \e[0m"
#输出颜色
2.第一个脚本
[[email protected] sh]# vi hello.sh
#!/bin/bash
#The first program
echo -e "\e[1;34m 天上掉下个林妹妹! \e[0m"
3.脚本执行
赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh
通过Bash调用执行脚本
bash hello.sh
1.查看与设定别名
alias #查看系统中所有的命令别名
alias 别名='原命令' #设定命令别名
别名永久生效与删除别名
vi ~/.bashrec #写入环境变量配置文件
unalias 别名 #删除别名
命令生效顺序
...
常用快捷键
ctrl + c 强制终止当前命令
ctrl + l 清屏
ctrl + a 光标移动到命令行首
ctrl + e 光标移动到命令行尾
ctrl + u 从光标所在位置删除到行首
ctrl + z 把命令放入后台
ctrl + r 在历史命令中搜索
2.历史命令
history [历史命令] [历史命令保存文件]
-c: 清空历史命令
-w: 把缓存中的命令写入历史命令保存文件~/.bash_history
历史命令默认保存1000条,可以在环境变量配置文件/etc/profile中进行修改
历史命令的调用
使用上下箭头调用以前的历史命令
使用"!n"重复执行第n条命令
使用"!!"重复执行上一条命令
使用"!字串"重复执行最后一条以该字串开头的命令
命令与文件补全
在Bash中,Tab自动补全
...
输入命令后 + 两次Tab 路径补全、命令补全
...
ll == ls -l
1.标准输入输出
设备 设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/sdtout 1 标准输入
显示器 /dev/sdterr 2 标准错误输出
2.输出重定向
...
3.输入重定向
[[email protected] ~]# wc [选项] [文件名]
-c 统计字节数
-w 统计单词书
-l 统计行数
1.度命令顺序执行
...
2.管道符
[[email protected] ~]# 命令1 | 命令2
#命令1的正确输出作为命令2的操作对象
1.通配符
...
2.bash中其他特殊符号
虽然用了引用格式,但内容并不是真的引用,只是为了排版舒服一点。
课程的主讲老师是@Tony老师,Tony老师不仅是一位Linux大神,还是一个灵魂画手哦!上图:
最后由衷感谢这位坏坏的老师!
PS:参考手册:Linux常用命令大全.chm