Linux 常见问题汇总 2018-07-24 默认分类 暂无评论 850 次阅读 [TOC] Q1. linux 操作系统语言更改 >有时候我们的服务器在安装时安装的默认语言不支持中文 导致程序、文档中的汉子显示乱码, 从而使系统报一些莫名其妙的错误,这是可以更改操作系统的默认语言 - `echo $LANG ` 查看当前操作系统的语言 - 临时更改默认语言(关闭当前会话失效) `export LANG=en_US.UTF-8` - 永久生效,编辑文件保存并退出`vi /etc/sysconfig/i18n` 修改为 `LANG="en_US.UTF-8"` - 使其立即生效 `source /etc/sysconfig/i18n` **注意:centos7的环境对应的配置文件为: /etc/locale.con** Q2. linux centos 系统时区 时间同步 1. 修改时区为中国时区 Asiz/Shanghai 同步当前的的时间 `cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ` `ntpdate us.pool.ntp.org` Q3. linux 计划任务 & crontab 配置不成功 - 初步排除命令错误 检查命令是否存在问题 - crontab 规则 命令后面添加 >> xx.log 将执行结果输出到指定文件 可查看语句执行结果 `0 6 * * * $HOME/for_crontab/createTomorrowTables >> $HOME/for_crontab/mylog.log 2>&1` - 另外可查看cron日志 输出的内容 ``` 1. linux 看 /var/log/cron这个文件就可以 用tail -f /var/log/cron观察(不能用cat查看) 2. unix 在 /var/spool/cron/tmp文件中,有croutXXX001864的tmp文件, tail 这些文件就可以看到正在执行的任务了。 3. mail任务 在 /var/spool/mail/root 文件中,有crontab执行日志的记录, tail -f /var/spool/mail/root 即可查看最近的crontab执行情况。 ``` Q4 linux 终端上挂起进程后台运行进程的方法 nohup命令可以让你的shell命令忽略SIGHUP信号,即可以使之脱离终端运行;“&”可以让你的命令在后台运行。 (1)输入命令:`nohup xxx.sh &` 回车 (2)终端回到shell命令行 输入 ` exit ` 命令退出终端 (3)现在可以关闭你的终端软件了,等过足够的时间,让你的shell命令执行完了再上去看结果吧。 **以脱离终端的方式在后台运行shell命令有这样几个好处:只要你执行过了命令, 那么你的网络中断不会对你有任何影响,并且你就可以关闭终端软件了。** Q5 linux kill 包含关键字的关键进程 > 有时候因为一些情况,需要把 linux 下符合某一项条件的所有进程 kill 掉,又不能用 killall 直接杀掉某一进程名称包含的所有运行中进程(我们可能只需要杀掉其中的某一类或运行指定参数命令的进程),这个时候我们需要运用 ps, grep, cut 和 kill 一起操作。 ``` Shell ps -ef|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9 ``` 运行这条命令将会杀掉所有含有关键字"LOCAL=NO"的进程,是不是很方便? 下面将这条命令作一下简单说明: ``` 管道符"|"用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。 "ps -ef" 是linux里查看所有进程的命令。这时检索出的进程将作为下一条命令"grep LOCAL=NO"的输入。 "grep LOCAL=NO" 的输出结果是,所有含有关键字"LOCAL=NO"的进程。 "grep -v grep" 是在列出的进程中去除含有关键字"grep"的进程。 "cut -c 9-15" 是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。 "xargs kill -9" 中的 xargs 命令是用来把前面命令的输出结果(PID)作为"kill -9"命令的参数,并执行该命令。"kill -9"会强行杀掉指定进程。 ``` 其它类似的情况,只需要修改"grep LOCAL=NO"中的关键字部分就可以了。 另一种方法,使用awk ``` ps x|grep gas|grep -v grep |awk '{print $1}'|xargs kill -9 ``` Q6 linux 系统实现虚拟内存 两种方法 - 交换分区(swap分区)和交换文件 - 交换文件 查看内存:`free -m `, - `-m `显示单位为MB, - `-g` 显示单位GB 交换文件 创建一个文件: `touch /root/swapfile` 使用dd命令,来创建大小为2G的文件swapfile: `dd if=/dev/zero of=/root/swapfile bs=1M count=2048` > 命令执行完需要等待一段时间 > if表示input_file输入文件 > of表示output_file输出文件 > bs表示block_size块大小 > count表示计数。 > 这里,我采用了数据块大小为1M,数据块数目为2048,这样分配的空间就是2G大小。 格式化交换文件:mkswap /root/swapfile 启用交换文件: `swapon /root/swapfile` 开机自动加载虚拟内存,在/etc/fstab文件中加入如下命令: `/root/swapfile swap swap defaults 0 0` 重启后生效`reboot` 如果要删除交换分区和交换文件,逆着上面的顺序操作: 先删除 `/etc/fstab` 文件中添加的交换文件行 停用交换文件`swapoff /root/swapfile` 删除交换文件`rm -fr /root/swapfile` 交换分区 采用交换分区的办法其实就是新建一个分区,然后将该分区挂载作为交换空间, 方法步骤与传统的新建分区一样。只不过格式化分区和挂载分区分别采用`mkswap`和`swapon`命令。 在创建分区之前,我们常常要用过`fdisk -l`和`df -Th`命令来查看硬盘信息和挂载信息, 来确定分区的大小。 在shell下以root身份创建分区 ` hdb1fdisk /dev/hdb1` 然后` w `保存退出 设置交换分区,大小视情况自己设置。`mkswap /dev/hdb1` 启用交换分区`swapon /dev/hdb1` 开机自动加载虚拟内存,在/etc/fstab文件中加入如下命令: `/dev/hdb1 swap swap defaults 0 0` Q7 centos7 配置服务自启动 一、设置crond.serivice服务为开机自启动 步骤1:查看crond.serivce服务的自启动状态 ``` [root@localhost ~]# systemctl is-enabled crond.service disabled ``` 此时crond.serivce的自启动状态为disabled 步骤2:设置服务自启动 ``` 开启crond.serivce服务自启动 [root@localhost ~]# systemctl enable crond.service [root@localhost ~]# systemctl is-enabled crond.service enabled 列出所有的启动文件: systemctl list-unit-files 列出所有状态为enable的启动文件 systemctl list-unit-files | grep enable ``` 关闭crond.serivce的自启动状态 ``` systemctl disable crond.service ``` 二、开启和关闭crond.service服务 ``` 查看crond.service的启动状态 systemctl status crond.service 开启crond.service服务命令 systemctl start crond.service 停止crond.service服务命令 systemctl stop crond.service ``` 文章目录 Q1. linux 操作系统语言更改 Q2. linux centos 系统时区 时间同步 Q3. linux 计划任务 & crontab 配置不成功 Q4 linux 终端上挂起进程后台运行进程的方法 Q5 linux kill 包含关键字的关键进程 Q6 linux 系统实现虚拟内存 交换文件 交换分区 Q7 centos7 配置服务自启动 一、设置crond.serivice服务为开机自启动 步骤1:查看crond.serivce服务的自启动状态 步骤2:设置服务自启动 开启crond.serivce服务自启动 列出所有的启动文件: 列出所有状态为enable的启动文件 二、开启和关闭crond.service服务 标签: linux, 汇总 转载请注明文章来源 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭