Home | First | Prev | Next | Last |
$ cd /usr/bin $ sudo chmod -v 4711 /usr/bin/cdrdao $ sudo chmod -v 4711 /usr/bin/wodim
$ ls -l cdrdao -rws--x--x 1 root root 665832 Jan 14 2018ファイルの所有者の属性が「rwx」ではなく「rws」となっているのは「ユーザID」がセットされているからで、所有者が root であっても、ユーザが実行できるようにしてあるからです。「ユーザID」の追加は、数字モードでは「4000」を追加、文字モードでは「u+s」を使います。
$ sudo chomd 4711 the_target_file $ sudo chmod u+s the_target_file
import os.path from os import path out_file = "target_file.txt" if path.exists(out_file): print("<%s> already exists." %out_file) exit();すでにファイルがあったら、バックアップファイルを取って、継続することもできますが、上記では、プログラムを終了させるようにしました。
import os.path from os import path if os.path.isfile("./work"): print("The work folder is not empty.") exit();
/* CSS */ input[type='submit'] { display:none; } label { cursor:pointer; } label:hover { color:brown; }まず、display:none を使って submit ボタンを非表示にしました。文字列は label に入れますが、そこにカーソルがあたったとき、カーソルが「指」マークになるよう cursor:pointer を指定しました。それだけではわかりにくと思い、文字の色も替えてみました。
/* HTML */ <input id='action1' type='submit' value='' /><label for='action1'>Linux Memo ◯月◯日の記事</label>
$ sudo dpkg --add-architecture i386 $ sudo add-apt-repository 'deb http://za.archive.ubuntu.com/ubuntu bionic main' $ sudo apt install libxml2:i386そして ftp://ftp.adobe.com/pub/ から AdbeRdr950_ja_JP.exe をダウンロードし、
$ wine AdbeRdr950_ja_JP.exeでインストールしました。Xubuntu 19.10 でも Adobe Reader を使えることが分かりましたので、19.10 にアップグレードする決心がつきました。
$ xkillとして、強制終了させました。その後印刷しようとすると、「全ページ」を指定してあるのに、最初のページしか印刷されませんでした。wine の新しいバージョンならこの問題が解決するだろうかと思い、wine を Xubuntu 19.10 と同じ 4.0.2 にアップデートしてみました。
$ sudo dpkg --add-architecture i386 $ sudo apt-key add winehq.key $ sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main' $ sudo apt update $ sudo apt install --install-recommends winehq-stable
$ winecfgを実行し、wine 上の Windows のバージョンを Windows 8.1 にしました。アプリのインストールは
$ wine uninstallerを実行してインストールしました。uninstaller は installer も含んでおり、アプリのインストールができます。
$ img2pdf --output Invoice2019.pdf --pagesize letter Invoice2019.jpgのようなコマンドで、JPEG 画像から PDF ファイルを作ることができました。--pagesize を指定することによって、画像が用紙の中央に自動的に収まるので便利でした。また、
$ img2pdf --output out.pdf page1.jpg page2.jpgといったように入力画像が複数あれば、その数だけのページを持つ PDF ファイルを作ってくれます。別々の PDF ファイルをあとで結合する手間が省けます。
.title_index { position:files;top:10%;left:10%; }本体のリストを画面中央に置いたので、五十音表を左に置いたわけです。
.title_index { position:files;top:10%;left:50vw; }として、五十音表の左側が画面の中央に来るようにしました。それから曲名リストの横幅の半分と五十音表の横幅、それに五十音表と曲名リストとのギャップを計算して、それを左マージンで調整しました。最終的は次のようになりました。
.title_index { position:files;top:10%;left:50vw;margin-left:-300px; }
2019年9月1日 2019年8月4日 2019年9月8日 2019年8月11日 2019年9月15日 2019年8月18日 2019年9月22日 2019年8月25日 2019年9月29日次のように記述して実行すると
@data = sort @data;結果は次のようになりました。
2019年8月11日 2019年8月18日 2019年8月25日 2019年8月4日 2019年9月1日 2019年9月15日 2019年9月22日 2019年9月29日 2019年9月8日
@data = sort {$a<=>$b} @data;こうすれば、数値でソートするので、次のように日付順の出力を得ることができました。
2019年8月4日 2019年8月11日 2019年8月18日 2019年8月25日 2019年9月1日 2019年9月8日 2019年9月15日 2019年9月22日 2019年9月29日
@data = reverse sort {$a<=>$b} @data;で処理すると、次の結果を得ました。
2019年9月29日 2019年9月22日 2019年9月15日 2019年9月8日 2019年9月1日 2019年8月25日 2019年8月18日 2019年8月11日 2019年8月4日
$str = substr($str,0,20);などとして、文字列の先頭から20文字を取り出せばよいのです。しかし、この方法だと、文字列が Ascii 文字だけならいいのですが、日本語が入ると文字化けしてしまいますし、utf-8 では日本語文字は3バイト使いますので、日本語、英数字混在の文字列の場合、バイト数がそのまま文字数にはなりませんので、長い文字列を途中で区切っても、画面に表示される長さがまちまちになってしまいます。
use Encode; $str = Encode::decode('utf8',$str); $half = 0; $full = 0; $count = 0; while ($c = substr($str,$i,1)) { if ($c =~ /\p{ASCII}/) { $half++; } else { $full += 2; } if ($full + $half > 40) { last; } $count++; } $str = substr($str,0,$count); $str = Encode::encode('utf8',$str);\p{ASCII} は、Unicode で Ascii 文字を判定するための表記で、Perl Uniprops で調べました。
$ wget ftp://ftp.adobe.com/pub/adobe/reader/unix/9.x/9.5.5/enu/AdbeRdr9.5.5-1_i386linux_enu.deb次に gdebi を導入してから gdebi でインストールを試みました。gdebi なら不足しているファイルを補ってくれるからです。
$ sudo apt install gdebi $ sudo gdebi AdbeRdr9.5.5-1_i386linux_enu.deb次の i386 のファイルが追加導入されました。
gcc-9-base:i386 libatk1.0-0:i386 libavahi-client3:i386 libavahi-common-data:i386 libavahi-common3:i386 libblkid1:i386 libbsd0:i386 libc6:i386 libcairo2:i386 libcom-err2:i386 libcups2:i386 libdatrie1:i386 libdbus-1-3:i386 libexpat1:i386 libffi6:i386 libfontconfig1:i386 libfreetype6:i386 libfribidi0:i386 libgail-common:i386 libgail18:i386 libgcc1:i386 libgcrypt20:i386 libgdk-pixbuf2.0-0:i386 libglib2.0-0:i386 libgmp10:i386 libgnutls30:i386 libgpg-error-l10n libgpg-error0:i386 libgraphite2-3:i386 libgssapi-krb5-2:i386 libgtk2.0-0:i386 libharfbuzz0b:i386 libhogweed4:i386 libidn2-0:i386 libjbig0:i386 libjpeg-turbo8:i386 libjpeg8:i386 libk5crypto3:i386 libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 liblz4-1:i386 liblzma5:i386 libmount1:i386 libnettle6:i386 libp11-kit0:i386 libpango-1.0-0:i386 libpangocairo-1.0-0:i386 libpangoft2-1.0-0:i386 libpcre2-8-0:i386 libpcre3:i386 libpixman-1-0:i386 libpng16-16:i386 libselinux1:i386 libssl1.1:i386 libsystemd0:i386 libtasn1-6:i386 libthai0:i386 libtiff5:i386 libunistring2:i386 libuuid1:i386 libwebp6:i386 libx11-6:i386 libxau6:i386 libxcb-render0:i386 libxcb-shm0:i386 libxcb1:i386 libxcomposite1:i386 libxcursor1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxi6:i386 libxinerama1:i386 libxrandr2:i386 libxrender1:i386 libzstd1:i386 zlib1g:i386
$ sudo libxml2:i36としましたら
libicu63:i386 libstdc++6:i386も一緒に導入され、Adobe Reader は無事動きました。19.10 のベータ版では次のコマンドが必要でしたが、リリース版では不要でした。
$ sudo dpkg --add-architecture i386 $ sudo add-apt-repository 'deb http://za.archive.ubuntu.com/ubuntu bionic main'
Prompt=lstとあるところを
Prompt=normalに変更してから次のコマンドで /etc/apt/sources.list を書き換えました。
$ sudo sed -i 's/bionic/eoan/g' /etc/apt/sources.listPPA をいったん退避させるために次のコマンドを使いました。
$ sudo sed -i 's/^/#/' /etc/apt/sources.list.d/*.list
$ sudo apt update $ sudo apt upgrade $ sudo apt dist-upgrade途中で次のメッセージが出ました。
Configuring libc6: Running services and programs that are using NSS need to be restarted, otherwise they might not be able to do lookup or authentication any more (for services such as ssh, this can affect your ability to login). Please review the following space- separated list of init.d scripts for services to be restarted now, and correct it if needed. Note: restarting sshd/telnetd should not affect any existing connections. Services to restart for GNU libc library upgrade: cups cron apache2OK を選んで次に進みました。しばらくすると、次のふたつのファイルの書き換えについて問い合わせがありました。
/etc/gnome/defaults.list /etc/update-manager/release-upgrade最初のほうは NO、次は YES にしました。
$ sudo apt autoremove $ sudo apt clean $ sudo shutdown -r nowとして、リブートしました。
<a href='another.html' target='_blank'>新しいタブで開く</a>とします。これをボタンで実現するには JavaScript を使って
<button onclick="window.open('another.html','_blank')">新しいタブで開く</button>とします。なんでもないテクニックですが、使うことが多いと思い、メモしておきました。
$is_target_file = 0; if (-e $target_file) { $is_target_file = 1; }で判定できるのですが、リンク先の場合はこれを使えません。
$link_url = "http://penguinclub.net/pdf/target.pdf"; `wget -q -O $target_file $link_url`; $is_target_file = 1; if (-z $target_file) { $is_target_file = 0; }しかし、ファイルが大きい場合、ダウンロードするのに時間がかかりますし、ダウンロードしたファイルを利用するわけではないので、wget の --spider オプションを使うことにしました。--spider オプションは実際にファイルをダウンロードしないで存在するかどうかをログファイルに出力してくれます。存在する場合は次のようなメッセージがログファイルに書き込まれます。
Spider mode enabled. Check if remote file exists. --2019-11-18 20:47:36-- http://penguinclub.net/pdf/target.pdf Resolving penguinclub.net (penguinclub.net)... xxx.xxx.xxx.xxx Connecting to penguinclub.net (penguinclub.net)|xxx.xxx.xxx.xxx|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 212734 (208K) [application/pdf] Remote file exists.存在しない場合はこんなふうです。
Spider mode enabled. Check if remote file exists. --2019-11-18 20:46:54-- http://penguinclub.net/pdf/target.pdf Resolving penguinclub.net (penguinclub.net)... xxx.xxx.xxx.xxx Connecting to penguinclub.net (penguinclub.net)|xxx.xxx.xxx.xxx|:80... connected. HTTP request sent, awaiting response... 404 Not Found Remote file does not exist -- broken link!!!それで、-o オプションでログファイルを指定し、そのログファイルを読み込んでリンク先にファイルがあるかどうかの判定をすることにしました。
`wget --spider -v -o $wget_log $link_url`; @log_lines = `cat $wget_log`; $is_pdf = 0; foreach $log_line (@log_lines) { chomp $log_line; if ($log_line =~ / 200 OK$/) { $is_pdf = 1; last; } }このほうが無駄なファイルのダウンロードが行われず、ログファイルのタイムスタンプを取り出せば、ファイルチェックをした時刻を割り出すことができます。-v のかわりに -nv オプションにすれば、ログファイルがもっと小さくなります。これも何でもないテクニックですが、Google の検索には載っていなかったように思いますので、ここに記しておきます。
$ sudo add-apt-repository ppa:system76/pop $ sudo apt update $ sudo apt install pop-icon-themeバージョンは 2.1.0 でした。以前のアイコンとはずいぶんデザインが変わっていましたが、ファイルの種類の区別がつきやすいアイコンが使われていて、ファイル操作のとき間違いを防いでくれそうです。
$ sudo apt install pop-icon-themeでインストールできました。
dnssd://Brother%20MFC-J6920DW._ipp._tcp.local/?uuid=e3248000-80ce-11db-8000-30055cc6f974となっているのですが、dnssd:// プロトコルが動いていませんでした。それでlpd:// プロトコルで動かすことを考え、デバイス URI を Node Name を使って次のように指定しました。
lpd://BRW6814019E5FDD/BINARY_P1これでプリンターを使えるようになりましたが、dnssd:// プロトコルのことは気になりますので、あとで調査してみたいと思っています。
http://192.168.XXX.XXXのように、ブラウザにプリンターの IPアドレスを入れると、プリンターの状態を見たり、設定したりすることができました。インクの残量などはインクタンクのゲージで確認できますが、何枚プリントしたかなどは、ここでしか確認できません。
Home | First | Prev | Next | Last |