使用fedora23很久了, 但是感觉不是很流畅, 出现了一些不太稳定的体验, 所以想改到centos7. 因为centos7的很多东西 跟 fedora23 很相近了. 所以应该是无缝过渡
- 是选择32位的系统还是选择64位的系统?
- 还是要使用 32位的 它是90%的人的选择使用, 是普通人的通用选择, 几乎支持linux下的所有软件;
- 64位的系统, 是适合 特殊职业/特殊行业使用的, 比如:建筑设计和 大型图纸设计.
- 64位系统对内存的使用 比32位的要大些. 但是在跑服务的时候, 可能要快些. 但是生产服务器 通常内存都是比较大的, 所以, 还是安装64位的
- 但是32位的系统识别的内存要低些, 64位的系统则能识别 (/ 并利用??) 所有的内存空间?
- 以前没有用过64位的, 所以 这次 尝试 试用一次.
pae是什么?
pae: 怕饿: pa'e: 是 physic address extension: 物理地址扩展. 可以支持64位的系统, 让 大于4GB ~ 64GB的内存都支持 4kB的页面通常只有在 迅雷/firefox等 网络应用程序中, 描述网络速度的时候, 才使用 bit(位) 做计量单位, 其他关于文件/内存等 都使用的是 Byte来做单位. 如内存是 4GB...32位系统, 若打开PAE,则最多可以识别出64GB内存。但是 32位系统下的进程一次最多只能寻址4GB的空间。
64位linux则没有32位系统的限制。因此对于内存大于4GB的机器来说,最好安装64位系统。32位的寻址空间最多4GB,其中有些硬件黑洞(rom, framebuffer, pci, i2c 等等),操作系统能访问到的内存可能会减少到3.5GB左右,内核要占一些内存,剩下的才是用户级可以使用的.
在centos7 和 fedora23中的 firewall和iptalbes的关系: 参考: https://www.tuicool.com/articles/qYnuMj 和 http://ju.outofmemory.cn/entry/329480
iptables: 主要是考虑 chain(链, 或者说, 存在几条 "线"). INPUT, OUTPUT FORWARD. 主要配置的是 : INPUT链 和 OUTPUT链
???? firewall是centos7里面的新的防火墙命令,它底层还是使用 iptables 对内核命令动态通信包过滤的,简单理解就是firewall是centos7下管理iptables的新命令????openjdk采用的是GPL协议, 而SunJDK采用的是: JRL协议: javaResearch License. 包括源码的开放/插件的使用/商标--version等上有所不同. 但是绝大多数源码是相同的.
centos7 只有 x86_64位的系统, 默认使用的 文件(存储)系统是: xfs: xfs是由SGI: silicon graphics inc. 美国硅图公司, 设计出的 Xfs文件系统, 原先公司使用的是 EFS: existing filesystem. xfs为 Linux 社区提供了一种健壮的、优秀的以及功能丰富的文件系统,并且这种文件系统所具有的可伸缩性能够满足最苛刻的存储需求
高级日志文件系统 : ,由于文件系统开启了日志功能,所以你磁盘上的文件不再会意外宕机而遭到破坏了。不论目前文件系统上存储的文件与数据有多少,文件系统都可以根据所记录的日志在很短的时间内迅速恢复磁盘文件内容。
XFS 是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间。
XFS使用高的表结构(B+树),保证了文件系统可以快速搜索与快速空间分配。XFS能够持续提供高速操作,文件系统的性能不受目录中目录及文件数量的限制。
CentOS/RHEL的生命周期是7到10年,基本上可以覆盖硬件的生命周期,也就意味着一个新硬件安装以后,不用再次安装操作系统。
CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一
每个版本的 CentOS都会获得十年的支持(通过安全更新方式)。新版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的 Linux 环境。CentOS是Community Enterprise Operating System的缩写。
cre'dential: 凭证; 证据; 证件;
vault: 金库/保险柜; 苍穹, 拱顶/
除了国内的 mirrors.163.com等镜像外, 要下载各种各样的版本的话, 还是要到 http://vault.centos.org/7.0.1406/isos/x86_64/ : 官网下载... 地址: vault.centos.org/版本号/isos/x86_64/... 这个是centos官方的原始机器.
但是下载, 还是 跳转到 镜像的 http://archive.kernel.org/centos-vault/: ( In order to conserve( 节约/节省/保护: con-serve: 共同服务...) the limited bandwidth available ....)
cp命令的-i选项?
这个-i --interactive, 表示的是, 在重写/覆盖之前提示: prompt before overwrite! 注意, 只是在 重写之前, 才提示, 如果在拷贝的时候, 目标目录中,没有 已经存在的文件, 不会发生重写的时候, 就不会 提示!在 shell中的 所有 命令, 都支持 通配符 * ? [a-b] , 注意是 所有的命令都支持 通配符! 包括我们的 mv命令 rm命令等等, 所以
读懂 navigation中 这个 has an associated command... do you want to automatically set it to ... ?
首先, 设置这些 导航 shortcuts 的时候, 不要 设置成 其他程序中 , 常用 的 已经 经常使用的 快捷键, 比如: ctrl+x, ctrl+z, ctrl+c, ctrL+w等等.
其次, 上面的这个associtated command的意思是: 设置比如 switch windows of an application 的快捷键是 alt+x, 那么这个alt+x指的是 窗口从左到右, 从前到后进行switch的快捷键, 那么相反的, 相关联的, 窗口从右到左, 从后到前的快捷键呢? 通常的做法是: 就是 在 原有的快捷键的基础上 , 加上一个shift.. 如这里就是 alt+shift+x...
mv命令移动文件的时候, 不会改变文件的 context! 因为它不创建新文件; 而 cp命令复制文件的时候, 会"改变复制的新文件的context, 因为这里是 创建的新文件, 所以 会使得新文件的 context 跟 源文件的 context 不一样
通常来说, /etc下的文件,(绝大多数)的 context是: system_u: object_r: etc_t:s0
chcon的时候, 如果修改context比较麻烦, 可以参考(比到起/ 比对) 其他的某个文件 进行设置, 使用参数 --reference=RFILE: chcon --reference=bar foo...
虽然/etc的目录权限是 : 755, 但是并不一定保证 其中的文件 owner:group全都是 : root:root, 也有可能是 其他用户, 如foo:foo的
方法就是 : su -c '使用 mv, 不要使用cp... "
因为: 文件谁创建, 包括: touch, vi/vim, cp命令都会创建, 所有者就是谁
但是 如果是使用 mv的话, 由于 mv 不会改变文件的 属性, 包括文件的 owner:group, 还有文件的context, 所以 : 虽然 /etc的目录权限是 755, 其他普通用户, 是不能 直接 使用 mv/cp等命令的, 但是 我可以使用 su -c(root身份执行 ) 'mv...命令', 那么 这时候 被移动的文件, 原来如果是foo:foo的, 那么移动mv到 /etc后, 就还是 foo:foo的.
geditor的很多设置, 其实是在 dconf-editor中的 gnome->geditor->prefernce中 进行设置的. 比如行号/ 高亮当前行, 括号匹配等等.
. 关于"设置"中的 导航navigation中的 几个操作的区别:
switch applications: 只是在应用程序之间切换,如果是 一个应用程序有多个窗口, 也只是显示 一个应用程序图标; 一般是用 alt+tab
switch windows: 是在所有的窗口之间 切换, 如果是 一个应用程序有多个窗口, 则将把这些窗口全部扩展, 全部显示出来, 可以使用 super+w, 不要是哟个 ctrl_w(ctrl_w是terminal下关闭标签的快捷键)
switch windows of an application: (说的是 如果一个应用程有多个窗口的时候, 用 这个来switch), 可以设置为alt+x
重要 是: 要读懂这句话: the command "..." has an associated shortcuts "switch to previous window..." 什么的, do you want to automatically set to ...意思是说, 这个切换命令有一个相关联的命令, 即向前向上的 快捷键是什么...
...
切换终端, 切换字符界面, 使用的快捷键是 ctrl_alt+f1/f2/f3/f4...注意不是 alt_f2/f3.. 你想, alt+f2/f3等 是当前登陆的 终端的 快捷键,比如alt+f2: 是 运行命令, 相当于win中的win+R
who和whoami的区别?
who是显示的 当前登录 用户;
whoami 显示的是 当前"正在操作的" 有效 用户名称和id: 即 euid, euname..
It is usually good practice to create a dedicated user and group for running httpd, as with|| most system services.||
如果要更换不同的用户或组来运行apache,你必须先以root运行,然后他将会切换到所设置用户。跟大多数的系统服务一样,为apache 单独建立一 个用户和组来运行它是一个很好的做法。(注意,此项是设置在非NetWare和非win系统下才需配置,否则无需配置)
((practice: 实践; 也可以作: "做法, 用法" 解, dedicate: 致力于..., 专注于...; 奉献... 献身于..., 用法是: dedicate sb./themselves to + 名词, to 是介词 )): i am a doctor, dedicated myself to curing the sick, at least try to. they have been dedicating themselves to a higher purpose: 更高的目标: a higher purpose.
dedicated: 引申为 " 专门的, " create a dedicated user: 创建一个 专门的用户,... /// 单独去创建一个用户...
as with..., 介词短语作状语: 与..一样, 正如...一样 , 如同.. ..
设置的 alias和 自定义函数的区别?
别名用 alias来查看;
而自定义函数 要使用set来查看.
MariaDB在 5.5版本之前, 跟mysql的版本基本一致, 但是后来版本有了较快的增长, 现在的MariaDB 10.0大致相当于MySQL 5.6版本,完全兼容mysql的api和命令行. fc23的源仓库中安装的MariaDB 安装的是 : 10.0.28的版本.
Navicat: navi- 是 导航的意思: navigation : 导航猫:是mysql数据库的 前端gui 连接工具.
locale命令?
是用来设置 本地语言的:
包括: LC_CTYPE, LANG 等. 操作方法是 : export LC_CTYPE...
永久改变locale? :
可以在 ~/.bashrc 中永久修改: 包括设置: LANG, LC_CTYPE, LC_ALL了...
locale的设置格式是: xxx_xxx.xxx , 比如: zh_CN.UTF-8, 包括: zh: 表示语言, zh中文和 en英文, CN 表示 地区, 最后的那个是 字符集, 比如: zh_CN.GB2312等等...
util=utility 功用, 效用, 工具
为什么有时候httpd需要设置ServerName?
缺省情况下,并不需要指定这个ServerName参数,服务器将自动通过 名字解析 过程来获得自己的名字,但如果服务器的名字解析有问题(通常为反向解析不正确),或者没有正式的DNS名字,也可以在这里指定I P地址。当ServerName设置不正确的时候,服务器不能正常启动。
# ServerName gives the name and port that the server uses to identify itself.90 # This can often be determined automatically, but we recommend you specify91 # it explicitly to prevent problems during startup. // 建议显式地指定服务器名称...92 #93 # If your host doesn't have a registered DNS name, enter its IP address here.94 #95 #ServerName www.example.com:80
/boot/vmlinuz-4.2.3-... 等是linux的启动内核文件, 其中的z表示的时 压缩, 用bz进行压缩的文件!
要明白一个总的原则了, 那就是 在系统中, 除了 用户自己创建的文件外, 即 /home/foo/下的文件, 其他所有 文件, (即在系统安装后, 就有的文件和目录) 都是 超级用户 root创建的! 你想吧, 在系统刚刚建立的时候, 还没有普通用户, 所以这个时候的机器上的东西的的都应该是root所创建的. 因此这些文件和目录都是属于 root:root的, 所以, 对于目录的权限, 最多就是 755, 对于文件的权限, 最多就是 644, 可执行文件最多就是 755. 也就是说 系统中 的绝大多数目录, (除了用户家目录~: /home/foo 之外), 像 /root, /boot, /usr, /bin, /sbin, /var, /etc/等所有的目录 中(由系统原先创建的东西) 都只能 由 root来 写!! 写权限只能是 root的!!!
比如 像 /var, /opt 想起来是 可以随意改变的东西, 随意写的目录, 但是 同样也只能 由root来写 操作!
普通用户: 不但不能 touch, vi, cp等方式来创建文件, 即使是使用 mv 命令, 也是不可以 移动到 /opt, /var这些只能由root来 执行 "写"操作的命令!
/var/www/html中的文件的selinu属性?
- 要用 root用户 才能 在/var/www/html中创建文件, 因为www/html目录也是 "系统文件夹"
- 其selinux的context是: unconfinded_u: object_r: httpd_sys_content_t: s0, 而对应的httpd进程的context是 : httpd_t:s0
- 因为/var/www/html中的文件, 允许是非root用户创建, 然后由 root用户 cp/mv过来的, 所以 其用户是unconfined_u非管制用户;
- 只要是root用户操作的(也只有root用户)才行, 在/var/www/html中的文件 的 context_t都是 httpd_sys_content_t.
linux中的命令真的就是 一些单词首字母的缩写, 如scl: software collection, 所以 我们自定义的函数,srm svi, scp, smv等就是su -c 'mv...' 等, 看来正好 跟linux的 理念是吻合的!!
要注意 在自定义 smv, scp等命令的时候, 应该有两个参数, 所以函数中要使用到 $1, 和 $2 .
要杀死进程, 有两种方式, 一种是根据 pid, 一种是根据 进程名称:
根据进程pid的是: kill 命令, 可以指定杀死进程 的信号, kill -9 pid
但是有时候, 不需要知道进程的id, 或者说同一个程序名称的 多个 进程同时运行, 需要杀死 这个程序的 所有 进程, 那么就可以使用 : killall application_name. (而不必管进程的pid), 凡是同名的进程都将被杀死.
对于笔记本/键盘, 要保证输入 的高效性和正确性, 首先就是要保证 : 每次 击键 的 有效性和准确性. 一定要 保证每次击键 都确实是生效了的, 倒位了的, 即保证击键的有效性和准确性. 其次, 因为使用拼音输入法, 选字的时候比较多, 所以, 要看准了选对了再操作 ..., 要求就是 击键时, 手指要 垂直/尽量垂直击键, 斜着的时候, 有时候, 就不容易击键到位...没有按到起...
指法更严密, 击键要有弹性, 使用静止的力"按", 就会发生不到位的情况;
查看系统当前的负荷, 用户数目, 正在作什么?
可以用两个命令:
- 是uptime
- 是 w(w可以看作是 who命令的加强版). 提供更多的信息. 最后的三个数字, 表示 最近的: 1, 5, 15 秒钟 内的平均负荷. 这三个数字, 应小于 逻辑cpu的个数, 比如应低于 4. ...
w命令的显示项目按以下顺序排列:当前时间,系统启动到现在的时间,登录用户的数目,系统在最近1秒、5秒和15秒的平均负载
关于selinux的开启和关闭, 其实是不会影响/修改httpd的, 所以, 当因为selinux的问题, 而不能访问网页文件的时候, 你关闭selinux, 或者重新修改文件的context后, 并不需要 重启httpd服务, 就可以生效了, 马上就可以看到效果了. 所以 , 有时候, 不能 只是机械的, 直接的 mv到 html目录, 那样的话, 因为seinux的问题, 而被限制访问. 这时, 只要修改文件的selinux type为 : httpd_sys_content_t(注意是content , 不是复数contents)就马上可以访问了.
另外, 不要屏蔽, 关闭, stausbar 中 ,关于selinux的 错误/troubleshooting reporting 错误/派错 报告. 一定要 掌握 selinux的派错 能力.
Sundry
- 在httpd访问时, 不一定要求 被访问的文件一定是root的, 是普通用户的也可以, 只要对 httpd 的运行者 apache:apache有访问权, 是可读的就可以了.
比如 , 这个index.html是foo的, 还是可以访问!
- php的错误和异常的概念上的区别? 参考: http://www.cnblogs.com/taijun/p/4234603.html
- 错误是程序员自己的代码写错了, 主要是由语法等问题引起的, 包括warning和notice.
异常是由业务逻辑不合预期, 与正常流程不同的情况. 比如被0除. (在语法上是完全通得过的).
php对异常的操作机制是不健全的, 绝大多数情况下, php不会自动捕获异常, 需要程序员自己主动抛出异常, 即通过if...else的判断去手动抛出异常, 但是这种机制没有太大的意义, 因为如果这样做, 说明程序元自己已经充分认识到错误的发生可能了.....然后自己 去catch异常:php对错误的处理, 是提供了 set_errro_handler( function_name); 进行错误托管, 而使用 restore_error_handler来取消错误托管.
php中错误和异常是两个不同的概念,这种设计根本上导致了php的异常和错误与其它语言相异。j
java中,异常时错误唯一的报告方式。说到底,两者的区别就是对异常的认识不同产生的。php异常绝大部分是通过某种方式手动抛出,才能捕获到。是一种半自动化的异常处理机制。无论是错误还是异常,都可以使用 handler 接管系统已有的处理机制。在php中通常会在以下场景中使用异常:对程序的悲观预测 :如果认为自己的代码无法一一处理各种可预见的情况、不可预见的情况。程序的需要和对业务的关注 : 如果对数据的一致性要求很高时,可以用try...catch把异常造成的逻辑中断破坏将到最小(比如金融交易程序片断) ,并且经过补救处理后,不影响业务逻辑的完整性。语言级别的健壮性要求 : 通过精确控制运行时的流程,在程序中断时,有预见的用try...catch缩小可能出错的范围,及时捕获异常并做出相应的补救。