Linux 取代Windows 的換行 ^M

Linux 移除檔案 CONTROL-M 字符 Sam Tang 23 June 2015 Linux No Comments

當在 Windows 環境下傳送文字檔到 Linux 時, 有時會看到每一行結尾都會有 CONTROL-M (^M) 字符, 雖然不影響使用, 但在 Linux 下編輯時十分難看, 要移除 CONTROL-M (^M) 有多種方法, 以下提供的兩種方法不用安裝套件, 用內置的 vi 及 sed 的實現:

  1. vi / vim:

用 vi 或 vim 開啟檔案後, 按 ESC 鍵, 並輸入以下指令後按 Enter:

直接用vi/vim開啟文件,進入指令列命令模式
:%s/^M//g    其中^請按Ctrl+V,M請按Ctrl+M。

:%s/^M//g

  1. sed 指令:

sed 做 search & replace 很方便, 例如檔案名稱是 winfile.txt, 指令是這樣:

sed -e ‘s/^M//g’ filename
1
sed -e ‘s/^M//g’ filename
如果要大批更改, 可以用 “*”” 符號, 例如將所有 .php 副檔名的檔案裡的 ^M 移除, 可以這樣:

sed -e ‘s/^M//g’ *.php
1
sed -e ‘s/^M//g’ *.php

在網站中嵌入最輕量化的 Facebook 粉絲專頁

社群網站當道的現在,很多人都需要嵌入自己的粉絲專頁在官方網站上。嵌入方式百百種,為了符合 RWD,以下這是我的作法。

先到粉絲專頁外掛程式

粉絲專頁外掛程式,然後輸入你的粉絲專頁網址。

當然這是我的作法,減少大量的 Facebook 悲慘的 Waterfall。

取得程式碼

第一個紅線是放在 <body> 之後

當然看是用什麼程式或是 CMS 寫的,就是通則把以下這段放在 <body> 之後

第二個紅線,放置位置

<div class="fb-page" data-href="https://www.facebook.com/dachin1985/" data-tabs="" data-width="" data-height="" data-small-header="true" data-adapt-container-width="false" data-hide-cover="false" data-show-facepile="false"><blockquote cite="https://www.facebook.com/dachin1985/" class="fb-xfbml-parse-ignore"><a href="https://www.facebook.com/dachin1985/">大慶柴魚</a></blockquote></div>

看要放在測邊欄位或是底部隨人囉~

最後呈獻

移除沒再使用的 snap 套件

什麼是 snap

參考 wikipedia 的 snap 說明官方網站說明。

snap 的優略就很多,可以自行 Google:// 如,Linux Mint決定不支援Ubuntu Snap

snap 不會自己移除舊版

Ubuntu 用久了之後會有一堆舊版的 snap 套件,如下圖:

當然可以工人智慧手動一個一個移除,但如果 snap 安裝很多的時候勒?!

sudo snap remove google-cloud-sdk – revision 187

使用 shell script 一次移除舊版 snap

shell script 如下:

#!/bin/bash                                                                                                                     
# Removes old revisions of snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu

LANG=C snap list – all | awk '/disabled/{print $1, $3}' | while read snapname revision; do sudo snap remove "$snapname" – revision="$revision"
done

第一段會顯示多少 snap 要移除

snap list – all | awk '/disabled/{print $1, $3}'
google-cloud-sdk 187
core18 2066

將 shell script 存檔

vim snap_remove_eol.sh && chmod +x snap_remove_eol.sh

snap purge 用法

sudo ./snap_remove_eol.sh

Ubuntu Linux 關閉 IPv6

現在預設裝好之後,都會啟用 IPv6,立意很好,但是某些服務會一直產生 error message

修改方式

編輯 /etc/sysctl.conf

vim /etc/sysctl.conf

新增下列

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

關閉 GRUB 的 IPv6 載入

Perform the following steps with root privileges to disable IPv6 in Ubuntu 18.04/16.04 Permanently using grub method.

編輯 /etc/default/grub

sudo vim /etc/default/grub

編輯下列兩行為:

GRUB_CMDLINE_LINUX="ipv6.disable=1"
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"

更新 grub 設定

update-grub

重新開機

Linux 下使用 dd 清理 MBR

您可以使用 dd 命令刪除 MBR。一個 MBR 是512位元的磁碟引導區,它是硬碟分區數據存儲設備的第一個 sector。

MBR 容量說明

容量:446 + 64 + 2 = 512 bytes

446 bytes – Bootstrap.
64 bytes – Partition table.
2 bytes – Signature.

直接清理所有 MBR 及所屬於的 partition

dd if=/dev/zero of=/dev/sdX bs=512 count=1

只清理 MBR 資料

dd if=/dev/zero of=/dev/sdc bs=446 count=1

避免 Postfix 出現 IPv6 Error Message

Postfix ipv6 error message

mail postfix/sendmail[79951]: warning: inet_protocols: disabling IPv6 name/address support: Address family not supported by protocol

如何修正

vim /etc/main.cf

#mynetworks = 127.0.0.1 [::1]
mynetworks = 127.0.0.1

wp-cli 安裝與使用

https://wp-cli.org/

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar – info
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

使用

/usr/local/bin/wp – allow-root

範例

#!/bin/sh
# all web directories
target_path="/var/www/j7.lb168.tw"
## 安全緣故,改用 mysql_config_editor
#allow_root="--allow-root"

cron="cron event run – due-now"

# date format for backup file (dd-mm-yyyy)
date="$(date +"%Y.%m.%d-%H-%M")"

# mysql, mysqldump and some other bin's path
WP="/usr/local/bin/wp – allow-root"
CHOWN="$(which chown)"
OWNER="www-data"

cd $target_path
$WP $cron
$CHOWN -R $OWNER:$OWNER $target_path

exit 0;

How to make Windows VM guest recognize and run on more than 2 cores under KVM

Windows guests do not recognize all of the available cores under KVM and will usually detect only 2 cores. This happens since KVM exposes the available virtual CPU cores as physical CPUs (sockets). So, if the physical host running KVM has 2 CPUs with 4 cores each (a total of 8 cores), and the guest is configured for 8 CPUs, Windows will see 8 physical CPUs and will run only on 2, due to the hard coded limits in some of the editions of Windows Server.

To make Windows use all available cores, we need to configure the guest to expose the CPUs as cores and not as physical CPUs (sockets):

In virt-manager:

  1. Open the guest configuration screen
  2. Select Processor options tab
  3. Expand the “Topology” setting
  4. Set the sockets to 2
  5. Set the cores to 4 (for the guest to have a total of 8 cores) or 3 (for the guest to have a total of 6 cores).
  6. You can also expand the “Configration” settings and click on “copy host CPU configuration” to make the guest fully use all of the physical host’s CPU capabilities.

If you run the guest from command line, the KVM option for setting the CPU topology is: -smp 8,socket=2,cores=4

Gmail 的 IMAP、SMTP、POP3 各項 port 及安全性協定

內送郵件 (POP) 伺服器pop.gmail.com需要安全資料傳輸層 (SSL):是通訊埠:995
外寄郵件 (SMTP) 伺服器smtp.gmail.com需要安全資料傳輸層 (SSL):是需要傳輸層安全性 (TLS):是 (如果可用)需要驗證:是傳輸層安全標準 (TLS)/STARTTLS 通訊埠:587。
伺服器逾時大於 1 分鐘 (建議設定 5 分鐘)
Incoming Mail (IMAP) Serverimap.gmail.com
Requires SSL: Yes
Port: 993
Outgoing Mail (SMTP) Serversmtp.gmail.com
Requires SSL: Yes
Requires TLS: Yes (if available)
Requires Authentication: Yes
Port for SSL: 465
Port for TLS/STARTTLS: 587
回到頂端