#!/bin/bash files="img-1*" start=1 rename=1 echo $count for i in `ls $files` do echo $i rename=$(($start * 2 - 1)) #rename=$(($start * 2)) start=$(($start + 1)) echo $rename refilename=`printf "%02u" $rename` mv $i $refilename.tif done
2019年11月10日 星期日
bash shell 批次更改圖片檔名範例
2019年10月22日 星期二
Ubuntu 18.04 安裝 Nginx+MySQL+PHP
安裝 Nginx, MySQL:
設定MySQL安全性設定:
安裝PHP:
設定 php.ini,編輯 /etc/php/7.2/fpm/php.ini,將cgi.fix_pathinfo設為0
重新啟動PHP服務:
設定一個新的nginx網站,以adia.cc為例。編輯 /etc/nginx/sites-available/adia.cc檔案:
建立adia.cc網站設定檔連結,並測試設定檔是否正確:
正確的話,應該會出現類似結果:
接著建立一個PHP測試網頁,編輯 /var/www/adia.cc/html/info.php:
接下來利用瀏覽器測試 http://YOUR_IP/ 和 http://YOUR_IP:8080/info.php是否正常~
#
sudo apt-get update sudo apt-get install nginx sudo apt-get install mysql-server
設定MySQL安全性設定:
sudo mysql_secure_installation
安裝PHP:
sudo apt-get install php-fpm php-mysql php-json php-gd
設定 php.ini,編輯 /etc/php/7.2/fpm/php.ini,將cgi.fix_pathinfo設為0
;cgi.fix_pathinfo=1 cgi.fix_pathinfo=0
重新啟動PHP服務:
sudo service php7.2-fpm restart
設定一個新的nginx網站,以adia.cc為例。編輯 /etc/nginx/sites-available/adia.cc檔案:
server { listen 8080; root /var/www/adia.cc/html; index index.php index.html index.htm; access_log /var/log/nginx/adia.cc.access.log; error_log /var/log/nginx/adia.cc.error.log; server_name adia.cc www.adia.cc; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; } location ~ /\.ht { deny all; } }
建立adia.cc網站設定檔連結,並測試設定檔是否正確:
sudo ln -s /etc/nginx/sites-available/adia.cc /etc/nginx/sites-enabled/ sudo nginx -t
正確的話,應該會出現類似結果:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
接著建立一個PHP測試網頁,編輯 /var/www/adia.cc/html/info.php:
<?php phpinfo(); ?>重新啟動 Nginx 服務:
sudo service nginx restart
接下來利用瀏覽器測試 http://YOUR_IP/ 和 http://YOUR_IP:8080/info.php是否正常~
phpinfo() 執行結果 |
#
Ubuntu 18.04 安裝 SSH Server , 設定為文字開機模式 (disable GUI boot mode)
確定一下 Ubuntu 版本是否為 18.04:
安裝 SSH Server :
關閉GUI開機模式,並且重開機生效:
假若要再重新設定GUI開機模式:
設定 NTP 時間同步主機為 clock.stdtime.gov.tw,編輯 /etc/systemd/timesyncd.conf 檔案
重新啟動時間同步服務後,順便看一下執行狀態:
執行結果已經顯示同步 time server 從原來的 ntp.ubuntu.com 改為 clock.stdtime.gov.tw:
#
lsb_release -a執行結果:
Distributor ID: Ubuntu Description: Ubuntu 18.04.3 LTS Release: 18.04 Codename: bionic
安裝 SSH Server :
sudo apt-get install openssh-server sudo update-rc.d ssh defaults sudo service ssh start
關閉GUI開機模式,並且重開機生效:
sudo systemctl set-default multi-user.target sudo sync;sync;sync;reboot
假若要再重新設定GUI開機模式:
sudo systemctl set-default graphical.target sudo sync;sync;sync;reboot
設定 NTP 時間同步主機為 clock.stdtime.gov.tw,編輯 /etc/systemd/timesyncd.conf 檔案
sudo vi /etc/systemd/timesyncd.conf將內容 #NTP= 前面註解符號(#)刪除,順便設定同步主機後存檔:
#NTP= NTP=clock.stdtime.gov.tw
重新啟動時間同步服務後,順便看一下執行狀態:
sudo service systemd-timesyncd restart sudo service systemd-timesyncd status
執行結果已經顯示同步 time server 從原來的 ntp.ubuntu.com 改為 clock.stdtime.gov.tw:
● systemd-timesyncd.service - Network Time Synchronization (...略...) Status: "Synchronized to time server 211.22.103.158:123 (clock.stdtime.gov.tw)." (...略...)
#
2018年11月14日 星期三
ubuntu 7-zip 安裝與使用
安裝指令
執行壓縮: 7z a 壓縮檔案 目標來源
執行加密壓縮: 7z a 壓縮檔案 目標來源 -p加密密碼
執行密碼解壓縮: 7z x 壓縮檔案 -p加密密碼
sudo apt-get install p7zip-full
執行壓縮: 7z a 壓縮檔案 目標來源
7z a demo.7z demo_path_or_file
執行加密壓縮: 7z a 壓縮檔案 目標來源 -p加密密碼
7z a demo.7zp demo_path_or_file -pMYPASSWD
執行密碼解壓縮: 7z x 壓縮檔案 -p加密密碼
7z x demo.7zp -pMYPASSWD
2018年10月19日 星期五
一次更新所有 Python Packages
適用於 Linux、Mac OS X :
指令 : pip list | cut -d " " -f 1 | xargs -n1 sudo pip install -U
參考來源:stack overflow - Upgrading all packages with pip
指令 : pip list | cut -d " " -f 1 | xargs -n1 sudo pip install -U
參考來源:stack overflow - Upgrading all packages with pip
2016年5月15日 星期日
遠端 shutdown linux 系統
提供給自己的筆記:
自 Ubuntu Linux 遠端 shutdown 的 Raspberry Pi ,可透過 ssh 指令協助達成:
ssh <username>@<ip> sudo /sbin/shutdown -h now
#
自 Ubuntu Linux 遠端 shutdown 的 Raspberry Pi ,可透過 ssh 指令協助達成:
ssh <username>
#
2015年4月17日 星期五
Mac OS X / *nix 找出目錄中檔案大小為0的檔案
給自己的備忘錄:
找出檔案 size = 0 :
> find $dirpath -type f -size 0 -exec ls {} \;
找出檔案 size > 100K
> find $dirpath -type f -size +100k -exec ls {} \;
找出檔案 size > 1M
> find $dirpath -type f -size +1M -exec ls {} \;
找出檔案 size > 1000 Bytes
> find $dirpath -type f -size +1000c -exec ls {} \;
#
找出檔案 size = 0 :
> find $dirpath -type f -size 0 -exec ls {} \;
找出檔案 size > 100K
> find $dirpath -type f -size +100k -exec ls {} \;
找出檔案 size > 1M
> find $dirpath -type f -size +1M -exec ls {} \;
找出檔案 size > 1000 Bytes
> find $dirpath -type f -size +1000c -exec ls {} \;
#
2014年10月25日 星期六
ubuntu 設定開機直接進入文字 (text, console) 模式
vi /etc/default/grub ,將原來
加上註解,並重新新增一行新設定,改為下列後存檔離開:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
加上註解,並重新新增一行新設定,改為下列後存檔離開:
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX_DEFAULT="text"接著執行更新開機GRUB設定
sudo update-grub執行結果:
Generating grub.cfg ... Found linux image: /boot/vmlinuz-3.11.0-15-generic Found initrd image: /boot/initrd.img-3.11.0-15-generic Found memtest86+ image: /boot/memtest86+.bin Found Ubuntu 12.04 LTS (12.04) on /dev/sda1 done#
2014年8月14日 星期四
ubuntu 上安裝 Elasticsearch Cluster
1. 參考 Installing ElasticSearch on Ubuntu 14.04 ,分別在欲加入 Elasticsearch Cluster 的每部機器上完成安裝
### Install Oracle Java (改安裝 Oracle Java)
cd /tmp
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
### Download and Install ElasticSearch ver 1.3.2
### Check http://www.elasticsearch.org/download/ for latest version of ElasticSearch and replace wget link below
wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.3.2.deb
sudo dpkg -i elasticsearch-1.3.2.deb
### Install the Java Service Wrapper for ElasticSearch
curl -L http://github.com/elasticsearch/elasticsearch-servicewrapper/tarball/master | tar -xz
sudo mkdir /usr/local/share/elasticsearch
sudo mkdir /usr/local/share/elasticsearch/bin
sudo mv *servicewrapper*/service /usr/local/share/elasticsearch/bin/
rm -Rf *servicewrapper*
sudo /usr/local/share/elasticsearch/bin/service/elasticsearch install
sudo ln -s `readlink -f /usr/local/share/elasticsearch/bin/service/elasticsearch` /usr/local/bin/rcelasticsearch
### Start ElasticSearch
sudo service elasticsearch start
### Make sure service is running
curl http://localhost:9200
### Should return something like this:
#{
# "status" : 200,
# "name" : "Storm",
# "version" : {
# "number" : "1.3.1",
# "build_hash" : "2de6dc5268c32fb49b205233c138d93aaf772015",
# "build_timestamp" : "2014-07-28T14:45:15Z",
# "build_snapshot" : false,
# "lucene_version" : "4.9"
# },
# "tagline" : "You Know, for Search"
#}
2. 分別修改每部機器上 /etc/elasticsearch/elasticsearch.yml 設定
cluster.name: elasticsearch
node.name: "elastic_your_nodename"
3. 重新啟動 elasticsearch
sudo service elasticsearch restart
4. 測試 Elasticsearch Cluster 是否有多個 node 出現?本例為2個nodes
curl -XGET http://elastic_your_nodename:9200/_cluster/health?pretty
{
"cluster_name" : "elasticsearch",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 2,
"number_of_data_nodes" : 2,
"active_primary_shards" : 5,
"active_shards" : 10,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0
}
"cluster_name" : "elasticsearch",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 2,
"number_of_data_nodes" : 2,
"active_primary_shards" : 5,
"active_shards" : 10,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0
}
#
2014年7月23日 星期三
ubuntu 安裝 nginx,並設定 virtual hosts
1. 安裝 nginx 與 PHP5
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install nginx
$ sudo apt-get install fcgiwrap php5-fpm php5-xcache php5-mysql php5-pgsql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
2. 創建要放置網頁檔案的磁碟路徑(放在/var/www/之下)
$ sudo mkdir -p /var/www/yourdomain1.com/html
$ sudo mkdir -p /var/www/yourdomain2.com/html
$ sudo chown -R www-data:www-data /var/www/yourdomain1.com/html
$ sudo chown -R www-data:www-data /var/www/yourdomain2.com/html
$ sudo chmod -R 755 /var/www
3. 編寫 index.html
$ sudo vi /var/www/yourdomain1.com/html/index.html
$ sudo vi /var/www/yourdomain2.com/html/index.html
範例如下:
<html lang="zh-TW">
<head>
<title>page title</title>
<script src="my-javascript-file.js"></script>
<link href="my-css-file.css" rel="stylesheet"></link>
</head>
<body>
<!-- 網頁內容就放在body內吧 -->
Hello, yourdomain1.com <!-- 或是 yourdomain2.com -->
</body>
</html>
4. 設定第一個網站設定檔
$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/yourdomain1.com
$ sudo vi /etc/nginx/sites-available/yourdomain1.com
修改設定檔內容:
5. 設定第二個網站設定檔
$ sudo cp /etc/nginx/sites-available/yourdomain1.com /etc/nginx/sites-available/yourdomain2.com
$ sudo vi /etc/nginx/sites-available/yourdomain2.com
修改設定檔內容,注意listen設定有些不同:
6. 讓兩個網站的設定檔案生效
$ sudo ln -s /etc/nginx/sites-available/yourdomain1.com /etc/nginx/sites-enabled/
$ sudo ln -s /etc/nginx/sites-available/yourdomain2.com /etc/nginx/sites-enabled/
7. 移除預設設定檔案
$ sudo rm /etc/nginx/sites-enabled/default
8. 修改 nginx.conf
$ sudo vi /etc/nginx/nginx.conf
將 server_names_hash_bucket_size: 64; 前面的註解符號 # 移除,然後存檔離開
9. 重新啟動 nginx
$ sudo service nginx restart
10. 修改 hosts,新增網站資料
$ sudo vi /etc/hosts
新增
192.168.1.80 yourdomain1.com
192.168.1.80 yourdomain2.com
11. 設定開機時,自動啟動nginx服務
$ sudo update-rc.d nginx defaults
#
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install nginx
$ sudo apt-get install fcgiwrap php5-fpm php5-xcache php5-mysql php5-pgsql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
2. 創建要放置網頁檔案的磁碟路徑(放在/var/www/之下)
$ sudo mkdir -p /var/www/yourdomain1.com/html
$ sudo mkdir -p /var/www/yourdomain2.com/html
$ sudo chown -R www-data:www-data /var/www/yourdomain1.com/html
$ sudo chown -R www-data:www-data /var/www/yourdomain2.com/html
$ sudo chmod -R 755 /var/www
3. 編寫 index.html
$ sudo vi /var/www/yourdomain1.com/html/index.html
$ sudo vi /var/www/yourdomain2.com/html/index.html
範例如下:
<html lang="zh-TW">
<head>
<title>page title</title>
<script src="my-javascript-file.js"></script>
<link href="my-css-file.css" rel="stylesheet"></link>
</head>
<body>
<!-- 網頁內容就放在body內吧 -->
Hello, yourdomain1.com <!-- 或是 yourdomain2.com -->
</body>
</html>
4. 設定第一個網站設定檔
$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/yourdomain1.com
$ sudo vi /etc/nginx/sites-available/yourdomain1.com
修改設定檔內容:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/yourdomain1.com/html;
index index.html index.htm index.php;
server_name yourdomain1.com www.yourdomain1.com;
location / {
try_files $uri $uri/ =404;
}
}
5. 設定第二個網站設定檔
$ sudo cp /etc/nginx/sites-available/yourdomain1.com /etc/nginx/sites-available/yourdomain2.com
$ sudo vi /etc/nginx/sites-available/yourdomain2.com
修改設定檔內容,注意listen設定有些不同:
server {
listen 80;
listen [::]:80;
root /var/www/yourdomain2.com/html;
index index.html index.htm index.php;
server_name yourdomain2.com www.yourdomain2.com;
location / {
try_files $uri $uri/ =404;
}
}
6. 讓兩個網站的設定檔案生效
$ sudo ln -s /etc/nginx/sites-available/yourdomain1.com /etc/nginx/sites-enabled/
$ sudo ln -s /etc/nginx/sites-available/yourdomain2.com /etc/nginx/sites-enabled/
7. 移除預設設定檔案
$ sudo rm /etc/nginx/sites-enabled/default
8. 修改 nginx.conf
$ sudo vi /etc/nginx/nginx.conf
將 server_names_hash_bucket_size: 64; 前面的註解符號 # 移除,然後存檔離開
9. 重新啟動 nginx
$ sudo service nginx restart
10. 修改 hosts,新增網站資料
$ sudo vi /etc/hosts
新增
192.168.1.80 yourdomain1.com
192.168.1.80 yourdomain2.com
11. 設定開機時,自動啟動nginx服務
$ sudo update-rc.d nginx defaults
#
2014年3月30日 星期日
ubuntu 安裝 SSH Server
先確認 /usr/sbin/sshd 是否存在,若已存在則繼續使用 ps -ef | grep ssh 確認 sshd (SSH Server) 是否執行。
若sshd檔案存在,只是尚未執行,可啟動ssd。
$ sudo /etc/init.d/ssh start
若以上皆確認不存在,則可以
$ sudo apt-get install openssh-server
進行安裝 SSH Server。
$ ssh localhost
設定開機時自動啟動 SSH Server。
$ sudo update-rc.d ssh defaults
測試一下
#
若sshd檔案存在,只是尚未執行,可啟動ssd。
$ sudo /etc/init.d/ssh start
若以上皆確認不存在,則可以
$ sudo apt-get install openssh-server
進行安裝 SSH Server。
$ ssh localhost
設定開機時自動啟動 SSH Server。
$ sudo update-rc.d ssh defaults
測試一下
#
ASUS VC60 i3-3110M 安裝 ubuntu 14.04 (beta2)
先至 Ubuntu 官方網站下載 Ubuntu 14.04 (Beta 2) Desktop 64bits ISO
http://releases.ubuntu.com/14.04/ubuntu-14.04-beta2-desktop-amd64.iso
把iso檔案燒錄至USB隨身碟中,Windows 電腦可以使用 Win32 Disk Imager完成燒錄。
以Ubuntu 14.04 USB隨身碟開機,可試用、可安裝至ASUS VC60 i3-3110M的無作業系統版電腦。
測試結果:
Ubuntu 13.04 Desktop 64bits : 不支援VC60的無線網路卡、支援S/PDIF數位音效輸出及類比輸出
Ubuntu 13.10 Desktop 64bits : 無法完成開機(不知道原因為何)
Ubuntu 14.04 (Beta 2) Desktop 64bits : 支援VC60的無線網路卡、支援S/PDIF數位音效輸出及類比輸出
$ uname -a
Linux myhost 3.13.0-20-generic #42-Ubuntu SMP Fri Mar 28 09:56:33 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
好機器,不買嗎?:P
#
http://releases.ubuntu.com/14.04/ubuntu-14.04-beta2-desktop-amd64.iso
把iso檔案燒錄至USB隨身碟中,Windows 電腦可以使用 Win32 Disk Imager完成燒錄。
以Ubuntu 14.04 USB隨身碟開機,可試用、可安裝至ASUS VC60 i3-3110M的無作業系統版電腦。
測試結果:
Ubuntu 13.04 Desktop 64bits : 不支援VC60的無線網路卡、支援S/PDIF數位音效輸出及類比輸出
Ubuntu 13.10 Desktop 64bits : 無法完成開機(不知道原因為何)
Ubuntu 14.04 (Beta 2) Desktop 64bits : 支援VC60的無線網路卡、支援S/PDIF數位音效輸出及類比輸出
$ uname -a
Linux myhost 3.13.0-20-generic #42-Ubuntu SMP Fri Mar 28 09:56:33 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
好機器,不買嗎?:P
#
2013年12月19日 星期四
ubuntu networking interface 設定
使用情境:
- eth0固定網卡 / wlan0無線網卡 各一
- 配置固定IP (eth0: 192.168.1.XX / wlan0: 192.168.1.YY)
- private network : 192.168.1.XXX
- gateway : 192.168.1.1
/etc/network/interfaces 設定檔內容:
auto lo iface lo inet loopback iface eth0 inet static address 192.168.1.XX netmask 255.255.255.0 gateway 192.168.1.1 allow-hotplug wlan0 iface wlan0 inet static wpa 2 wpa-ssid <YOUR_SSID> wpa-psk <YOUR_PASSWORD> address 192.168.1.YY netmask 255.255.255.0 gateway 192.168.1.1
*以上也適用 Raspberry Pi / Wheezy 環境
#
2013年11月18日 星期一
Ubuntu precise amd64 安裝筆記
# apt-get update &
sudo apt-get -y update
sudo apt-get dist-upgrade
sudo apt-get --no-install-recommends -y install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev libgdbm-dev ncurses-dev automake libtool bison subversion pkg-config libffi-dev vim
# install python
sudo apt-get install build-essential
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
cd /tmp
wget http://python.org/ftp/python/2.7.6/Python-2.7.6.tgz
tar -xvf Python-2.7.6.tgz
cd Python-2.7.6
./configure
make
sudo make altinstall
# install easy_install for python 2.7
cd ..
sudo apt-get install python-setuptools
# install Flask for python
sudo easy_install Flask
# prepare to install uwsgi, nginx
sudo useradd -r -g www-data -s /bin/false uwsgi
sudo mkdir -p /var/www/myapp
sudo chown uwsgi:www-data /var/www/myapp -R
sudo useradd -G www-data myuser
sudo usermod -a -G www-data myuser
# install uwsgi
sudo pip install uwsgi
sudo mkdir -p /var/log/uwsgi
sudo touch /var/log/uwsgi/myapp.log
cd /var/www/myapp
sudo vi uwsgi.xml
sudo /usr/local/bin/uwsgi -x uwsgi.xml
# install nginx
sudo apt-get install nginx
sudo service nginx start
cd /etc/nginx/
cd sites-enabled/
sudo vi default
uwsgi.xml
<?xml version="1.0"?>
<uwsgi id="myapp">
<module>application:app</module>
<socket>/tmp/uwsgi.sock</socket>
<socket>127.0.0.1:8000</socket>
<processes>4</processes>
<chdir>/var/www/myapp</chdir>
<pidfile>/tmp/myapp.pid</pidfile>
<daemonize>/var/log/uwsgi/myapp.log</daemonize>
<stats>/tmp/myapp.stats</stats>
<log-format>``%(addr) - %(user) [%(ltime)] "%(method) %(uri) %(proto)" %(status) %(size) `` "%(referer)" "%(uagent)"</log-format>
<uid>uwsgi</uid>
<gid>www-data</gid>
<chmod-socket>775</chmod-socket>
</uwsgi>
/etc/nginx/sites-enabled/default
server {
listen 8080;
root /var/www/myapp;
server_name myapp;
try_files $uri @uwsgi;
location @uwsgi {
include uwsgi_params;
uwsgi_pass unix:/tmp/myapp.sock;
}
}
2013年8月25日 星期日
ubuntu 安裝 easy_install 和 MySQL Connector/Python
- 安裝 easy_install > sudo wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python
- 安裝 Mysql Connector/Python > sudo easy_install mysql-connector-python
範例程式
import mysql.connector
from mysql.connector import errorcode
try:
cnx = mysql.connector.connect(user='userid', password='******',
host='127.0.0.1',
database='dbname', charset='utf8')
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Something is wrong with your user name or password")
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print("Database does not exists")
else:
print(err)
else:
cursor = cnx.cursor()
query = ("SELECT * FROM tablename ORDER BY id DESC LIMIT 10;")
cursor.execute(query)
for i in cursor:
print i
cursor.close()
cnx.close()
延伸閱讀:MySQL Connector/Python 官網
#
2013年3月12日 星期二
組合的力量 - 再檢查一次 shell script 的第一行
近來發生了一件怪事,某一 shell script 在 console 環境下執行正常,但設定 cron job執行卻一直無法正常執行。
耐下性子,一步步、一行行找到底哪個指令出現問題:才發現執行到某一 for loop 就中斷了。把執行結果轉向某一記錄檔,內容卻也空空如也。
怪的是 console 環境下卻可以執行... ?!
忽然靈光一現! 難道 cron job 不是以bash shell環境來執行?
檢查shell script的第一行。賓果! 果然 #!/bin/bash 消失不見了!
加上 #!/bin/bash 之後。cron job執行也就正常。
提醒大家,務必養成良好習慣時時確認 shell script 的第一行是否指定了正確的shell環境來執行您的script喔~
#
耐下性子,一步步、一行行找到底哪個指令出現問題:才發現執行到某一 for loop 就中斷了。把執行結果轉向某一記錄檔,內容卻也空空如也。
怪的是 console 環境下卻可以執行... ?!
忽然靈光一現! 難道 cron job 不是以bash shell環境來執行?
檢查shell script的第一行。賓果! 果然 #!/bin/bash 消失不見了!
加上 #!/bin/bash 之後。cron job執行也就正常。
提醒大家,務必養成良好習慣時時確認 shell script 的第一行是否指定了正確的shell環境來執行您的script喔~
#
2013年3月8日 星期五
組合的力量 - 計算文章中每個字的出現次數
sed "s/'s//g" filename |sed 's/[0-9]*//g' |sed 's/\W/ /g' | sed 's/ /\n/g' | tr '[:upper:]' '[:lower:]' | sort | uniq -c | sort -r
主要利用 sed 搜尋/取代、tr 大寫轉小寫、sort 排序 及 uniq 功能達成
#
2013年2月27日 星期三
組合的力量 - 擷取檔案名稱和延伸檔名
目錄底下一堆各式各樣檔案,只想要擷取檔案名稱或延伸檔案名稱方便進行後續處理的話,可以利用bash內建功能來取得:
檔名 = ${檔案名稱變數%.*};
延伸檔名 = ${檔案名稱變數##*.};
for file in `ls *.*`
do
filename=${file%.*};
echo $filename;
extname=${file##*.};
echo $extname;
done
如果想要取得目錄名稱:
目錄名稱 = ${完整檔案目錄名稱%/*};
fullname=/root/pathname/filename.extname
pathname=${fullname%/*};
#
2012年12月9日 星期日
ubuntu 文字模式下的 mp3 播放軟體
現安裝 mpg321 播放軟體:
> sudo apt-get install mpg321
安裝完成後,就可以直接透過 mpg321 在文字命令模式下播放 MP3 音樂檔。
> mpg321 *.mp3 &
#
ubuntu 文字模式下調整音量
訂閱:
文章 (Atom)