Linux基础操作(一)
好烦,又要写摘要,主要是自己不会说些违心的话,又不愿意发恼骚,但还是记录一下自己目前的状态和心情吧。生活内容很丰富但实际很平淡,除了亲人带给我一些惊喜外,我嗅不到任何新鲜了。我不知道自己价值多大,被认可的价值有多大,但我不能发恼骚,毕竟我是一个有内涵的程序猿。于是我想,是我不够全面不够自信不够勇敢吧,改变不了环境就改变自己吧,万一有一天,红色的你出现在蓝色的沙滩上了呢。总有那一天。。。
一、分区
1、分区
1.1、主分区:最多4个(每个扇区512个字节,446个字节是记录信息,64个字节记录分区表示,每16个字节表示一个分区,最多表示4个分区,这是由硬盘结构所决定的。)
扩展分区:最多一个,主分区+扩展分区最多4个,不能写入数据,只能包含逻辑分区
逻辑分区:分区号必须从5开始,不能占主分区的号。
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830195202280-2021673132.png)
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830195300593-1033724061.png)
1.2、表中的数据块:分区分成等大小的数据块,大小可以设置(默认4kb)。
1.3、表中的分区列表:记录文件的ID号、文件存储位置、修改时间、权限等信息。
2、Linux中一切皆文件
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830195318733-721919001.png)
3、挂载点(相当于windows分配盘符)
3.1、linux中用目录作为盘符(部分目录必须和根目录在同一个分区系统才能正常使用)
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830195347124-727649864.png)
为了方便管理,将/boot和/home分区单独构建分区进行表示。
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830195410968-1432263818.png)
二、Linux安装
1、开机启动按F2,到Boot列表项将光盘驱动调整到第一位启动,安装完成后再调整为硬盘第一位启动。
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830195433905-408577545.png)
2、分区
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830195444905-1747203549.png)
三、Linux命令
1、权限表示
-rw-r--r--
第一位(-(文件)、d(目录)、l(软链接文件))
后九位每三位代表着(所有者、所属组、其他人)权限。r读、w写、x执行
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830195506577-951932748.png)
2、目录处理命令
mkdir -p 递归创建
mkdir -m770 创建时设置了权限
touch 创建文件
cd -回到上次目录
rm -rf(-r删目录、-f强制)
cp 目标文件 目的地 新文件名称(复制目录在cp后加-r)
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830195529702-1189626435.png)
mv同cp,没有-r
3、文件处理命令
根目录下的bin和sbin,usr目录下的bin和sbin都是用来保存系统命令的。
bin任何权限的都可以用,sbin只有root用户才能使用。
/boot目录是启动目录
/dev硬件文件
/etc系统默认配置文件
/home普通用户目录
/root超级用户目录
/lib函数库
/media、/mnt、/misc作为外接存储设备的盘符
/proc、/sys保存的是内存的过载点
/tmp临时目录
/usr系统资源保存目录
/usr/bin/系统命令(普通用户)
/usr/sbin/系统命令(超级用户)
/var系统相关文档内容
/ 根目录
├── bin 存放用户二进制文件
├── boot 存放内核引导配置文件
├── dev 存放设备文件
├── etc 存放系统配置文件
├── home 用户主目录
├── lib 动态共享库
├── lost+found 文件系统恢复时的恢复文件
├── media 可卸载存储介质挂载点
├── mnt 文件系统临时挂载点
├── opt 附加的应用程序包
├── proc 系统内存的映射目录,提供内核与进程信息
├── root root 用户主目录
├── sbin 存放系统二进制文件
├── srv 存放服务相关数据
├── sys sys 虚拟文件系统挂载点
├── tmp 存放临时文件
├── usr 存放用户应用程序
└── var 存放邮件、系统日志等变化文件
4、链接命令ln
ln -s 原文件 目标文件 硬链接
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830195547921-5922923.png)
软链接
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830195611108-301926447.png)
5、搜索功能
文件名搜索命令locate
locate在/var/lib/mlocate后台数据库中进行搜索,updatedb来更新数据库即可
whereis ls命令的所在位置包括帮助文档-b只找可执行文件-m只找帮助文件
whoami当前用户名称
whatis ls
which ls可以看到别名
echo $PATH 定义的是系统手术室命令的路径
find 搜索范围 搜索添加 find / -name install.log 搜索符合条件的文件
通配符 *任意内容 ?任意一个字符 []任意一个中括号内的字符
find / -name "*"
find /root -iname install.log不区分大小写
find /root -user root所有者为root的文件
find /root -nouser没有所有者的文件(垃圾文件1.除了内核产生的在sys、proc中的文件2.外来文件)
find /var/log (atime文件访问时间ctime改变文件属性mtime修改文件内容) (-10十天内10十天当天+10十天前)
find . -size (-25k 25k +25k 2M)
find . -inum 262422
-a and -o or
find /etc -size +20k -a -size -50k -exec 命令(ls -lh、rm -rf) {} \; 结果再次处理-exec {} \;
grep [选项] 字符串 文件名 -i 忽略大小写 -v 排除指定字符串 在文件中搜索指定的字符串
6、帮助命令
man -f passwd显示等级(相当于whereis,可查看配置、等级)
man 5 passwd
man -k passwd(相当于apropos找到与之相关命令的帮助)
命令 --help
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830195710343-1734635735.png)
cd无可执行路径,说明是系统自带shell内部命令
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830195720405-2028983688.png)
7、压缩与解压缩
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830195751390-1245666672.png)
.zip在Windows和Linux上均可用
zip -r longz.zip longz()
unzip longz.zip
gzip -c 源文件 > abc.gz 保留源文件,压缩文件到abc.gz
gzip -d 或者 gunzip 解压缩(目录加-r)
bzip2不能压缩目录
bzip2 源文件(不保留源文件 加-k保留)
bzip2 -d (解压缩,加-k保留压缩文件)
bunzip2 (解压缩,加-k保留压缩文件)
tar -cvf(-c打包-v显示过程-f指定打包后的文件名)
tar -cvf longz.tar longz gzip longz.tar(longz.tar.gz)
tar -cvf longz.tar longz bzip longz.tar(longz.tar.bz2)
tar -xvf(-x解打包) tar -xvf longz.tar
直接tar成.tar.gz格式 tar -zcvf(-z压缩为.tar.gz格式)
.tar.gz解压缩tar -zxvf 文件名 -C 指定位置
直接tar成.tar.bz2格式 tar -jcvf(-z压缩为.tar.bz2格式)
.tar.bz2解压缩tar -jxvf 文件名 -C 指定位置
tar -ztvf(t测试)查看压缩包内的内容
8、关机和重启
shutdown开关机会保存和加载上下文,更安全。
shutdown (-r重启-h关机-c取消上次关机重启命令) 05:30 &(&后台执行)
reboot重启
init(加下图数字)
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830195818593-1091533743.png)
runlevel查询系统运行在哪个级别(显示上个级别和当前级别)
/etc/.inittab中去设置开机后进入哪个级别(X一般代表图形界面)。
logout退出登录(重点)
9、挂载命令
mount(查看系统中已经挂载好的设备)
mount -a(依据/etc/fstab的配置内容,自动挂载)
mount [-t 文件系统(ext4光盘:iso9660)][-o 特殊选项(下图选项)] 设备文件名 挂载点
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830195924718-108973142.png)
shell脚本必须以#!/bin/bash开头
chmod 755 hello.sh 赋予执行权限
mount -o remount,noexec /home/ 重新挂载不可执行
挂载光盘
建立挂载点 mkdir /mnt/cdrom/
挂载光盘 mount -t iso9660 /dev/sr0 /mnt/cdrom/(/dev/cdrom -> sr0软链接)
mount /dev/sr0 /mnt/cdrom
卸载光盘
umount 设备文件名或者挂载点(你的目前路径不能在光盘目录下)
挂载U盘 (电脑本身sda1 第二个盘sdb1 第三个sdc1)
查看系统当中已经识别的硬盘 fdisk -l
挂载 mount -t vfat /dev/sdb1 /mnt/usb/
注意:Linux不支持ntfs文件系统的。(移动硬盘不允许直接挂载,通过ntfs-3g可以读入移动硬盘。linux一般都是通过网络输出。)
查看用户的登录信息 w who(当前用户) last(所有登录记录) lastlog(查看所有用户最后一次登录时间)
四、shell(C Shell Linux的标注shell为Bashecho)
echo $SHELL 查看当前系统使用哪种shell(/etc/shells)
echo [选项] [输出内容] (-e:支持反斜线控制的字符转换,如下图)
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830195951593-876582523.png)
echo -e "\e[1;31m 雅蓉好可爱 \e[0m"
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830200012937-71550988.png)
脚本运行:
赋予执行权限,直接运行 chmod 755 hello.sh
通过Bash调用执行脚本 bash hello.h
Bash的基本功能
命令的别名
查看别名 alias(查看所有别名)
设置别名 alias ls='ls --color=never'
(重启失效)为了永久生效,写入配置文件中vi ~/.bashrc 即时生效source ~/.bashrc
删除别名 unalias(临时删除)
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830200039812-1513433042.png)
echo $PATH 用冒号分割的一些环境变量目录
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830200102608-319370609.png)
五、历史命令
history [选项] [历史命令保存文件](-c清空历史命令-w把缓存中的历史命令写入历史命令保存文件~/.bash_history)
ls -alh 查看详细信息
历史数据默认保存1000条,可以在/etc/profile中进行修改
“!n”重复执行第n条历史命令 “!!”重复执行上条历史命令 “!字符串”重复执行最后一条以该字符串打头的命令
输出重定向
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830200124015-1444227570.png)
标准输出重定向:ifconfig > cs.log(>覆盖写入文件)(>>追加写入文件)
标准错误输出重定向:ifconfig 2> cs.log(2>覆盖写入文件)(2>>追加写入文件)
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830200142921-2049404027.png)
ls &> /dev/null (&正确错误全都替换写入)
cat xdy >> access.log 2>> error.log(正确错误分开保存)
输入重定向
wc [选项(-c统计字节数 -w统计单词数 -l统计行数)] [文件名]
wc +选项+ 后输入内容后ctrl+D,统计你输入了多少行、多少个单词、多少个字符
wc [<] access.log 统计文件中的内容
wc << ddy 统计输入直到ddy直接的字符内容
六、各种符
6.1、管道符
多命令顺序执行
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830200200812-1205973880.png)
管道符 命令1|命令2 命令1的正确输出作为命令2的操作对象
ls -l /etc | more 用more的形式来查看ls了的结果
netstat -an查看Linux中所有的网络链接
netstat -an | grep ”ESTABLISHED“ | wc -l 看看服务器上链接了多少人(非常常见)
6.2、通配符
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830200228827-1247606132.png)
ls dzp*
ls dzp?
ls dzp[0-9][0-9]
ls dzp[^0-9]*(^:逻辑非)
6.3、Bash中其他特殊符号
![](https://images2017.cnblogs.com/blog/892996/201708/892996-20170830200304155-486525507.png)
aa=123 echo $aa ($+变量名:得到变量值)
单引号中特殊符号没有特殊意义,全是字符串。双引号中“$”、“`”、“\”是例外,需要转义。
aa=`ls` (反引号先让ls执行,再把值赋给aa)<=> bb=$(date)(推荐的方式)
#注释
\转义符,相当于单引号把内容括起来,使特殊符号失去意义。
以上内容仅代表小白个人在程序猿学习工作道路上的知识总结,如有错误和理解不到位的地方,欢迎各位读者批评斧正,给出宝贵意见,小白将万分感谢。