linux目录结构介绍
一、系统用户的相关信息
1、用户的分类?
1)、root 用户 是超级管理员 ,默认linux\unix操作系统中拥有最高权限,可以比喻成 linux的皇帝
2)、普通用户:是拥有管理员或管理员权限的用户创建的,权限:系统管理员可以读、看,不能增删改。权限越大 责任越大,可以比喻成一个贫民百姓
2、添加用户及其示例?
useradd oldboy 添加用户
id oldboy 查看用户的id号码、用户组的id号码
passwd oldboy 修改用户的密码
whoami 查看当前用户
su oldboy 切换用户
su - oldboy 切换用户
logout 或快捷键 ctrl + d 退出当前用户或注销
3、su 与su -区别?
su切换的只是root身份,但shell环境仍然是普通用户的shell;而su - 连用户和shell环境一起切换成root身份了。
用echo $PATH 命令看一下su和 su - 后的环境变量已经变了。
4、$是普通用户的命令提示符,#符号是超级管理员的提示符,如:
[luffy@LuffyCity ~]$ #普通用户luffy对应的提示符
[root@LuffyCity ~]# #超级管理员root对应的提示符
二、你的操作系统是什么版本的?
1、查看操作系统的版本 cat /etc/redhat-release
2、查看操作系统的内核 uname -r
3、查看操作系统的位数 uname -m
4、查看操作系统的所有信息 uname -a
三、什么是系统变量或环境变量?
1、变量名字 相当于书的名字
2、查看变量 相当于查看秘籍
3、向变量中写内容 相当于向书中书写心得体会
4、系统环境变量 ,一般都是大写的,在系统的任何地方都可以使用,查看环境变量echo $PS1
\u 当前用户名 whoami
\h 当前用户的主机名 hostname
\W 当前用户的位置 pwd
5、PS1='[\u@\h \W \t]\$'
四、SELinux?
1、SELinux是美国国家安全局对于强制访问控制的实现,这个功能可以暂时关闭了,至于安全问题,后面通过其它手段来解决,这也是大多数生产环境的做法,如果非要开启也是可以的。关闭方式如下2种:
1)、临时关闭SELinux---重启服务器的时候失效
getenforce 查询SELinux的状态
enforcing 正在运行
permissive 临时关闭
desabled 彻底关闭
setenforce 设置selinux的运行级别
2)永久关闭selinux---重启服务器的时候生效
vim /etc/selinux/config
五、关闭iptables防火墙?
1、关闭防火墙可以理解为 小区保安,可以通过容貌和门禁来简单辨认是否可以进出入
2、开启防火墙要注意 在企业环境中,一般只有配置外网ip的linux服务器才需要开启防火墙,但即使有外网ip,对于高并发高流量的业务服务器仍是不能开的,因为会有较大的性能损耗,导致网站访问很慢,这种情况下只能在前端加更好的硬件防火墙了
3、临时关闭iptables防火墙 就是在当前不再运行,在电脑重新启动的时候重新开启防火墙
/etc/init.d/iptables status 查看防火墙的状态
/etc/init.d/iptables stop 关闭防火墙 建议关闭两次,一次关闭不了
4、永久关闭iptables 防火墙 让iptables 防火墙在开机的时候,不自动启动
chkconfig | grep ipt 查看防火墙是否自动开启
chkconfig iptables off 关闭防火墙
六、显示中文乱码的原因?
1、什么是字符集?字符集表示中文的方法
2、字符集的分类有哪些?UTF-8 万国码 系统默认字符集 GBK GB2312
3、查看系统字符集 echo $LANG
4、临时修改字符集 export LANG=zh_CN.UTF-8
5、永久修改字符集 vim /etc/sysconfig/i18n
生效字符集 source /etc/sysconfig/i18n
6、显示中文乱码的原因?
linux使用的字符集和远程连接工具使用的字符集不相同,就会导致中文乱码
7、如何排查中文乱码?
查看linux使用字符乱码和远程工具使用的字符乱码
8、解决中文乱码的方法?
方法1、修改远程连接工具字符集
方法2、修改linux系统的字符集
七、什么是目录与路径
1、目录,directory
2、绝对路径:路径的写法一定由根目录/写起,例如:/user/share/doc 这个目录
3、相对路径:路径的写法不是由/写起,例如:cd ../man 这就是相对路径的写法
八、linux目录结构
1、linux目录结构特点?
1)一切从根开始
2)linux中每个设备可以挂载在任何目录中
3)磁盘/分区/设备没有挂载无法使用
4)linux根下面的目录是一个有层次的树状结构
5)linux下面设备(磁盘)不挂载是看不到入口的,如果设备要访问,必须有一个入口,这个入口就是挂载点,挂载点实质上就是目录
6)linxu系统中的这些不同的目录也是很特别的,不同的目录可以分布在不同的硬盘分区以及不同的硬盘设备上,这是windows的系统难以做到的,windws系统不同的分区是独立存在的
7)举例说明linux下面使用光盘。
第一步:把光盘放入到光驱中
第二步:linux中使用光盘 对应/dev/cdrom
[root@oldboy004 ~]# ll /dev/cdrom
lrwxrwxrwx 1 root root 3 5月 14 10:11 /dev/cdrom -> sr0
[root@oldboy004 ~]# cd /dev/cdrom
-bash: cd: /dev/cdrom: 不是目录
第三步:把光盘挂载到系统里面
mount /dev/cdrom /mnt/
第四步:查看磁盘空间
df -h
8、FHS简单介绍?
1)、FHS全称(Filessystem Hierachy Standard),中文意思是目录层次标准,是linux的目录规范标准。
2)、FHS的规范:第一层是“/”目录下的各个目录应该放什么文件数据,比如:/etc/目录下放置系统的配置文件,比如:/etc/exparts,/etc/hosts,/bin,/sbin放置程序及系统命令。第二层是/usr和/var这两个子目录来定义,比如:/var/log放置系统日志文件等。
9、目录结构详细介绍?
第一部分:FHF要求必须要存在的目录
/bin 放置二进制文件,比如:cat、chmod、chown、date、mv、mkdir、cp等等常用指令
/boot 引导程序,内核镜像 这个目录主要在放置开机会使用到的档案。
/dev 设备 在linux系统中,任何装置与周边设备都是以档案的形态存在这个目录中。你只要透过这个目录底下的某个档案,就等于存取某个装置了,比如:重要的档案有,/dev/null,/dev/zero,/dev/tty,/dev/loop,/dev/sd等等
/etc 系统服务配置文件 系统主要的设定档几乎都放在这个目录内,比如:人员的账号密码档,各种服务的启动档等。一般来说,这个目录的各种档案属性是可以让一般使用者阅读的,但是只要root权限修改。FHS建议不要放置可执行档在这个目录里。
比较重要的档案有,/etc/modprobe.d /etc/passwd /etc/fstab /etc/issure 等等。另外,FHS还规范几个重要的目录最好要存在/etc/目录下;1、/etc/opt(必要的),这个目录放置第三方协力软体/opt的相关设定档2、/etc/X11
2、/etc/X11(建议):与X windows 有关的各种设定档都在这里,尤其是xorg.conf 这个XServer的设定档
3、/etc/sgml/(建议):与SGML格式有关的各项设定档
4、/etc/xml/(建议):与xml格式有关的各项设定档
/lib 系统库 系统的函式库非常多,而/lib放置的则是在开机时会有到的函数库, 以及在/bin或/sbin底下的指令会呼叫的函式库而已。另外 FHS 还要求底下的目录必须要存在:- /lib/modules/:这个目录主要放置可抽换式的核心相关模组(驱动程式)喔!
/midia 媒体 这个/media底下放置的就是可移除的装置了,包括软碟、光碟、DVD等等装置都暂时挂载于此,常见的档名有:/media/floppy, /media/cdrom等等。
/sbin super bin 只有root能用的命令 Linux有非常多指令是用来设定系统环境的,这些指令只有root才能够利用来‘设定’系统,其他使用者最多只能用来‘查询’而已。 放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。
/srv srv可以视为‘service’的缩写,是一些网路服务启动之后,这些服务所需要取用的资料目录。 常见的服务例如WWW, FTP等等。举例来说,WWW伺服器需要的网页资料就可以放置在/srv/www/里面。 不过,
系统的服务资料如果尚未要提供给网际网路任何人浏览的话,预设还是建议放置到 /var/lib 底下即可。
/tmp 垃圾堆,这是让一般使用者或者是正在执行的程序暂时放置档案的地方。 这个目录是任何人都能够存取的,所以你需要定期的清理一下。当然,重要资料不可放置在此目录啊! 因为FHS甚至建议在开机时,应该要将/tmp下的资料都删除唷!
/usr #存放程序
/var variable 经常变 /var/log/messages /var/log/secure 主要为放置变动性的资料
/home 普通的家目录 这是系统预设的使用者家目录(home directory)。在你新增一个一般使用者帐号时, 预设的使用者家目录都会规范到这里来。比较重要的是,家目录有两种代号喔 - ~:代表目前这个使用者的家目录- ~dmtsai :则代表 dmtsai 的家目录!
/lib\ 用来存放与 /lib 不同的格式的二进位函式库,例如支援 64 位元的 /lib64 函式库等
/root 系统管理员(root)的家目录。之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时, 该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录放置在同一个分割槽中。
/lost+found 这个目录是使用标准的ext2/ext3/ext4档案系统格式才会产生的一个目录,目的在于当档案系统发生错误时, 将一些遗失的片段放置到这个目录下。不过如果使用的是 xfs 档案系统的话,就不会存在这个目录了!
/proc 这个目录本身是一个‘虚拟档案系统(virtual filesystem)’喔!他放置的资料都是在记忆体当中, 例如系统核心、行程资讯(process)、周边装置的状态及网路状态等等。因为这个目录下的资料都是在记忆体当中, 所以本身不占任何硬碟空间啊!比较重要的档案例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/* 等等。
/sys 这个目录其实跟/proc非常类似,也是一个虚拟的档案系统,主要也是记录核心与系统硬体资讯较相关的资讯。 包括目前已载入的核心模组与核心侦测到的硬体装置资讯等等。这个目录同样不占硬碟容量喔!
九、文件目录详情
1、网卡配置文件· /etc/sysconfig/network-scripts/ifcfg-eth0
1)、
DEVICE=eth0 ###网卡的名称
HWADDR=00:0c:29:1e:67:61 #@@hardware address硬件地址 max地址
TYPE=Ethernet ### 互联网
UUID=3405d22b-1aab-45a5-b57f-c0d005e4f269 ### UUID系统中唯一标识
ONBOOT=yes #@@ on boot 在重启的时候是否重启网卡
NM_CONTROLLED=yes ### 是否被network软件进行管理
BOOTPROTO=none #@@ 网卡ip地址是否静态的
#none/static ip地址是固定的
#dhcp 自动获取ip地址
IPADDR=10.0.0.200 #@@ ip地址
NETMASK=255.255.255.0 ### 子网掩码
GATEWAY=10.0.0.2 #@@ 网关 默认出口
USERCTL=no ### 是否准许普通用户管理网卡 开 关 重启
PEERDNS=yes ###PEERDNS 等于yes的话 网卡的配置文件高于/etc/resolv.conf
DNS1=223.5.5.5 #@@
DNS2=223.6.6.6 #@@
2)、上网使用的域名,例如:www.baidu.com www.jd.com www.taobao.com 等等,我们一般用DNS把域名转换成IP地址。
经常使用的DNS有:
阿里云的DNS
223.5.5.5
223.6.6.6
114.144.114.114
114.114.115.115
谷歌
8.8.8.8
3)、常见的DNS错误有两种
一种、ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
无法 解析 域名
一种、ping: unknown host www.baidu.com
未知 域名
4)、解决linux无法上网的问题。
第一步:ping www.baidu.com 是否能上网
第二步:ping 223.5.5.5 DNS是否有问题
第三步:分析DNS是否有问题,如果第一步可以ping通,第二步不同,表示DNS有问题
5)、修改DNS
第一步:编辑网卡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-eth0
第二步:在网卡配置文件中 添加上DNS1=223.5.5.5 DNS2=223.6.6.6
第三步:重启网卡 ifdown eth0 && ifup eth0 或 重启所有网卡 /etc/init.d/network restart
2、/etc/resolv.conf 网卡配置文件里面的DNS优先于 /etc/resolv.conf
3、/etc/hosts ip地址与域名解析关系 对主机名进行解析 119.75.216.20 www.baidu.com www.jd.com
4、/etc/sysconfig/network 修改主机名的文件
第一步:查看主机名 hostname
第二步:临时修改主机名--重启服务器之后失效 hostname oldboy004_nb
第三步:永久修改主机名--重启服务器之后生效 cat /etc/sysconfig/network
5、/etc/fstab 开机的时候自动挂载文件 开机的时候给每一个磁盘分区开一个入口 blkid
6、/etc/rc.local 卡机的时候自动运行的软件 需要开机自启动的软件/命令/服务放在这个文件中
7、/etc/inittab 开机的时候运行级别的配置文件
1)、查看运行级别 runlevel
2)、临时切换运行级别 init 5
3)、永久修改运行级别 tail -1 /etc/inittab
4)、运行级别的详细讲解:
0 关机状态,不要把运行级别设置成0
1 单用户模式 root用户名密码忘记了
2 多用户模式 但是没有NFS
3 完全的多用户模式,命令模式,文本模式
4 未使用
5 X11,桌面模式,图形化界面模式
6 重启状态 不要把运行级别设置为6
8、/etc/init.d 服务管理命令
9、/etc/profile 系统环境变量 别名
/etc/bashrc
10、/etc/sysconfig/i18n 语言别名
11、用户默认安装的软件位置 /usr/local
12、系统默认日志信息 /var/log/messages
13、用户的登录信息 /var/log/secure
14、系统内存信息 /proc/meminfo 查看当前用户的内存信息 free -h
15、查看CPU信息 /proc/cpuinfo 查看cpu信息 lscpu
16、系统负载 /proc/loadavg w 平均负载
17、什么是系统繁忙程度
系统的负载接近cpu的核心数量
18、显示系统的挂载信息 /proc/mounts/
19、linux系统的启动过程
1)、开机自检BIOS (内存,CPU,硬盘)
2)、MBR引导 (硬盘通过MBR启动系统)
3)、GRUB菜单
4)、加载内核
5)、运行init进程 init进程启动后进行一些初始化,比如:设置ip地址,设置主机名,挂载,软件等。
6)、从/etc/inittab 读取运行级别 根据系统的运行级别,运行软件,比如运行级别是3,运行/etc/rc3.d/*下的文件
7)、根据/etc/rc.sysinit 初始化系统 设置ip 地址 主机名
8)、根据运行级别启动对应的软件 (开机自启动软件)
9)、运行mingetty 显示登录界面
20、什么是PATH环境变量,它有什么作用?
1)、环境变量是大写的,在大部分地方都可以使用
2)、环境变量存放的是命令的位置/路径
3)、查看环境变量env $PAHT , echo $PAHT
4)、修改环境变量export PATH=“/root”或 PAHT ="/root"
5)、常用的环境变量有 $PAHT $LANG $PS1
6)、第一步:输入命令,第二步:在PATH环境里面,进行路径查找,第三步:找到了运行,找不到提示:command not found
21、查询软件是否安装
rpm -qa 查询所有安装的软件包
例如:rpm -qa
rpm -qa |grep tree 查询某一个安装包
rpm -qf /etc/hosts 查询文件属于哪个软件包
22、安装软件包 yum install tree -y
23、只显示一级目录
1)、使用tree
tree 以树的形式显示目录
-L 最多显示几层目录
-d 只显示目录信息,不加d显示目录信息和文件信息
例如: tree -Ld 1
2)、使用find查找一级目录
24、快速回到当前上次目录的快捷键
1)、快速回到上次所在的目录 cd -
2)、进入到当前目录 cd .
3)、进入到当前目录的上一级目录 cd ..
4)、快速回到家目录 cd ~
5)、快速回到家目录2 cd
25、按时间的逆顺来显示数据
ls -lrt 按照时间逆顺序显示
ls -lt 按照时间顺序显示
26、保留最近7天的文件
find /app/logs/ -type f -mtime +7 |xargs ls -l
27、找到大于1M的文件
find /app/logs/ -type f -size +1M
28、使用命令的结果集
cp($(find /app/logs/ -type f -name "*.log" /tmp/a/)
find /app/logs -type f -name "*.log" -exec cp {} /tmp/b/ \;
find /app/logs -type f -name "*.log" | xargs cp -t /tmp/c/
29、调试系统服务器的时候希望实时查看系统日志
tail -f /var/log/secure
30、显示行号的方式
方法1、使用cat -n 路径 显示行号 例如:cat -n /oldboy/nginx.conf
方法2、使用vim/vi 显示行号或取消行号 :set nu 显示行号 :set nonu 取消显示行号
方法3、使用grep -n 显示行号 例如:grep -n "." /oldboy/nginx.conf
方法4、使用sed ‘=‘ 显示行号 例如:sed '=' /oldboy/nginx.conf | xargs -n2
方法5、使用awk ’{print NR,$0}" 例如:awk '{print NR,$0}' /oldboy/nginx.conf
方法6、使用nl 显示行号 例如:nl /oldboy/nginx.conf
31、linux运行级别的详细讲解:
1)、
0 关机状态,不要把运行级别设置为0
1 单用户模式,root用户密码忘记了可以进入单用户模式
2 多用户模式,但是没有NFS
3 完全的多用户模式,命令模式,文本模式
4 未使用
5 X11,桌面模式,图形化界面模式
6 重启状态,不要把运行级别设置为6
2)、查看当前运行级别runlevel
临时修改运行级别 init 5
3)、永久修改运行级别---重启生效
编辑vim/vi /etc/inittab
32、iptables防火墙
1)、查看防火墙状态
/etc/init.d/iptables status
2)、关闭临时防火墙
/etc/init.d/iptables stop
3)、查看防火墙是否自启动状态
chkconfig | grep ipt
4)、关闭防火墙自启动状态
chkconfig iptables off
chkconfig --level 3 iptables off
5)、开启防火墙自启动状态
chkconfig --level 3 iptables on
chkconfig iptables off
33、linux中显示中文乱码
1)、排查中文乱码
查看linux系统的字符集和远程连接工具xshell的字符集是否相同
2)、修改linux的字符集或远程连接工具的字符集(推荐)
查看linux的字符集 echo $LANG
临时修改linux的字符集 export LANG="zh_CN.UTF-8“
永久修改linux的字符集 编辑 vim/vi /etc/sysconfig/i18n
永久生效source /etc/sysconfig/i18n
34、/etc/是linux系统的默认配置文件,及服务启动命令的目录
1)、打包压缩/etc/整个目录
tar zcvf /tmp/etc.tar.gz /etc/
创建压缩包 压缩包存放的位置 压缩那个目录或文件
z 通过gzip 工具进行压缩
c 表示create 创建压缩包
v 表示verbose 显示执行过程
f 表示file 接上压缩包名字
2)、查看压缩包内容
tar ztf /tmp/etc.tar.gz
t 表示list 显示压缩内容
3)、解压压缩包
tar zxf etc.tar.gz
x extract 解压
4)、创建压缩包的时候提示错误信息
###问题:"创建压缩包"的时候会提示
tar: Removing leading `/' from member names
tar:把每个文件开头的/删除掉了。
/etc/hosts ------> etc/hosts
tar命令提示你:我在创建压缩包的时候 把压缩包中的文件 绝对路径----->相对路径
tar: Removing leading `/' from hard link targets
###小结:核心 为了安全----tar命令 把你使用的绝对路径----变化为-----相对路径
5)、 打包/etc/排除/etc/services文件
tar /tmp/etc-pai.tar.gz etc/ --exclude=services
6)、查看排除的名单
tar tf /etc/etc-pai.tar.gz |grep services
7)、排除到指定的文件中
tar zcf /tmp/etc-pai.tar.gz etc/ --exclude-from=/tmp/paichu.txt
8)、解压到指定的目录
tar xf /tmp/etc.tar.gz -C /opt
9)、解压多个目录下
tar /tmp/conf.tar.gz etc/hosts etc/sysconfig/network etc/sysconfig/i18n /etc/init.d
11、过滤文件中的内容
1)、sed+sed过滤
sed 's#I am ##g' /oldboy/oldboy.txt | sed 's#myqq is ##g'
2)、sed+awk
sed 's#,# #g' /oldboy/oldboy.txt | awk '{print $3,$6}'
3、替换tr
tr "," " " </oldboy/oldboy.txt | awk '{print $3,$6}'
4、awk指定多个分隔符
awk -F '[, ]" '{print $3,$6}' /oldboy/oldboy.txt
12、显示文件有多少行
wc -l /etc/services
13、显示系统正在运行的信息
ps -ef | grep "sshd
14、 单引号 所见即所得
双引号 里面的特殊符号会被解析
一、系统用户的相关信息
1、用户的分类?
1)、root 用户 是超级管理员 ,默认linux\unix操作系统中拥有最高权限,可以比喻成 linux的皇帝
2)、普通用户:是拥有管理员或管理员权限的用户创建的,权限:系统管理员可以读、看,不能增删改。权限越大 责任越大,可以比喻成一个贫民百姓
2、添加用户及其示例?
useradd oldboy 添加用户
id oldboy 查看用户的id号码、用户组的id号码
passwd oldboy 修改用户的密码
whoami 查看当前用户
su oldboy 切换用户
su - oldboy 切换用户
logout 或快捷键 ctrl + d 退出当前用户或注销
3、su 与su -区别?
su切换的只是root身份,但shell环境仍然是普通用户的shell;而su - 连用户和shell环境一起切换成root身份了。
用echo $PATH 命令看一下su和 su - 后的环境变量已经变了。
4、$是普通用户的命令提示符,#符号是超级管理员的提示符,如:
[luffy@LuffyCity ~]$ #普通用户luffy对应的提示符
[root@LuffyCity ~]# #超级管理员root对应的提示符
二、你的操作系统是什么版本的?
1、查看操作系统的版本 cat /etc/redhat-release
2、查看操作系统的内核 uname -r
3、查看操作系统的位数 uname -m
4、查看操作系统的所有信息 uname -a
三、什么是系统变量或环境变量?
1、变量名字 相当于书的名字
2、查看变量 相当于查看秘籍
3、向变量中写内容 相当于向书中书写心得体会
4、系统环境变量 ,一般都是大写的,在系统的任何地方都可以使用,查看环境变量echo $PS1
\u 当前用户名 whoami
\h 当前用户的主机名 hostname
\W 当前用户的位置 pwd
5、PS1='[\u@\h \W \t]\$'
四、SELinux?
1、SELinux是美国国家安全局对于强制访问控制的实现,这个功能可以暂时关闭了,至于安全问题,后面通过其它手段来解决,这也是大多数生产环境的做法,如果非要开启也是可以的。关闭方式如下2种:
1)、临时关闭SELinux---重启服务器的时候失效
getenforce 查询SELinux的状态
enforcing 正在运行
permissive 临时关闭
desabled 彻底关闭
setenforce 设置selinux的运行级别
2)永久关闭selinux---重启服务器的时候生效
vim /etc/selinux/config
五、关闭iptables防火墙?
1、关闭防火墙可以理解为 小区保安,可以通过容貌和门禁来简单辨认是否可以进出入
2、开启防火墙要注意 在企业环境中,一般只有配置外网ip的linux服务器才需要开启防火墙,但即使有外网ip,对于高并发高流量的业务服务器仍是不能开的,因为会有较大的性能损耗,导致网站访问很慢,这种情况下只能在前端加更好的硬件防火墙了
3、临时关闭iptables防火墙 就是在当前不再运行,在电脑重新启动的时候重新开启防火墙
/etc/init.d/iptables status 查看防火墙的状态
/etc/init.d/iptables stop 关闭防火墙 建议关闭两次,一次关闭不了
4、永久关闭iptables 防火墙 让iptables 防火墙在开机的时候,不自动启动
chkconfig | grep ipt 查看防火墙是否自动开启
chkconfig iptables off 关闭防火墙
六、显示中文乱码的原因?
1、什么是字符集?字符集表示中文的方法
2、字符集的分类有哪些?UTF-8 万国码 系统默认字符集 GBK GB2312
3、查看系统字符集 echo $LANG
4、临时修改字符集 export LANG=zh_CN.UTF-8
5、永久修改字符集 vim /etc/sysconfig/i18n
生效字符集 source /etc/sysconfig/i18n
6、显示中文乱码的原因?
linux使用的字符集和远程连接工具使用的字符集不相同,就会导致中文乱码
7、如何排查中文乱码?
查看linux使用字符乱码和远程工具使用的字符乱码
8、解决中文乱码的方法?
方法1、修改远程连接工具字符集
方法2、修改linux系统的字符集
七、什么是目录与路径
1、目录,directory
2、绝对路径:路径的写法一定由根目录/写起,例如:/user/share/doc 这个目录
3、相对路径:路径的写法不是由/写起,例如:cd ../man 这就是相对路径的写法
八、linux目录结构
1、linux目录结构特点?
1)一切从根开始
2)linux中每个设备可以挂载在任何目录中
3)磁盘/分区/设备没有挂载无法使用
4)linux根下面的目录是一个有层次的树状结构
5)linux下面设备(磁盘)不挂载是看不到入口的,如果设备要访问,必须有一个入口,这个入口就是挂载点,挂载点实质上就是目录
6)linxu系统中的这些不同的目录也是很特别的,不同的目录可以分布在不同的硬盘分区以及不同的硬盘设备上,这是windows的系统难以做到的,windws系统不同的分区是独立存在的
7)举例说明linux下面使用光盘。
第一步:把光盘放入到光驱中
第二步:linux中使用光盘 对应/dev/cdrom
[root@oldboy004 ~]# ll /dev/cdrom
lrwxrwxrwx 1 root root 3 5月 14 10:11 /dev/cdrom -> sr0
[root@oldboy004 ~]# cd /dev/cdrom
-bash: cd: /dev/cdrom: 不是目录
第三步:把光盘挂载到系统里面
mount /dev/cdrom /mnt/
第四步:查看磁盘空间
df -h
8、FHS简单介绍?
1)、FHS全称(Filessystem Hierachy Standard),中文意思是目录层次标准,是linux的目录规范标准。
2)、FHS的规范:第一层是“/”目录下的各个目录应该放什么文件数据,比如:/etc/目录下放置系统的配置文件,比如:/etc/exparts,/etc/hosts,/bin,/sbin放置程序及系统命令。第二层是/usr和/var这两个子目录来定义,比如:/var/log放置系统日志文件等。
9、目录结构详细介绍?
第一部分:FHF要求必须要存在的目录
/bin 放置二进制文件,比如:cat、chmod、chown、date、mv、mkdir、cp等等常用指令
/boot 引导程序,内核镜像 这个目录主要在放置开机会使用到的档案。
/dev 设备 在linux系统中,任何装置与周边设备都是以档案的形态存在这个目录中。你只要透过这个目录底下的某个档案,就等于存取某个装置了,比如:重要的档案有,/dev/null,/dev/zero,/dev/tty,/dev/loop,/dev/sd等等
/etc 系统服务配置文件 系统主要的设定档几乎都放在这个目录内,比如:人员的账号密码档,各种服务的启动档等。一般来说,这个目录的各种档案属性是可以让一般使用者阅读的,但是只要root权限修改。FHS建议不要放置可执行档在这个目录里。
比较重要的档案有,/etc/modprobe.d /etc/passwd /etc/fstab /etc/issure 等等。另外,FHS还规范几个重要的目录最好要存在/etc/目录下;1、/etc/opt(必要的),这个目录放置第三方协力软体/opt的相关设定档2、/etc/X11
2、/etc/X11(建议):与X windows 有关的各种设定档都在这里,尤其是xorg.conf 这个XServer的设定档
3、/etc/sgml/(建议):与SGML格式有关的各项设定档
4、/etc/xml/(建议):与xml格式有关的各项设定档
/lib 系统库 系统的函式库非常多,而/lib放置的则是在开机时会有到的函数库, 以及在/bin或/sbin底下的指令会呼叫的函式库而已。另外 FHS 还要求底下的目录必须要存在:- /lib/modules/:这个目录主要放置可抽换式的核心相关模组(驱动程式)喔!
/midia 媒体 这个/media底下放置的就是可移除的装置了,包括软碟、光碟、DVD等等装置都暂时挂载于此,常见的档名有:/media/floppy, /media/cdrom等等。
/sbin super bin 只有root能用的命令 Linux有非常多指令是用来设定系统环境的,这些指令只有root才能够利用来‘设定’系统,其他使用者最多只能用来‘查询’而已。 放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。
/srv srv可以视为‘service’的缩写,是一些网路服务启动之后,这些服务所需要取用的资料目录。 常见的服务例如WWW, FTP等等。举例来说,WWW伺服器需要的网页资料就可以放置在/srv/www/里面。 不过,
系统的服务资料如果尚未要提供给网际网路任何人浏览的话,预设还是建议放置到 /var/lib 底下即可。
/tmp 垃圾堆,这是让一般使用者或者是正在执行的程序暂时放置档案的地方。 这个目录是任何人都能够存取的,所以你需要定期的清理一下。当然,重要资料不可放置在此目录啊! 因为FHS甚至建议在开机时,应该要将/tmp下的资料都删除唷!
/usr #存放程序
/var variable 经常变 /var/log/messages /var/log/secure 主要为放置变动性的资料
/home 普通的家目录 这是系统预设的使用者家目录(home directory)。在你新增一个一般使用者帐号时, 预设的使用者家目录都会规范到这里来。比较重要的是,家目录有两种代号喔 - ~:代表目前这个使用者的家目录- ~dmtsai :则代表 dmtsai 的家目录!
/lib\ 用来存放与 /lib 不同的格式的二进位函式库,例如支援 64 位元的 /lib64 函式库等
/root 系统管理员(root)的家目录。之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时, 该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录放置在同一个分割槽中。
/lost+found 这个目录是使用标准的ext2/ext3/ext4档案系统格式才会产生的一个目录,目的在于当档案系统发生错误时, 将一些遗失的片段放置到这个目录下。不过如果使用的是 xfs 档案系统的话,就不会存在这个目录了!
/proc 这个目录本身是一个‘虚拟档案系统(virtual filesystem)’喔!他放置的资料都是在记忆体当中, 例如系统核心、行程资讯(process)、周边装置的状态及网路状态等等。因为这个目录下的资料都是在记忆体当中, 所以本身不占任何硬碟空间啊!比较重要的档案例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/* 等等。
/sys 这个目录其实跟/proc非常类似,也是一个虚拟的档案系统,主要也是记录核心与系统硬体资讯较相关的资讯。 包括目前已载入的核心模组与核心侦测到的硬体装置资讯等等。这个目录同样不占硬碟容量喔!
九、文件目录详情
1、网卡配置文件· /etc/sysconfig/network-scripts/ifcfg-eth0
1)、
DEVICE=eth0 ###网卡的名称
HWADDR=00:0c:29:1e:67:61 #@@hardware address硬件地址 max地址
TYPE=Ethernet ### 互联网
UUID=3405d22b-1aab-45a5-b57f-c0d005e4f269 ### UUID系统中唯一标识
ONBOOT=yes #@@ on boot 在重启的时候是否重启网卡
NM_CONTROLLED=yes ### 是否被network软件进行管理
BOOTPROTO=none #@@ 网卡ip地址是否静态的
#none/static ip地址是固定的
#dhcp 自动获取ip地址
IPADDR=10.0.0.200 #@@ ip地址
NETMASK=255.255.255.0 ### 子网掩码
GATEWAY=10.0.0.2 #@@ 网关 默认出口
USERCTL=no ### 是否准许普通用户管理网卡 开 关 重启
PEERDNS=yes ###PEERDNS 等于yes的话 网卡的配置文件高于/etc/resolv.conf
DNS1=223.5.5.5 #@@
DNS2=223.6.6.6 #@@
2)、上网使用的域名,例如:www.baidu.com www.jd.com www.taobao.com 等等,我们一般用DNS把域名转换成IP地址。
经常使用的DNS有:
阿里云的DNS
223.5.5.5
223.6.6.6
114.144.114.114
114.114.115.115
谷歌
8.8.8.8
3)、常见的DNS错误有两种
一种、ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
无法 解析 域名
一种、ping: unknown host www.baidu.com
未知 域名
4)、解决linux无法上网的问题。
第一步:ping www.baidu.com 是否能上网
第二步:ping 223.5.5.5 DNS是否有问题
第三步:分析DNS是否有问题,如果第一步可以ping通,第二步不同,表示DNS有问题
5)、修改DNS
第一步:编辑网卡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-eth0
第二步:在网卡配置文件中 添加上DNS1=223.5.5.5 DNS2=223.6.6.6
第三步:重启网卡 ifdown eth0 && ifup eth0 或 重启所有网卡 /etc/init.d/network restart
2、/etc/resolv.conf 网卡配置文件里面的DNS优先于 /etc/resolv.conf
3、/etc/hosts ip地址与域名解析关系 对主机名进行解析 119.75.216.20 www.baidu.com www.jd.com
4、/etc/sysconfig/network 修改主机名的文件
第一步:查看主机名 hostname
第二步:临时修改主机名--重启服务器之后失效 hostname oldboy004_nb
第三步:永久修改主机名--重启服务器之后生效 cat /etc/sysconfig/network
5、/etc/fstab 开机的时候自动挂载文件 开机的时候给每一个磁盘分区开一个入口 blkid
6、/etc/rc.local 卡机的时候自动运行的软件 需要开机自启动的软件/命令/服务放在这个文件中
7、/etc/inittab 开机的时候运行级别的配置文件
1)、查看运行级别 runlevel
2)、临时切换运行级别 init 5
3)、永久修改运行级别 tail -1 /etc/inittab
4)、运行级别的详细讲解:
0 关机状态,不要把运行级别设置成0
1 单用户模式 root用户名密码忘记了
2 多用户模式 但是没有NFS
3 完全的多用户模式,命令模式,文本模式
4 未使用
5 X11,桌面模式,图形化界面模式
6 重启状态 不要把运行级别设置为6
8、/etc/init.d 服务管理命令
9、/etc/profile 系统环境变量 别名
/etc/bashrc
10、/etc/sysconfig/i18n 语言别名
11、用户默认安装的软件位置 /usr/local
12、系统默认日志信息 /var/log/messages
13、用户的登录信息 /var/log/secure
14、系统内存信息 /proc/meminfo 查看当前用户的内存信息 free -h
15、查看CPU信息 /proc/cpuinfo 查看cpu信息 lscpu
16、系统负载 /proc/loadavg w 平均负载
17、什么是系统繁忙程度
系统的负载接近cpu的核心数量
18、显示系统的挂载信息 /proc/mounts/
19、linux系统的启动过程
1)、开机自检BIOS (内存,CPU,硬盘)
2)、MBR引导 (硬盘通过MBR启动系统)
3)、GRUB菜单
4)、加载内核
5)、运行init进程 init进程启动后进行一些初始化,比如:设置ip地址,设置主机名,挂载,软件等。
6)、从/etc/inittab 读取运行级别 根据系统的运行级别,运行软件,比如运行级别是3,运行/etc/rc3.d/*下的文件
7)、根据/etc/rc.sysinit 初始化系统 设置ip 地址 主机名
8)、根据运行级别启动对应的软件 (开机自启动软件)
9)、运行mingetty 显示登录界面
20、什么是PATH环境变量,它有什么作用?
1)、环境变量是大写的,在大部分地方都可以使用
2)、环境变量存放的是命令的位置/路径
3)、查看环境变量env $PAHT , echo $PAHT
4)、修改环境变量export PATH=“/root”或 PAHT ="/root"
5)、常用的环境变量有 $PAHT $LANG $PS1
6)、第一步:输入命令,第二步:在PATH环境里面,进行路径查找,第三步:找到了运行,找不到提示:command not found
21、查询软件是否安装
rpm -qa 查询所有安装的软件包
例如:rpm -qa
rpm -qa |grep tree 查询某一个安装包
rpm -qf /etc/hosts 查询文件属于哪个软件包
22、安装软件包 yum install tree -y
23、只显示一级目录
1)、使用tree
tree 以树的形式显示目录
-L 最多显示几层目录
-d 只显示目录信息,不加d显示目录信息和文件信息
例如: tree -Ld 1
2)、使用find查找一级目录
24、快速回到当前上次目录的快捷键
1)、快速回到上次所在的目录 cd -
2)、进入到当前目录 cd .
3)、进入到当前目录的上一级目录 cd ..
4)、快速回到家目录 cd ~
5)、快速回到家目录2 cd
25、按时间的逆顺来显示数据
ls -lrt 按照时间逆顺序显示
ls -lt 按照时间顺序显示
26、保留最近7天的文件
find /app/logs/ -type f -mtime +7 |xargs ls -l
27、找到大于1M的文件
find /app/logs/ -type f -size +1M
28、使用命令的结果集
cp($(find /app/logs/ -type f -name "*.log" /tmp/a/)
find /app/logs -type f -name "*.log" -exec cp {} /tmp/b/ \;
find /app/logs -type f -name "*.log" | xargs cp -t /tmp/c/
29、调试系统服务器的时候希望实时查看系统日志
tail -f /var/log/secure
30、显示行号的方式
方法1、使用cat -n 路径 显示行号 例如:cat -n /oldboy/nginx.conf
方法2、使用vim/vi 显示行号或取消行号 :set nu 显示行号 :set nonu 取消显示行号
方法3、使用grep -n 显示行号 例如:grep -n "." /oldboy/nginx.conf
方法4、使用sed ‘=‘ 显示行号 例如:sed '=' /oldboy/nginx.conf | xargs -n2
方法5、使用awk ’{print NR,$0}" 例如:awk '{print NR,$0}' /oldboy/nginx.conf
方法6、使用nl 显示行号 例如:nl /oldboy/nginx.conf
31、linux运行级别的详细讲解:
1)、
0 关机状态,不要把运行级别设置为0
1 单用户模式,root用户密码忘记了可以进入单用户模式
2 多用户模式,但是没有NFS
3 完全的多用户模式,命令模式,文本模式
4 未使用
5 X11,桌面模式,图形化界面模式
6 重启状态,不要把运行级别设置为6
2)、查看当前运行级别runlevel
临时修改运行级别 init 5
3)、永久修改运行级别---重启生效
编辑vim/vi /etc/inittab
32、iptables防火墙
1)、查看防火墙状态
/etc/init.d/iptables status
2)、关闭临时防火墙
/etc/init.d/iptables stop
3)、查看防火墙是否自启动状态
chkconfig | grep ipt
4)、关闭防火墙自启动状态
chkconfig iptables off
chkconfig --level 3 iptables off
5)、开启防火墙自启动状态
chkconfig --level 3 iptables on
chkconfig iptables off
33、linux中显示中文乱码
1)、排查中文乱码
查看linux系统的字符集和远程连接工具xshell的字符集是否相同
2)、修改linux的字符集或远程连接工具的字符集(推荐)
查看linux的字符集 echo $LANG
临时修改linux的字符集 export LANG="zh_CN.UTF-8“
永久修改linux的字符集 编辑 vim/vi /etc/sysconfig/i18n
永久生效source /etc/sysconfig/i18n
34、/etc/是linux系统的默认配置文件,及服务启动命令的目录
1)、打包压缩/etc/整个目录
tar zcvf /tmp/etc.tar.gz /etc/
创建压缩包 压缩包存放的位置 压缩那个目录或文件
z 通过gzip 工具进行压缩
c 表示create 创建压缩包
v 表示verbose 显示执行过程
f 表示file 接上压缩包名字
2)、查看压缩包内容
tar ztf /tmp/etc.tar.gz
t 表示list 显示压缩内容
3)、解压压缩包
tar zxf etc.tar.gz
x extract 解压
4)、创建压缩包的时候提示错误信息
###问题:"创建压缩包"的时候会提示
tar: Removing leading `/' from member names
tar:把每个文件开头的/删除掉了。
/etc/hosts ------> etc/hosts
tar命令提示你:我在创建压缩包的时候 把压缩包中的文件 绝对路径----->相对路径
tar: Removing leading `/' from hard link targets
###小结:核心 为了安全----tar命令 把你使用的绝对路径----变化为-----相对路径
5)、 打包/etc/排除/etc/services文件
tar /tmp/etc-pai.tar.gz etc/ --exclude=services
6)、查看排除的名单
tar tf /etc/etc-pai.tar.gz |grep services
7)、排除到指定的文件中
tar zcf /tmp/etc-pai.tar.gz etc/ --exclude-from=/tmp/paichu.txt
8)、解压到指定的目录
tar xf /tmp/etc.tar.gz -C /opt
9)、解压多个目录下
tar /tmp/conf.tar.gz etc/hosts etc/sysconfig/network etc/sysconfig/i18n /etc/init.d
11、过滤文件中的内容
1)、sed+sed过滤
sed 's#I am ##g' /oldboy/oldboy.txt | sed 's#myqq is ##g'
2)、sed+awk
sed 's#,# #g' /oldboy/oldboy.txt | awk '{print $3,$6}'
3、替换tr
tr "," " " </oldboy/oldboy.txt | awk '{print $3,$6}'
4、awk指定多个分隔符
awk -F '[, ]" '{print $3,$6}' /oldboy/oldboy.txt
12、显示文件有多少行
wc -l /etc/services
13、显示系统正在运行的信息
ps -ef | grep "sshd
14、 单引号 所见即所得
双引号 里面的特殊符号会被解析