分类 linux 下的文章

centos7.0修改默认字符编码

转载自http://www.cnblogs.com/FlightButterfly/p/4227886.html

首先说一下写这篇博客的初衷。

由于公司这一期的产品准备支持的环境有CentOS 7、MySql 5.6、Java 8、Tomcat 8等等,并且因为人员严重不足,我本月的开发任务在原有的基础上又加上了好多环境检证的工作。

因为在这次环境检证过程中遇到了不少困难,特此记录一下。

重点:记录CentOS 7与以往不同的地方

1.取消ifconfig,使用ip addr 查看IP地址。

2.使用firewalld 取代 iptables。

3.系统默认编码设置文件,由/etc/sysconfig/i18n 更改为 /etc/locale.conf

因为自己电脑是Windows 8.1 + Ubuntu 14组合,所以对大部分Linux 命令还是比较熟悉的。但是面对CentOS 7,我发现过去使用Linux的经验反而成为限制我的最大障碍。

下面就让我来吐嘈一下万恶的CentOS 7吧:

首先,我像往常一样使用光盘安装了CentOS 7,事情进展到这里貌似还算顺利。接下来就是痛苦的开始了,装好系统以后,我准备使用 XShell 远程管理CentOS,但是这需要知道IP。于是我使用 ifconfig 查看IP,

※这里说一下,因为公司产品主要在日本销售,所以产品的运行环境上默认语言是日语。

我去,什么情况?难道是我敲错了?仔细核对了每一个字母,没错啊!!!后经度娘解惑,CentOS 7取消了ifconfig,改为ip addr查看ip地址。命令如下:

因为系统安装时网络连接设置的自动获取,先改成静态ip。配置方法如下:

第一步,vi /etc/sysconfig/network-scripts/ifcfg-enp0s25;

设置内容:

解释:

IPADDR0 --> ip
GATEWAY0 --> 网关
DNS1 -->DNS

第二步,重启网络服务 -->service network restart(特别重要,千万不要忘记。)
第三步.查看ip ip addr,再 ping 一下网络。这是网络配置基本就完成了。
事情进展到这里貌似也没什么难过的坎,我开始配置防火墙。先使用 iptables status 查看防火墙状态,

我去,什么鬼?我敲错了?有一次仔细核对了每一个字母,完全没错啊!!!不管怎么说,先看一下iptables脚本是否还存在吧。

咦,iptables脚本不见了。不用多想一定是CentOS 7使用了新型的防火墙,立即百度。

※度娘解惑:CentOS 7使用firewalld 取代 iptables。使用命令行工具firewalld-cmd获取firewalld状态,$ firwall-cmd --state。

这里如果读者朋友们对FirewallD不了解请自行百度,因为在编写这篇博客时我对它的了解也全部来自百度。

因为对FirewallD不是很熟悉,组里讨论决定防火墙还是使用 iptables。

※ 如果想使用iptables 和 ip6tables 静态防火墙规则,请自行安装iptables-services 并禁用firewalld。

禁用firewalld 相关命令:

systemctl start firewalld.service#启动firewall
systemctl stop firewalld.service#停止firewall
systemctl disable firewalld.service#禁止firewall开机启动
安装iptables-services

yum installiptables-services
※因为已经存在很多配置iptables 规则的教程了,小编就不再赘述了,读者朋友们可以自行百度。

iptables 规则:略

到这里,我已经被CentOS 7 恶心的不行不行的了,但是还没有结束。

由于时间关系今天先写到这里,剩下的我日后补上。

--------------------2015/01/16--------------------

首先集中回复一下评论中被问及的几个问题,

1.有网友评论称自己的电脑上ifconfig命令可以使用:

答:其实刚看到这条评论时我也不太清楚是怎么回事,于是立刻找度娘。度娘解释,CentOS 7 最小化安装时,未安装ifconfig,使用ip addr取代其作用。但是如果还是想要使用ifconfig 的话,可以自行安装。

2.网友提问:“设置静态IP的时候,IPADDR0这个下面的Prefixo=24是什么意思?”

答:PREFIX0=24 --> 前缀24位(相当于子网掩码共24为,即子网掩码为255.255.255.0)

可能有网友问,为啥要安装CentOS 7 最小化版本呢?

答:公司要求,我也没办啊。哭... 有同事自己电脑准备安装CentOS 7耍耍,我就建议他安装 GNOME Desktop 版。其实,CentOS 7 GNOME Desktop 也没有Windows或Ubuntu使用方便啊。在Windows或Ubuntu环境下都已经将命令行工具设置好了快捷键,用户只需要查询一下手册就能使用了。但是CentOS 7 它没有,竟然还需要自己配置。

下面设置方法来自百度:http://jingyan.baidu.com/article/cb5d61053598ed005d2fe05c.html

在桌面右上角找到系统设置,进入后找到键盘设置。进入后找到自定义快捷键。

名字:随便填,不重要。

命令:/usr/bin/gnome-terminal(不能填错,因为这是打开终端的脚本啊。)

设置如下

#####

说实话,小编在操作系统方面真心是一只小白,大多数时候遇到不明白的问题都是求教度娘的。

另外还是希望大家有什么问题(ps:可以是对CentOS 7使用方面的问题;可以是Linux 命令方面的问题;也可以是对小编其他博客相关的问题。都可以在评论区和我进行讨论,嘿嘿...)

centos7设置默认进入字符界面

rm -f /etc/systemd/system/default.target

设置命令行级别方法:

ln -sf /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target

ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

systemctl set-default multi-user.target

改回窗口级别方法:

ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target

ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

systemctl set-default graphical.target

转载自http://zhidao.baidu.com/question/1690542564781601148.html

CentOS 7 systemd 指令

CentOS 7 已经切换到 systemd,系统指令也有所变化。之前用于启动、重启、停止各种服务的service 作为向后兼容的指令还能使用,但是将来可能会消失。同时,chkconfig 也改成了systemctl 了。这里列举了一些常用的对应于 service 和 chkconfig 的新的 systemctl 指令。

在目前的 CentOS 7(或 RHEL 7)系统中,依然可以使用 service 指令。例如,

[root@localhost ~]# service network restart Restarting network (via systemctl): [ OK ] [root@localhost ~]# service httpd restart Redirecting to /bin/systemctl restart httpd.service [root@localhost ~]# service sshd restart Redirecting to /bin/systemctl restart sshd.service

但是系统会自动重定向该指令到新的指令 /bin/systemctl 来执行,并给出提示。

是时候切换到新的指令格式了,直接使用 systemctl 吧。这个指令的意思就是 system contrl。下面是一些常用的例子:

启动服务:

systemctl start httpd

停止服务:

systemctl stop httpd

重启服务(先停止,后启动):

systemctl restart httpd

重新加载(使用新的配置文件):

systemctl reload httpd

显示服务状态:

systemctl status httpd

与此同时,之前用于设定系统启动时自动运行某服务的指令 chkconfig 也改了,还是用systemctl。

chkconfig service on

改成了,

systemctl enable httpd
chkconfig service off

改成了,

systemctl disable httpd

检查服务状态的

chkconfig service

改成了,

systemctl is-enabled httpd

列举出所有服务的指令,

chkconfig –list

改成了,

systemctl list-unit-files --type=service

以前能指定服务 runlevel 的 –levels 也没有了。慢慢适应吧。

查看分区UUID

查看所有分区uuid

[root@localhost boot]# ls -l /dev/disk/by-uuid/ 
total 0
lrwxrwxrwx. 1 root root  9 Apr  7 14:04 2014-07-06-17-32-07-00 -> ../../sr0
lrwxrwxrwx. 1 root root 10 Apr  7 14:04 6c2e3bc1-e12c-44a0-b009-7f997e0e0123 -> ../../sda1
lrwxrwxrwx. 1 root root 10 Apr  7 14:04 6c6f8160-c1c0-4053-98ca-90ae760153d0 -> ../../sda2
lrwxrwxrwx. 1 root root 10 Apr  7 14:04 7cf34b87-81cb-45e3-a004-75d727c2b79d -> ../../sda3
lrwxrwxrwx. 1 root root 10 Apr  7 14:04 9e50045c-42cd-4b34-b6f6-017ac4edc504 -> ../../sda5

查看指定分区uuid

[root@localhost boot]# blkid /dev/sda1
/dev/sda1: UUID="6c2e3bc1-e12c-44a0-b009-7f997e0e0123" TYPE="ext4" 

转载自::http://blog.csdn.net/sanlinux/article/details/5203923

centos7下的rpmbuild初次使用~~~

看鸟哥的私房菜也有很长一段时间了,终于到了怎么安装程序的地方了,记录下
我是用root使用rpmbuild这个命令的,鸟哥的系统的工作目录是在/usr/src/redhat/
我的系统版本是centos7和鸟哥的不一样,实在/root/rpmbuild/,不知道和用户有没有关系,也没测试下.....
1.一个程序
makefile文件代码

main: main_1.o main_2.o main_3.o main_4.o
        gcc -o ${FILE_NAME}
#main: main_1.o main_2.o main_3.o main_4.o
clean:
        \rm ${FILE_NAME}
install:
        mkdir -p $(RPM_INSTALL_ROOT)/usr/local/bin/ 
        install -m 755 main $(RPM_INSTALL_ROOT)/usr/local/bin/main

main.spec文件代码,我的只是很简单的测试,很多选项都没有用到

Name:           main
Version:        0.1
Release:        1
Summary:        test rpmbuild

Group:          xxxxx
License:        GPL
URL:            www.xxxxxxxxxx.com
Source0:        main-0.1.tar.gz
Packager:  xxxxx
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}


%description
zhishi geceshi ===》这里是描述随便写

%prep
%setup -q


%build 
make   =》编译,我的是用make编译的,好像还有configure什么的,初次接触,不了解


%install
rm -rf %{buildroot} 
mkdir -p %{buildroot}
make install RPM_INSTALL_ROOT=%{buildroot}
#上面的部分是安装的部分,说白了就是让这个程序在很多地方都可以直接使用,不用输入绝对路径,这个程序如果是用解压安装的方式的话,如果make install了,就会在/usr/local/bin/文件下面创建一个文件main_test,这里就是做这一步,但是这里不是真正的安装,所以不能真的去系统文件夹去去创建文件,于是就模拟的在~/BUILD/main-0.1/模拟成根目录,再在/usr/local/bin/文件下面创建一个文件main_test

%files
/usr/local/bin/main_test ==》 这个得和上面的路径一样,不然会报错


%doc


%changelog
*Wed Jul 01 2015 xxxxxxx xxxxxx<965724085@qq.com> 0.1 ===>这里的日期格式要对,不然报错
-zhishigeceshi  ===>必须要有这个说明,不然报错