Linux常见目录
/bin | 存放系统所需要的的重要命令,如文件目录操作命令ls,cp,mkdir等。另/usr/bin也存放了一些系统命令,这些命令对应的文件都是可执行的,普通用户可以使用大部分的命令。 |
---|---|
/boot | 存放Linux启动时内核及引导系统程序所需要的的核心文件,内核文件和grub引导装载程序都位于此目录。 |
/dev | 存放Linux系统下的设备文件,如光驱、硬盘等。访问该目录下某个文件相当于访问某个硬件设备,常用于挂载光驱。 |
/etc | 存放系统配置文件,作为一些软件启动时默认配置文件读取的目录,如/etc/fstab存放系统分区信息。 |
/home | 系统默认的用户主目录。如果添加用户时不指定用户的主目录,默认在该目录下创建与用户同名的文件夹。 |
/lib | 存放动态链接库。类似的目录有/usr/lib、/usr/local/lib等 |
/lost+found | 存放一些当系统意外崩溃或机器意外关机时产生的文件碎片 |
/mnt | 用于存放挂载储存设备的挂载目录,如光驱等。 |
/proc | 存放操作系统运行时的信息,如进程信息、内核信息、网络信息等。此目录的内容存在于内存中,实际不占用磁盘空间。 |
/root | Linux超级用户root的主目录 |
/sbin | 存放一些系统管理命令,一般只能由超级用户root执行,类似目录有/usr/sbin、/usr/local/sbin等。 |
/tmp | 临时文件目录。系统软件或用户运行程序(如mysql)时产生的临时文件存放在这里。需要定时清除。 |
/usr | 应用程序存放目录,如命令、帮助文件等。安装Linux软件包时默认安装到/usr/local目录下。 |
/var | 内容经常变动。如/var/log存放系统日志,/var/lib存放系统库文件等。 |
/sys | 与/proc类似,是一个虚拟的文件系统,主要记录与系统核心相关的信息,如系统当前已经载入的模块信息等。 |
常用运维命令
文本三剑客(grep,awk,sed)
pppps:只是简单介绍一下,详细用法可以看看其他博主的~
- grep文本过滤工具
-i 忽略大小写
-v 反向查找
-q 不显示任何信息
-n 显示行号
-c 计算符合结果的行数
-E 使用扩展正则表达式,等同于egrep
例如:grep -Ev "^$|[#;]" #过滤注释行和空行
- awk文本分析工具
命令模式:awk [option] 'pattern+action' filename
-F:指定分隔符
-v:指定用户自定变量
例如:1.#自定义变量,以:作为分隔符,输出第三列数据
awk -F: -va=3 '{print $a}' /etc/passwd
2.#关系表达式,以:作为分隔符,若第四列数据等于0,则输出第一列和第四列数据
awk -F: '$4==0 {print $1 $4}' /etc/passwd
3.#内置变量 NR:行号 NF:列数 $0:整行数据......
awk -F: '{print "linenumber:"NR,"columes:" NF,"linecontext:"$0}' /etc/passwd
# linenumber:1 columes:7 linecontext:root:x:0:0:root:/root:/bin/bash
4.#BEGIN——END语块
awk -F: 'BEGIN{print "---------------begin---------------"}{printf "username:%-16s\tuserid:%-16s\n",$1,$3}END{print "-------------end------------"}' /etc/passwd
#---------------begin---------------
# username:root userid:0
# username:bin userid:1
# username:daemon userid:2
# username:adm userid:3
# -------------end------------
5.#正则表达式
awk -F: '/^\<root\>/ {print $0}' /etc/passwd
# root:x:0:0:root:/root:/bin/bash
- sed文本编辑工具
sed处理文本的过程:将当前处理的行存储在临时缓冲区中,该缓冲区称为“模式空间”;用sed命令处理缓冲区中的内容,处理完毕后,把缓冲区的内容送到标准输出;
sed处理的整个过程中,对象文件的内容没有改变,除非使用重定向来存储处理后的结果;
命令格式:sed [option] 'command' filename
-n 只打印模式匹配到的行
-e 直接在命令行模式上进行sed编辑(默认)
-i 直接修改文件内容
例如:1.#取消注释行
sed '1,10s@^#\+\(.*\)$@\1@g' 1.txt
2.#显示/etc/passwd文件中位于第偶数行的用户的用户名
sed -n 'n;p' /etc/passwd | cut -d: -f1
3.#为/tmp/1.txt 文件中前三行的行首加#号。
sed -i '1,3s@\(^.\)@#\1@g' /tmp/1.txt
压缩、解压缩文件 tar | zip/unzip
1.打包,不压缩
tar -cvf /tmp/etc.tar /etc
2.打包并用gzip压缩
tar -zcvf /tmp/etc.tar.gz /etc
3.解压压缩包至当前路径
tar -zxvf /tmp/etc.tar.gz
4.排除不加入压缩包的文件
tar --exclude /home/*log -zcvf test.tar.gz /data/soft
5.解压时保留文件的原属性
tar -zxvpf /tmp/etc.tar.gz /etc
6.打包并使用bzip2压缩
tar -jcvf /tmp/etc.tar.bz2 /etc
1.将整个文件夹压缩成一个文件
zip -r file_backup.zip .
2.解压时不询问,直接覆盖
unzip -o filename.zip
3.将文件解压到指定文件夹
unzip filename.zip -d [指定文件夹路径]
查看系统负载 uptime
[root@localhost ~]# uptime
14:46:27 up 1:33, 2 users, load average: 0.00, 0.01, 0.05
#系统当前时间 主机已运行时间, 用户连接数, 系统平均负载:最近1分钟,5分钟,15分钟
显示系统内存状态 free
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem(内存): 974 128 694 7 151 679
Swap(交换分区): 2047 0 2047
total:物理内存总量;
used:总计分配给缓存(包含buffers和cache)使用的数量,但其中可能部分缓存并未实际使用;
free:未被分配的内存
shared:共享内存
buffers:系统分配但未被使用的buffers数量
cached:系统分配但未被使用的cache数量
计算应用程序占用内存公式=total-free-buffers-cached
单次任务 at
设置在指定时间执行一个指定任务,只能执行一次,使用前确认系统开启了atd服务。
周期任务crond
周期性地执行某种任务或等待处理某些事件,如进程监控、日志处理等。crond进程每分钟定期检查是否有要执行的任务,最小调度单位为分钟。
任务调度分为:系统任务调度和用户任务调度。
(1)系统任务调度:系统周期性所要执行的工作,如写缓存数据到硬盘、日志清理等。配置文件/etc/crontab。
.---------------- minute (0 - 59)
| .------------- hour (0 - 23)
| | .---------- day of month (1 - 31)
| | | .------- month (1 - 12) OR jan,feb,mar,apr ...
| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | | |
* * * * * user-name command to be executed
crontab命令参数:
-e 执行文字编辑器来编辑任务列表
-r 删除目前的任务列表
-l 列出目前的任务列表
例子:1.#每两个小时重启一次apache
0 */2 * * * /sbin/service httpd restart
2.#在12月,每天的早上6点到12点中,每隔20分钟执行一次/uer/bin/backup
0/3 6-12 * 12 * /usr/bin/backup
改变文件所有权 chown | chgrp
chown:可以将文件更改为新的属主或属组,只有root用户和拥有该文件的用户才可以更改。
常用参数: -R 递归更改指定文件的所有权,但不更改链接指向的目录
chgrp:用于改变指定文件或目录的属组。
改变文件权限 chmod
例如:1.#给文件所有者加上可执行权限
chmod u+x filename
2.#采用数字设置文件权限 r=4,w=2,x=1
chmod 775 filename
查看磁盘空间占用情况 df
常用参数: -a 显示所有文件系统的磁盘使用情况
-k 以k字节为单位显示
-i 显示i节点信息,而不是磁盘块
-t 显示各指定类型的文件系统的磁盘空间使用情况
-x 与-t相反
-h 以更直观的方式显示
-T 显示文件系统类型
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 1.5G 16G 9% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@localhost ~]# df -ih
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/mapper/centos-root 8.5M 41K 8.5M 1% /
devtmpfs 119K 389 119K 1% /dev
tmpfs 122K 1 122K 1% /dev/shm
tmpfs 122K 737 122K 1% /run
tmpfs 122K 16 122K 1% /sys/fs/cgroup
/dev/sda1 512K 326 512K 1% /boot
tmpfs 122K 1 122K 1% /run/user/0
查看文件或目录所占用的空间 du
常用选项: -a 显示全部目录和其子目录下的每个文件所占的磁盘空间
-b 大小用bytes来表示
-c 最后加上总计
-h 以更直观的方式显示大小
--max-depth=N 只打印层级小于等于指定数值的文件夹的大小
-s 只显示各文件大小的总和
-x 只计算属于同一文件系统的文件
-L 计算所有文件大小
[root@localhost ~]# du -sh #统计当前文件夹的大小,默认不统计软链接指向的目的文件夹
212M .
未完待续…