一、linux目录结构
1 | / |
- bin: binaries (二进制文件),存放着最经常使用的命令
- boot: 存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。如内核、initrd,以及grub (BootLoader)
- dev:device (设备),下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
- etc: etcetera(等等)用来存放所有的系统管理所需要的配置文件和子目
- home: 用户的主目录,在 Linux 中,每个用户都有一个自己的劜,一般为账号名
- lib: library (库),存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
- lost+fund: 一般情况下为空,当系统非法关机后这里存放了一些文件。
- media: 系统自动设备一些设备,如U盘、光驱等,Linux 会把识别的设备挂在到这个目录。
- mnt: 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
- opt: optional (可选),这是给主机额外安装软件所摆放的目录。比如你安装一个 ORACLE 数据库则就可以放到这个目录下。默认是空的。
- proc: processes (进程),是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件。 - root: 该目录为系统管理员,也称作超级权限者的用户主目录。
- sbin: super user binaries (超级用户二进制),这里存放的是系统管理员使用的系统管理程序。
- selinux: 这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
- srv: 该目录存放一些服务启动之后需要提取的数据。
- sys: 这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
- tmp: temporary (临时),用来存放一些临时文件的。
- usr: unix shared resources (共享资源),这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
- usr/bin: 系统用户使用的应用程序。
- usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。
- usr/src: 内核源代码默认的放置目录。
- var: variable (变量),放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
- run: 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
二、linux命令
1、操作文件及目录
命令 | 参数 | 示例 | 说明 |
---|---|---|---|
cd | cd /home | 切换目录 | |
pwd | pwd | 显示当前工作目录目录 | |
touch | touch 1.txt | 创建空文件 | |
mkdir | mkdir testdir | 创建一个新目录 | |
-p | mkidr -p dir1/dir2/dir3/ | 创建多级目录,父目录不存在情况下先生成父目录 | |
cp | cp 1.txt | 复制文件或目录 | |
-r | cp -r dir1/ | 递归处理,将指定目录下的文件与子目录一并拷贝 | |
mv | mv dir1 dir2 | 移动文件或目录、文件或目录改名 | |
rm | rm 1.txt | 删除文件 | |
-r -f |
rm -rf dir1 | r同时删除该目录下的所有文件, f强制删除文件或目录 |
|
rmdir | rmdir dir1 | 删除空目录 | |
cat | cat 1.txt | 显示文本文件内容 | |
more | more 1.txt | 分页显示文本文件内容,可前后翻页,空格向后,b向前 | |
less | less 1.txt | 分页显示文本文件内容,可前后翻页,空格向后,b向前,支持底行模式(后面介绍) | |
head | head 1.txt | 查看文本开头部分,默认十行 | |
-[num] | head -20 1.txt | 查看文本开头部分指定行数 | |
tail | tail 1.txt | 查看文本结尾部分,默认十行 | |
-[num] | tail -20 1.txt | 查看文本结尾部分指定行数 | |
-f | tail -f 1.txt | 循环滚动读取文件并动态显示在屏幕上,根据文件属性追踪 | |
-F | tail -F 1.txt | 循环滚动读取文件并动态显示在屏幕上,文件文件名追踪 | |
wc | wc 1.txt | 统计文本的行数、字数、字符数 | |
-m | wc -m 1.txt | 字符数 | |
-w | wc -w 1.txt | 文本字数 | |
-l | wc -l 1.txt | 文本行数 | |
find | -name | find / -name 1.txt | 在文件系统中的指定目录下查找指定的文件 |
grep | grep aaa 1.txt | 在指定文件中查找包含指定内容的行,例:在1.txt中查找包含aaa的所有行 | |
ln | ln 1.txt 1_bak.txt | 建立链接文件,硬链接,非复制,不占用多余内存 | |
-s | ln -s 1.txt 1_bak.txt | 对源文件建立符号连接,而非硬连接 |
2、系统常用命令
命令 | 参数 | 示例 | 说明 |
---|---|---|---|
top | top | 显示当前系统中耗费资源最多的进程 | |
date | date | 显示系统当前时间 | |
ps | 较少单独使用,配参数根据需求,ps -ef 或者ps-aux | ||
-e /-A | ps -e | 显示所有进程,环境变量 | |
-f | ps -ef | 全格式显示 | |
-a | ps -a | 显示所有用户的所有进程(包括其它用户) | |
-u | ps -au | 按用户名和启动时间的顺序来显示进程 | |
-x | ps -aux | 显示无控制终端的进程 | |
kill | -9 | kill -9 pid | 强制杀死一个进程 |
df | df | 显示文件系统磁盘空间的使用情况 | |
-h | df -h | 以人类可读的方式显示,Kb,Mb,GB等 | |
du | 显示指定的目录及其子目录已使用的磁盘空间的总和 | ||
-s | du -s * | 进显示指定目录的总和,*当前目录下表示所有 | |
-h | du -sh * | 以人类可读的方式显示,Kb,Mb,GB等 | |
free | free | 显示当前内存和交换空间的使用情况 | |
ifconfig | ifconfig | 网卡网络配置,常用于查看当前IP地址 | |
ifconfig eth0 192.168.12.22 | 临时修改系统IP(重启后失效) | ||
ping | ping baidu.com | 测试网络的连通性 | |
hostname | hostname | 查看主机名 | |
shutdown | -r | shutdown -r | 先关机,再重启 |
-h | shutdown -h | 关机后不重启 | |
halt | halt | 关机后关闭电源,相当于shutdown -h | |
reboot | reboot | 重新启动 相当于shutdown -r |
3、压缩解压
命令 | 参数 | 示例 | 说明 |
---|---|---|---|
gzip | gzip 1.txt | 压缩后面的文件或者文件夹 | |
-d | gzip -d 1.txt.gz | 解压后面的压缩文件 | |
-[num] | gzip -9 1.txt | 用指定的数字num调整压缩的速度,-1或–fast表示最快压缩方法(低压缩比),-9或–best表示最慢压缩方法(高压缩比)。系统缺省值为6 | |
tar | -c | tar -cvf 1.tar 1.txt | 建立一个压缩文件的参数指令,例,将1.txt压缩为1.tar,也可指定多个文件或文件夹 |
-x | tar -xvf 1.tar 1.txt | 解开一个压缩文件的参数指令 | |
-z | tar -zcvf 1.tar.gz 1.txt tar -zxvf 1.tar.gz 1.txt |
是否需要用 gzip ,使用gzip压缩或解压 | |
-v | 压缩的过程中显示文件 | ||
-f | 使用档名,在 f 之后要立即接档名 |
4、文件权限
1 | - rwx rw- r-- |
r 可读权限,w可写权限,x可执行权限(也可以用二进制表示 111 110 100 –> 764)
第1位:文件类型(d 目录,- 普通文件,l 链接文件)
第2-4位:所属用户权限,用u(user)表示
第5-7位:所属组权限,用g(group)表示
第8-10位:其他用户权限,用o(other)表示
第2-10位:表示所有的权限,用a(all)表示
命令 参数 示例 说明 chmod chmod u+r 1.txt 修改文件或目录的权限u表示当前用户,g表示同组用户,o表示其他用户,a表示所有用户r表示可读,w表示可写,x表示可执行例:修改1.txt文件给当前用户添加可执行权限 -R chmod -R u+r dir1 修改指定目录及其子目录的所有文件的权限 三位数字 chmod 764 1.sh 直接指定文件的权限7:表示可读可写可执行,4+2+1。6:表示可读可写,4+2 chown chown user1:group1 1.txt 修改文件的所属用户和组例:将1.txt文件的所属用户指定为user1,组为group1 -R chown -R user1:group1 1.txt 修改目录下所有文件及子目录的所属用户和组用数字来表示权限(r=4,w=2,x=1,-=0) 5、任务调度
任务调度分为两类,系统调度任务和用户调度任务
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。
用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。
使用者权限文件
- /etc/cron.dey:该文件中所列用户不允许使用crontab命令。
- /etc/cron.allow:该文件中所列用户允许使用crontab命令。
- /var/spool/cron/:所有用户crontab文件存放的目录及用户名
命令格式:minute hour day month week command
- minute: 表示分钟,可以是从0到59之间的任何整数。
- hour:表示小时,可以是从0到23之间的任何整数。
- day:表示日期,可以是从1到31之间的任何整数。
- month:表示月份,可以是从1到12之间的任何整数。
- week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
- command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
特殊字符
- 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
- 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
- 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
- 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
命令格式:crontab [-u user] file 或 crontab [-u user] [-e | -l | -r]
- -u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。
- file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
- -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
- -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
- -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
- -i:在删除用户的crontab文件时给确认提示。
# 三、系统常用快捷键及符号命令
命令 | 参数 | 示例 | 说明 |
---|---|---|---|
ctrl+a | 跳转命令首字符 | ||
ctrl+e | 跳转命令尾字符 | ||
ctrl+w | 往回删除一个单词,光标放在最末尾 | ||
ctrl+k | 删除光标以后的字符 | ||
ctrl+u | 删除光标以前的字符 | ||
ctrl + c | 停止进程 | ||
ctrl + l | 清屏 | ||
ctrl + r | 搜索历史命令 | ||
ctrl + q | 退出 | ||
tab | 自动补全 | ||
> | echo “haha” > 1.txt | 将前一条命令的输出,写入到后面的文本中将文本清空,然后写入 | |
>> | echo “lala” >> 1.txt | 将前一条命令的输出,写入到后面的 文本中不清空文本,追加到文本最后 | |
| | cat 1.txt | grep ‘hello’ | 管道命令,以前一个命令的输出作为输入,然后进行运算例:打印1.txt中带有hello字符串的行 | |
* | 通配符,指所有 |
四、vim编辑器
1、修改文本
命令 | 说明 |
---|---|
i | 在光标前插入 |
I | 在光标当前行开始插入 |
a | 在光标后插入 |
A | 在光标当前行末尾插入 |
o | 在光标当前行的下一行插入新行 |
O | 在光标当前行的上一行插入新行 |
:wq | 保存并退出 |
:wq! | 强制保存退出 |
:n1,n2 w filename | 将n1,n2的内容保存到filename 这个文件 |
2、定位命令
命令 | 说明 |
---|---|
:set nu | 显示行号 |
:set nonu | 取消行号 |
gg | 跳到首行 |
G | 跳到末行 |
:n | 跳到第n行 |
/word | 向下查找word字符 |
?word | 向上查找word字符 |
n | 继续重复前一查找动作 |
N | 继续反方向重复查找动作 |
3、替换和取消命令
命令 | 说明 |
---|---|
u | undo,取消上一步操作 |
ctrl + r | redo,返回到undo之前 |
r | 替换光标所在处的字符 |
R | 从光标所在处开始替换,按Esc键结束 |
:n1,n2s/word1/word2/g | 表示n1-n2行的word1被替换为word2 |
:n1,$s/word1/word2/g | 从n1-末行的word1被替换为word2 |
:n1,$s/word1/word2/gc | 功能同上给予确认的替换 |
4、删除/复制命令
命令 | 说明 |
---|---|
x或X | 删除光标所在处字符 |
nx | 删除光标所在处后的n个字符 |
ndw或ndW | 删除光标开始及其后的n-1个词 |
dd | 删除光标所在行。ndd删除光标所在行接下来的n行 |
dG | 删除光标所在行到末尾行的所以内容 |
D | 删除光标所在处到行尾的内容 |
:5,7d | 删除5到7行 |
:.,$d | 从当前行到文件末尾。【.】表示当前行,【$】 表示最后一行。 |
:.,1d | 从当前行到文件开头。 |
:10,$d | 从第十行到文件末尾。 |
ynw | 复制n个单词 |
y$ | 复制当前光标至行尾处 |
nyy | 复制n行 |
p | 下下面粘贴 |
P | 向上面粘贴 |
5、常用快捷键
命令 | 说明 |
---|---|
hift+ zz | 保存退出,与“:wq”作用相同 |
v | 进入字符可视模式 |
ctrl + v | 进入块可视模式 |