epelレポからpython3.6.8 install

動機

bashでwebサイト作成してあと、pythonでもつくろうとおもっているから、install。

参考文献

CentOS に Python2.7, Python3を入れたメモ  
ファイルの圧縮、解凍方法  
pyenvで3.7系のインストールに失敗したときのメモ  
Pythonの対話モードの履歴と矢印キー  
PythonのインタプリタでCtrl-Lや矢印が使えないときの解決方法  

パッケージのダウンロード

コード表示

[oracle@centos unko]$ python --version
Python 2.7.5
[oracle@centos unko]$ which python
/usr/bin/python
[oracle@centos unko]$ curl -LO https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 16.3M  100 16.3M    0     0  1820k      0  0:00:09  0:00:09 --:--:-- 2117k
[oracle@centos unko]$ ll
合計 16732
-rw-r--r--. 1 oracle docker 17131432  7月 23 22:33 Python-3.7.4.tar.xz
[oracle@centos unko]$ tar -xvf Python-3.7.4.tar.xz
[oracle@centos unko]$ ll
合計 16736
drwxr-xr-x. 18 oracle docker     4096  7月  9 03:31 Python-3.7.4
-rw-r--r--.  1 oracle docker 17131432  7月 23 22:33 Python-3.7.4.tar.xz

makeする

エラーになった。

コード表示

[oracle@centos unko]$ cd Python-3.7.4
[oracle@centos Python-3.7.4]$ ll
合計 1060
-rw-r--r--.  1 oracle docker    631  7月  9 03:03 CODE_OF_CONDUCT.rst
drwxr-xr-x. 18 oracle docker   4096  7月  9 03:31 Doc
drwxr-xr-x.  2 oracle docker   4096  7月  9 03:03 Grammar
drwxr-xr-x.  3 oracle docker   4096  7月  9 03:03 Include
-rw-r--r--.  1 oracle docker  12769  7月  9 03:03 LICENSE
drwxr-xr-x. 33 oracle docker   4096  7月  9 03:03 Lib
drwxr-xr-x.  8 oracle docker   4096  7月  9 03:03 Mac
-rw-r--r--.  1 oracle docker  63658  7月  9 03:03 Makefile.pre.in
drwxr-xr-x.  2 oracle docker   4096  7月  9 03:31 Misc
drwxr-xr-x. 13 oracle docker   4096  7月  9 03:03 Modules
drwxr-xr-x.  4 oracle docker   4096  7月  9 03:03 Objects
drwxr-xr-x.  6 oracle docker   4096  7月  9 03:03 PC
drwxr-xr-x.  2 oracle docker   4096  7月  9 03:03 PCbuild
drwxr-xr-x.  2 oracle docker   4096  7月  9 03:03 Parser
drwxr-xr-x.  2 oracle docker   4096  7月  9 03:03 Programs
drwxr-xr-x.  3 oracle docker   4096  7月  9 03:03 Python
-rw-r--r--.  1 oracle docker  10113  7月  9 03:03 README.rst
drwxr-xr-x. 23 oracle docker   4096  7月  9 03:03 Tools
-rw-r--r--.  1 oracle docker  10953  7月  9 03:03 aclocal.m4
-rwxr-xr-x.  1 oracle docker  44166  7月  9 03:03 config.guess
-rwxr-xr-x.  1 oracle docker  36251  7月  9 03:03 config.sub
-rwxr-xr-x.  1 oracle docker 503641  7月  9 03:03 configure
-rw-r--r--.  1 oracle docker 167840  7月  9 03:03 configure.ac
-rwxr-xr-x.  1 oracle docker   7122  7月  9 03:03 install-sh
drwxr-xr-x.  2 oracle docker   4096  7月  9 03:03 m4
-rw-r--r--.  1 oracle docker  43204  7月  9 03:03 pyconfig.h.in
-rw-r--r--.  1 oracle docker 103776  7月  9 03:03 setup.py
[oracle@centos Python-3.7.4]$ ./configure --with-ensurepip
Traceback (most recent call last):
  File "/home/oracle/unko/Python-3.7.4/Lib/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/oracle/unko/Python-3.7.4/Lib/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/oracle/unko/Python-3.7.4/Lib/ensurepip/__main__.py", line 5, in 
    sys.exit(ensurepip._main())
  File "/home/oracle/unko/Python-3.7.4/Lib/ensurepip/__init__.py", line 204, in _main
    default_pip=args.default_pip,
  File "/home/oracle/unko/Python-3.7.4/Lib/ensurepip/__init__.py", line 117, in _bootstrap
    return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
  File "/home/oracle/unko/Python-3.7.4/Lib/ensurepip/__init__.py", line 27, in _run_pip
    import pip._internal
  File "/tmp/tmp0ezzadqo/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/__init__.py", line 40, in 
  File "/tmp/tmp0ezzadqo/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/cli/autocompletion.py", line 8, in 
  File "/tmp/tmp0ezzadqo/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/cli/main_parser.py", line 12, in 
  File "/tmp/tmp0ezzadqo/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/commands/__init__.py", line 6, in 
  File "/tmp/tmp0ezzadqo/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/commands/completion.py", line 6, in 
  File "/tmp/tmp0ezzadqo/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/cli/base_command.py", line 20, in 
  File "/tmp/tmp0ezzadqo/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/download.py", line 37, in 
  File "/tmp/tmp0ezzadqo/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/utils/glibc.py", line 3, in 
  File "/home/oracle/unko/Python-3.7.4/Lib/ctypes/__init__.py", line 7, in 
    from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'
make: *** [install] エラー 1

libffi-develいんすこ

コード表示

[oracle@centos Python-3.7.4]$ sudo yum install -y libffi-devel

再いんすこ

alias python=”/usr/local/bin/python3″を追加。~/.bashrcに。

コード表示

[oracle@centos Python-3.7.4]$ make
[oracle@centos Python-3.7.4]$ sudo make install
Looking in links: /tmp/tmpdo_t739u
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-19.0.3 setuptools-40.8.0
[oracle@centos Python-3.7.4]$ ls -l /usr/bin/ | grep python2.7
lrwxrwxrwx.   1 root root           9  7月  1 21:58 python2 -> python2.7
lrwxrwxrwx.   1 root root          16  7月  1 21:58 python2-config -> python2.7-config
-rwxr-xr-x.   1 root root        7216  6月 21 05:28 python2.7
-rwxr-xr-x.   1 root root        1835  6月 21 05:27 python2.7-config
[oracle@centos Python-3.7.4]$ ls -l /usr/local/bin/ | grep python
lrwxrwxrwx. 1 root root        9  7月 23 22:53 python3 -> python3.7
lrwxrwxrwx. 1 root root       16  7月 23 22:53 python3-config -> python3.7-config
-rwxr-xr-x. 2 root root 13988344  7月 23 22:53 python3.7
lrwxrwxrwx. 1 root root       17  7月 23 22:53 python3.7-config -> python3.7m-config
-rwxr-xr-x. 2 root root 13988344  7月 23 22:53 python3.7m
-rwxr-xr-x. 1 root root     2902  7月 23 22:53 python3.7m-config
[oracle@centos Python-3.7.4]$ cat ~/.bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions

alias unkommit="/usr/local/bin/unkommit.sh"
alias awk="/usr/local/bin/awk"
alias gawk="/usr/local/bin/awk"
alias python="/usr/local/bin/python3"
alias la="ls -la"
LANG=ja_JP.utf8


[oracle@centos Python-3.7.4]$ . ~/.bashrc

[oracle@centos Python-3.7.4]$ python --version
Python 3.7.4

動作確認

CTRL+Dでinteractiveモード抜ける。

コード表示

[oracle@centos ~]$ python
Python 3.7.4 (default, Jul 23 2019, 22:53:28) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('unko')
unko

追記

6.51.1. Python 3 のインストール

pipというパッケージ管理用コマンドが入っていなかったため、再実行

コード表示

[oracle@centos Python-3.7.4]$ sudo yum -y install openssl
[oracle@centos Python-3.7.4]$ openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017
[oracle@centos Python-3.7.4]$ ./configure --prefix=/usr                   --enable-shared                 --with-system-expat             --with-system-ffi               --with-ensurepip=yes
[oracle@centos Python-3.7.4]$ make
[oracle@centos Python-3.7.4]$ sudo make install
[oracle@centos bin]$ pwd
/usr/bin
[oracle@centos bin]$ ll | grep pip
-rwxr-xr-x.   1 root root        2291  7月 31  2015 lesspipe.sh
-rwxr-xr-x.   1 root root       11424  2月 26  2014 mispipe
-rwxr-xr-x.   1 root root         281  6月 15  2016 pip
-rwxr-xr-x.   1 root root         283  6月 15  2016 pip2
-rwxr-xr-x.   1 root root         287  6月 15  2016 pip2.7
lrwxrwxrwx.   1 root root           6  7月 24 06:50 pip3 -> pip3.7
-rwxr-xr-x.   1 root root         217  7月 24 06:43 pip3.7
[oracle@centos Python-3.7.4]$ pip -V
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
[oracle@centos Python-3.7.4]$ sudo chmod -v 755 /usr/lib/libpython3.7m.so
[sudo] oracle のパスワード:
`/usr/lib/libpython3.7m.so' のモードを 0555 (r-xr-xr-x) から 0755 (rwxr-xr-x) へ変更しました
[oracle@centos Python-3.7.4]$ sudo chmod -v 755 /usr/lib/libpython3.so
`/usr/lib/libpython3.so' のモードを 0555 (r-xr-xr-x) から 0755 (rwxr-xr-x) へ変更しました
[oracle@centos Python-3.7.4]$ sudo ln -sfv pip3.7 /usr/bin/pip3
`/usr/bin/pip3' -> `pip3.7'
[oracle@centos bin]$ vi ~/.bashrc
[oracle@centos bin]$ cat ~/.bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions

alias unkommit="/usr/local/bin/unkommit.sh"
alias awk="/usr/local/bin/awk"
alias gawk="/usr/local/bin/awk"
alias python="/usr/local/bin/python3"
alias pip="/usr/bin/pip3.7"
alias la="ls -la"
LANG=ja_JP.utf8
[oracle@centos bin]$ . ~/.bashrc

よくわからんところ

コード表示

[oracle@centos bin]$ pwd
/usr/bin
[oracle@centos bin]$ pip3.7 -V
pip 19.0.3 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
[oracle@centos bin]$ /usr/bin/pip3.7 -V
/usr/bin/python3.7: error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory
[oracle@centos ~]$ pip3 -V
pip 19.0.3 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
[oracle@centos ~]$ pip3.7 -V
pip 19.0.3 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
[oracle@centos ~]$ pip -V
/usr/bin/python3.7: error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory

make install時にこのログでた。あとで見直す。

コード表示

Python build finished successfully!
The necessary bits to build these optional modules were not found:
_curses               _curses_panel         _dbm               
_gdbm                 _hashlib              _sqlite3           
_ssl                  readline                                 
To find the necessary bits, look in setup.py in detect_modules() for the module's name.


The following modules found by detect_modules() in setup.py, have been
built by the Makefile instead, as configured by the Setup files:
_abc                  atexit                pwd                
time                                                           

めんど臭くなってepelレポからいれちゃいました。

CentOS7でpython3をepelから入れる
コード表示

[root@centos Python-3.7.4]# yum info python36
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * centos-qemu-ev: ftp.tsukuba.wide.ad.jp
 * epel: ftp.riken.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
利用可能なパッケージ
名前                : python36
アーキテクチャー    : x86_64
バージョン          : 3.6.8
リリース            : 1.el7
容量                : 67 k
リポジトリー        : epel/x86_64
要約                : Interpreter of the Python programming language
URL                 : https://www.python.org/
ライセンス          : Python
説明                : Python is an accessible, high-level, dynamically typed, interpreted programming
                    : language, designed with an emphasis on code readability.
                    : It includes an extensive standard library, and has a vast ecosystem of
                    : third-party libraries.
                    : 
                    : The python36 package provides the "python3" executable: the reference
                    : interpreter for the Python language, version 3.
                    : The majority of its standard library is provided in the python36-libs package,
                    : which should be installed automatically along with python36.
                    : The remaining parts of the Python standard library are broken out into the
                    : python36-tkinter and python36-test packages, which may need to be installed
                    : separately.
                    : 
                    : Documentation for Python is provided in the python36-docs package.
                    : 
                    : Packages containing additional libraries for Python are generally named with
                    : the "python36-" prefix.
[root@centos Python-3.7.4]# yum install python36 python36-devel python36-libs

[root@centos Python-3.7.4]# python36 --version
Python 3.6.8

[oracle@centos ~]$ python36 --version
Python 3.6.8
[oracle@centos ~]$ python --version
Python 3.6.8


[oracle@centos ~]$ python
Python 3.6.8 (default, Apr 25 2019, 21:02:35) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
[oracle@centos ~]$ su root
パスワード:

[root@centos oracle]# python3 -m ensurepip
Looking in links: /tmp/tmpciyoe1tb
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-18.1 setuptools-40.6.2


[root@centos oracle]# pip3 install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/62/ca/94d32a6516ed197a491d17d46595ce58a83cbb2fca280414e57cd86b84dc/pip-19.2.1-py2.py3-none-any.whl (1.4MB)
    100% |████████████████████████████████| 1.4MB 6.9MB/s 
Installing collected packages: pip
  Found existing installation: pip 18.1
    Uninstalling pip-18.1:
      Successfully uninstalled pip-18.1
Successfully installed pip-19.2.1

[root@centos oracle]# pip3 list
Package    Version
---------- -------
pip        19.2.1 
setuptools 40.6.2 
[root@centos oracle]# 

[oracle@centos ~]$ pip list
Package    Version
---------- -------
pip        19.2.1 
setuptools 40.6.2 

[oracle@centos ~]$ pip -V
pip 19.2.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
[oracle@centos ~]$ python -V
Python 3.6.8

[oracle@centos ~]$ cat ~/.bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions

alias unkommit="/usr/local/bin/unkommit.sh"
alias awk="/usr/local/bin/awk"
alias gawk="/usr/local/bin/awk"
alias python="/usr/bin/python3.6"
alias pip="/usr/local/bin/pip3.6"
alias la="ls -la"
LANG=ja_JP.utf8

R言語インストール centos7

動機

dplyrパッケージを使ってみたいからいんすこした。

エラーおきたw

同一ファイルが2つのパッケージから提供されて競合。

コード表示

Transaction check error:
  file /usr/include/unicode/regex.h from install of libicu-devel-50.1.2-17.el7.x86_64 conflicts with file from package libicu57-devel-57.1-8.el7.x86_64

片方リム

りむる

コード表示

[oracle@centos ~]$ yum list libicu57-devel-57.1-8.el7.x86_64
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * centos-qemu-ev: ftp-srv2.kddilabs.jp
 * extras: ftp-srv2.kddilabs.jp
 * updates: ftp-srv2.kddilabs.jp
インストール済みパッケージ
libicu57-devel.x86_64                                                                                       57.1-8.el7                                                                                        @okay
[oracle@centos ~]$ sudo yum remove libicu57-devel.x86_64
読み込んだプラグイン:fastestmirror, langpacks
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ libicu57-devel.x86_64 0:57.1-8.el7 を 削除
--> 依存性の処理をしています: pkgconfig(icu-uc) のパッケージ: harfbuzz-devel-1.7.5-2.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ harfbuzz-devel.x86_64 0:1.7.5-2.el7 を 削除
--> 依存性の処理をしています: pkgconfig(harfbuzz) のパッケージ: pango-devel-1.42.4-2.el7_6.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ pango-devel.x86_64 0:1.42.4-2.el7_6 を 削除
--> 依存性の処理をしています: pango-devel >= 1.20.0-1 のパッケージ: gtk2-devel-2.24.31-1.el7.x86_64
--> 依存性の処理をしています: pkgconfig(pango) のパッケージ: gtk3-devel-3.22.30-3.el7.x86_64
--> 依存性の処理をしています: pkgconfig(pango) のパッケージ: gtk2-devel-2.24.31-1.el7.x86_64
--> 依存性の処理をしています: pkgconfig(pangocairo) のパッケージ: gtk3-devel-3.22.30-3.el7.x86_64
--> 依存性の処理をしています: pkgconfig(pangocairo) のパッケージ: gtk2-devel-2.24.31-1.el7.x86_64
--> 依存性の処理をしています: pkgconfig(pangoft2) のパッケージ: gtk3-devel-3.22.30-3.el7.x86_64
--> 依存性の処理をしています: pkgconfig(pangoft2) のパッケージ: gtk2-devel-2.24.31-1.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ gtk2-devel.x86_64 0:2.24.31-1.el7 を 削除
---> パッケージ gtk3-devel.x86_64 0:3.22.30-3.el7 を 削除
--> 依存性解決を終了しました。

依存性を解決しました

===================================================================================================================================================================================================================
 Package                                               アーキテクチャー                              バージョン                                              リポジトリー                                     容量
===================================================================================================================================================================================================================
削除中:
 libicu57-devel                                        x86_64                                        57.1-8.el7                                              @okay                                           5.1 M
依存性関連での削除をします:
 gtk2-devel                                            x86_64                                        2.24.31-1.el7                                           @base                                            22 M
 gtk3-devel                                            x86_64                                        3.22.30-3.el7                                           @base                                            30 M
 harfbuzz-devel                                        x86_64                                        1.7.5-2.el7                                             @base                                           1.5 M
 pango-devel                                           x86_64                                        1.42.4-2.el7_6                                          @updates                                        3.2 M

トランザクションの要約
===================================================================================================================================================================================================================
削除  1 パッケージ (+4 個の依存関係のパッケージ)

インストール容量: 61 M
上記の処理を行います。よろしいでしょうか? [y/N]y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  削除中                  : gtk2-devel-2.24.31-1.el7.x86_64                                                                                                                                                    1/5 
  削除中                  : gtk3-devel-3.22.30-3.el7.x86_64                                                                                                                                                    2/5 
  削除中                  : pango-devel-1.42.4-2.el7_6.x86_64                                                                                                                                                  3/5 
  削除中                  : harfbuzz-devel-1.7.5-2.el7.x86_64                                                                                                                                                  4/5 
  削除中                  : libicu57-devel-57.1-8.el7.x86_64                                                                                                                                                   5/5 
  検証中                  : gtk3-devel-3.22.30-3.el7.x86_64                                                                                                                                                    1/5 
  検証中                  : harfbuzz-devel-1.7.5-2.el7.x86_64                                                                                                                                                  2/5 
  検証中                  : pango-devel-1.42.4-2.el7_6.x86_64                                                                                                                                                  3/5 
  検証中                  : libicu57-devel-57.1-8.el7.x86_64                                                                                                                                                   4/5 
  検証中                  : gtk2-devel-2.24.31-1.el7.x86_64                                                                                                                                                    5/5 

削除しました:
  libicu57-devel.x86_64 0:57.1-8.el7                                                                                                                                                                               

依存性の削除をしました:
  gtk2-devel.x86_64 0:2.24.31-1.el7                  gtk3-devel.x86_64 0:3.22.30-3.el7                  harfbuzz-devel.x86_64 0:1.7.5-2.el7                  pango-devel.x86_64 0:1.42.4-2.el7_6                 

完了しました!

再いんすこ

コード表示

[oracle@centos ~]$ sudo yum install -y R --enablerepo=epel

いんすこ確認

コード表示

[oracle@centos ~]$ sudo yum install -y R --enablerepo=epel
[oracle@centos ~]$ R --version
R version 3.6.0 (2019-04-26) -- "Planting of a Tree"
Copyright (C) 2019 The R Foundation for Statistical Computing
Platform: x86_64-redhat-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
https://www.gnu.org/licenses/.
[oracle@centos ~]$ which R
/usr/bin/R

動作確認

インタラクティブモードの終了はCTRL+Dを2回。

コード表示

[oracle@centos ~]$ R

R version 3.6.0 (2019-04-26) -- "Planting of a Tree"
Copyright (C) 2019 The R Foundation for Statistical Computing
Platform: x86_64-redhat-linux-gnu (64-bit)

R は、自由なソフトウェアであり、「完全に無保証」です。 
一定の条件に従えば、自由にこれを再配布することができます。 
配布条件の詳細に関しては、'license()' あるいは 'licence()' と入力してください。 

R は多くの貢献者による共同プロジェクトです。 
詳しくは 'contributors()' と入力してください。 
また、R や R のパッケージを出版物で引用する際の形式については 
'citation()' と入力してください。 

'demo()' と入力すればデモをみることができます。 
'help()' とすればオンラインヘルプが出ます。 
'help.start()' で HTML ブラウザによるヘルプがみられます。 
'q()' と入力すれば R を終了します。 

> x<-data.frame(Titanic)
> x
   Class    Sex   Age Survived Freq
1    1st   Male Child       No    0
2    2nd   Male Child       No    0
3    3rd   Male Child       No   35
4   Crew   Male Child       No    0
5    1st Female Child       No    0
6    2nd Female Child       No    0
7    3rd Female Child       No   17
8   Crew Female Child       No    0
9    1st   Male Adult       No  118
10   2nd   Male Adult       No  154
11   3rd   Male Adult       No  387
12  Crew   Male Adult       No  670
13   1st Female Adult       No    4
14   2nd Female Adult       No   13
15   3rd Female Adult       No   89
16  Crew Female Adult       No    3
17   1st   Male Child      Yes    5
18   2nd   Male Child      Yes   11
19   3rd   Male Child      Yes   13
20  Crew   Male Child      Yes    0
21   1st Female Child      Yes    1
22   2nd Female Child      Yes   13
23   3rd Female Child      Yes   14
24  Crew Female Child      Yes    0
25   1st   Male Adult      Yes   57
26   2nd   Male Adult      Yes   14
27   3rd   Male Adult      Yes   75
28  Crew   Male Adult      Yes  192
29   1st Female Adult      Yes  140
30   2nd Female Adult      Yes   80
31   3rd Female Adult      Yes   76
32  Crew Female Adult      Yes   20
> summary(x)
  Class       Sex        Age     Survived      Freq       
 1st :8   Male  :16   Child:16   No :16   Min.   :  0.00  
 2nd :8   Female:16   Adult:16   Yes:16   1st Qu.:  0.75  
 3rd :8                                   Median : 13.50  
 Crew:8                                   Mean   : 68.78  
                                          3rd Qu.: 77.00  
                                          Max.   :670.00  

大量データ扱う時のレスポンスとか気になる

sqlみたいで楽しい。楽でいいな。

qiitaのストック記事が500件だった

こういうのをスクレイピングと呼ぶのかわからないが楽しい

grep -Pだとパール正規表現使えるぽい。u-link-no-underlineの指定を汎用的にかきたいね。ハイフン以外の文字列とハイフンで指定するのかな??

コード表示

curl -s https://qiita.com/ukijumotahaneniarukenia/like?page={1..25} | grep -o "\<a class=\"u-link-no-underline\" .*" | grep -o "href.*" | grep -oP ".*(?=</a)" | sed -e 's/href="//' -e 's/\">/\t/' | awk '{print "https://qiita.com"$1"\t"}{$1="";print $0" ""UNKO"}' | sed ':a;N;/UNKO/!ba;s/\n\{1,\}/ /g;s/UNKO//g;' | nl

generate-script.awkなるものを読んで思った所感

参考文献

 

参考にしたコマンド

上田さんのシェルこうそく開発手法にopenコマンド出て来て、それはmacだったので、linuxだとxdg-openにあたるぽい。徐にソースコードを落として適当に漁った。面白くて楽しい本!第2版も買いたいんだよなー。

フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門  
コード表示

[oracle@centos scripts]$ xdg-open --version
xdg-open 1.1.0 rc1
[oracle@centos scripts]$ yum provides xdg-open | grep -B 4 "$(which xdg-open)"
xdg-utils-1.1.0-0.17.20120809git.el7.noarch : Basic desktop integration
                                            : functions
リポジトリー        : base
一致          :
ファイル名    : /usr/bin/xdg-open
--
xdg-utils-1.1.0-0.17.20120809git.el7.noarch : Basic desktop integration
                                            : functions
リポジトリー        : @anaconda
一致          :
ファイル名    : /usr/bin/xdg-open

ソースコードダウンロード

こういうのは規格とか調べないと汎用的なものは作れなそう

コード表示

[oracle@centos src]$ cat install.sh
#!/bin/bash

sudo yumdownloader --source xdg-utils-1.1.0-0.17.20120809git.el7.noarch

rpmdev-extract xdg-utils-1.1.0-0.17.20120809git.el7.src.rpm

cd xdg-utils-1.1.0-0.17.20120809git.el7.src

tar -xvf xdg-utils-1.1.0-20120809git.tar.gz

適当にファイル用意した

外部ファイルをgetlineでパス指定して読み込むんかーと。マークをsedで削除しちゃっているけど。ちなみにANKOはあんこじゃない。あんこの絵文字ない。

コード表示

[oracle@centos awk]$ ll ANKO UNKO gen.awk exclude.sed in out
-rwxr-xr-x. 1 oracle docker  72  7月 14 10:20 ANKO
-rwxr-xr-x. 1 oracle docker  72  7月 14 10:20 UNKO
-rw-r--r--. 1 oracle docker  16  7月 14 10:30 exclude.sed
-rwxr-xr-x. 1 oracle docker 172  7月 14 10:19 gen.awk
-rwxr-xr-x. 1 oracle docker  60  7月 14 10:24 in
-rw-r--r--. 1 oracle docker 194  7月 14 10:33 out
[oracle@centos awk]$ cat ANKO
for i in $(yes "$(echo -ne '\U1F194')" | head -n 5);do echo -ne $i;done
[oracle@centos awk]$ cat UNKO
for i in $(yes "$(echo -ne '\U1F4A9')" | head -n 5);do echo -ne $i;done
[oracle@centos awk]$ cat exclude.sed
/UNKO/d
/ANKO/d
[oracle@centos awk]$ cat gen.awk
#!/usr/local/bin/awk

{
  print
}

/UNKO/{
  while (getline < "./UNKO")
    print
  close ("./UNKO")
}

/ANKO/{
  while (getline < "./ANKO")
    print
  close ("./ANKO")
}
[oracle@centos awk]$ cat in
#!/bin/bash

unko(){
UNKO
}

anko(){
ANKO
}

unko
anko
echo
[oracle@centos awk]$ cat out
#!/bin/bash

unko(){
for i in $(yes "$(echo -ne '\U1F4A9')" | head -n 5);do echo -ne $i;done
}

anko(){
for i in $(yes "$(echo -ne '\U1F194')" | head -n 5);do echo -ne $i;done
}

unko
anko
echo

実行

いろいろごったに。三位一体感ある。teeでoutファイルを生成しつつ、結果を標準出力にだす。これはdebugしやすそう。


[oracle@centos awk]$ awk -f gen.awk in | sed -f exclude.sed | tee out | bash
💩💩💩💩💩🆔🆔🆔🆔🆔
[oracle@centos awk]$ ./out
bash: ./out: 許可がありません
[oracle@centos awk]$ chmod +x ./out
[oracle@centos awk]$ ./out
💩💩💩💩💩🆔🆔🆔🆔🆔

所感

切り出すと、どこに何かいたか把握するのたいへんなんだよな。ただ、それも楽しい。

bashの配列であそんだ

参考文献

配列の初期化

コード表示

[oracle@centos ~]$ echo {a..c} | sed -e 's/ /\n/g'
a
b
c
[oracle@centos ~]$ while read line;do echo ${line}; done < <(echo {a..c} | sed -e 's/ /\n/g')
a
b
c
[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ echo ${ary[@]}
a b c
[oracle@centos ~]$ echo ${#ary[@]}
3
[oracle@centos ~]$ ary=($(echo {a..c} | sed -e 's/ /\n/g'))
[oracle@centos ~]$ echo ${#ary[@]}
1
[oracle@centos ~]$ echo ${ary[@]}
a
b
c
[oracle@centos ~]$ ary=($(echo {a..c}))
[oracle@centos ~]$ echo ${#ary[@]}
1
[oracle@centos ~]$ echo ${ary[@]}
a b c

配列のコピー

こんなかんじ

コード表示

[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ echo ${ary[@]}
a b c
[oracle@centos ~]$ echo ${#ary[@]}
3
[oracle@centos ~]$ aryy=(${ary[@]})
[oracle@centos ~]$ echo ${aryy[@]}
a b c
[oracle@centos ~]$ echo ${#aryy[@]}
3

配列参照するときインデックス気にしなくてイイ

コード表示

[oracle@centos ~]$ ary=($(echo {a..c}))
[oracle@centos ~]$ for i in ${ary[@]};do echo $i; done
a b c
[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ for i in ${ary[@]};do echo $i; done
a
b
c

配列の添字てんかいできるんだね、インデックス気にしたいならこっちか

コード表示

[oracle@centos ~]$ ary=($(echo {a..c}))
[oracle@centos ~]$ echo ${!ary[@]}
0
[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ echo ${!ary[@]}
0 1 2
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]};done
0-->a
1-->b
2-->c
[oracle@centos ~]$ for ((i=0;i<${#ary[@]};i++));do echo $i'-->'${ary[$i]};done
0-->a
1-->b
2-->c

配列の要素追加とか要素削除とか

一括削除、一括生成。コピーとか。

コード表示

[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ for ((i=0;i<${#ary[@]};i++));do echo $i'-->'${ary[$i]};done
0-->a
1-->b
2-->c
[oracle@centos ~]$ while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ for ((i=0;i<${#ary[@]};i++));do echo $i'-->'${ary[$i]};done
0-->a
1-->b
2-->c
3-->a
4-->b
5-->c
[oracle@centos ~]$ for ((i=0;i<${#ary[@]};i++));do echo $i'-->'${ary[$i]};done
0-->a
1-->b
2-->c
3-->a
4-->b
5-->c
[oracle@centos ~]$ unset ary[@]
[oracle@centos ~]$ for ((i=0;i<${#ary[@]};i++));do echo $i'-->'${ary[$i]};done
[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]}; done
0-->a
1-->b
2-->c
[oracle@centos ~]$ unset ary[1]
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]}; done
0-->a
2-->c
[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]}; done
0-->a
1-->b
2-->c
[oracle@centos ~]$ unset ary[0]
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]}; done
1-->b
2-->c
[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]}; done
0-->a
1-->b
2-->c
[oracle@centos ~]$ unset ary[2]
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]}; done
0-->a
1-->b
[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]}; done
0-->a
1-->b
2-->c
[oracle@centos ~]$ unset ary[1]
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]}; done
0-->a
2-->c
[oracle@centos ~]$ tmp=(${ary[@]});while read line;do ary=();ary+=(${line}); done < <(echo ${tmp[@]})
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]}; done
0-->a
1-->c

配列のスライス的な奴

コード表示

[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..z} | sed -e 's/ /\n/g')
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[@]:0:$i}; done
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i+1'-->'${ary[@]:0:$i+1}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $(($i+1))'-->'${ary[@]:0:$i+1}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $i+1'-->'${ary[@]:-($i+1)}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $i+1'-->'${ary[@]: -($i+1)}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $(($i+1))'-->'${ary[@]: -($i+1)}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $(printf '%02d' $(echo $(($i+1))))'-->'${ary[@]: -($i+1)}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $(printf '%02d' $(echo $(($i+1))))'-->'${ary[@]: -($i+1)}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $(printf '%02d' $(echo $(($i+1))))'-->'${ary[@]:0:$i+1}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $(printf '%02d' $(echo $(($i+1))))'-->'${ary[@]:$i:$i+1}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $(printf '%02d' $(echo $(($i+1))))'-->'${ary[@]:$i:1}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $(printf '%02d' $(echo $(($i+1))))'-->'${ary[@]:-$i:1}; done

sed デタラメな複数行を小綺麗な一行に変換する話

デタラメな複数行を小綺麗な一行に変換する

他にもいっぱいやり方あるとおもう

コード表示

[oracle@centos ~]$ cat ttt
UNKO IS
  BEATIFUL
   .

UNKO IS
  TITY
   .

UNKO IS
  FUNNY .
[oracle@centos ~]$ cat -n ttt
     1	UNKO IS
     2	  BEATIFUL
     3	   .
     4	
     5	UNKO IS
     6	  TITY
     7	   .
     8	
     9	UNKO IS
    10	  FUNNY .
[oracle@centos ~]$ cat ttt | sed -e '/^$/d ' -e ':a;N;/\.$/!ba;s/\n\s\{1,\}/ /g;s/ \.$/\./'
UNKO IS BEATIFUL.
UNKO IS TITY.
UNKO IS FUNNY.

デバッグしたやつ

コード表示

[oracle@centos ~]$ cat ttt | sedsed --debug -e '/^$/d ' -e ':a;N;/\.$/!ba;s/\n\s\{1,\}/ /g;s/ \.$/\./'
PATT:UNKO IS$
HOLD:$
COMM:/^$/ d
PATT:UNKO IS$
HOLD:$
COMM::a
COMM:N
PATT:UNKO IS\n  BEATIFUL$
HOLD:$
COMM:/\.$/ !b a
COMM:N
PATT:UNKO IS\n  BEATIFUL\n   .$
HOLD:$
COMM:/\.$/ !b a
COMM:s/\n\s\{1,\}/ /g
PATT:UNKO IS BEATIFUL .$
HOLD:$
COMM:s/ \.$/\./
PATT:UNKO IS BEATIFUL.$
HOLD:$
UNKO IS BEATIFUL.
PATT:$
HOLD:$
COMM:/^$/ d
PATT:UNKO IS$
HOLD:$
COMM:/^$/ d
PATT:UNKO IS$
HOLD:$
COMM::a
COMM:N
PATT:UNKO IS\n  TITY$
HOLD:$
COMM:/\.$/ !b a
COMM:N
PATT:UNKO IS\n  TITY\n   .$
HOLD:$
COMM:/\.$/ !b a
COMM:s/\n\s\{1,\}/ /g
PATT:UNKO IS TITY .$
HOLD:$
COMM:s/ \.$/\./
PATT:UNKO IS TITY.$
HOLD:$
UNKO IS TITY.
PATT:$
HOLD:$
COMM:/^$/ d
PATT:UNKO IS$
HOLD:$
COMM:/^$/ d
PATT:UNKO IS$
HOLD:$
COMM::a
COMM:N
PATT:UNKO IS\n  FUNNY .$
HOLD:$
COMM:/\.$/ !b a
COMM:s/\n\s\{1,\}/ /g
PATT:UNKO IS FUNNY .$
HOLD:$
COMM:s/ \.$/\./
PATT:UNKO IS FUNNY.$
HOLD:$
UNKO IS FUNNY.

方針としてはまず、空行消す。ここまでが一行!みたいな終了FOOTSTAMPが検出されるまで、Nコマンドで次の入力行をPSへ改行付きで蓄積。ここでのFOOTSTAMPは「.」。で、改行と1回以上のスペースを1個のスペースに置換し、行末の「.」直前のスペースは空文字に置換。分かってくるとめちゃ楽し。

所感

sedわかってきちゃったかも。前処理だけじゃなくてsedでプログラムも書いてみたいなー。

sed 複数行を1行に置換する話

参考文献

このお方のtwwiterのシェル芸大好きです。

sedのデバッグやHTML化ができる『sedsed』  

まえがき

折角だからpythonデバッグツールあるぽいので、それでsedと仲良くなりたい。

コード表示

[oracle@centos ~]$ git clone https://github.com/aureliojargas/sedsed
[oracle@centos ~]$ sudo cp sedsed/sedsed.py /usr/local/bin/sedsed
[sudo] oracle のパスワード:
[oracle@centos ~]$ sedsed --version
sedsed v1.2-dev

複数行を1行に置換する

他にもいっぱいあるとおもう

コード表示

[oracle@centos web]$ cat ttt
a
b
c
[oracle@centos web]$ cat -n ttt
     1	a
     2	b
     3	c
[oracle@centos web]$ sed -n 'H;${x;s/\n/ /g;s/^ //;p}' ttt
a b c

デバッグしたやつ

コード表示

[oracle@centos ~]$ cat ttt | sedsed --debug -n 'H;${x;s/\n/ /g;s/^ //;p}'
PATT:a$
HOLD:$
COMM:H
PATT:a$
HOLD:\na$
COMM:$ {
PATT:a$
HOLD:\na$
PATT:b$
HOLD:\na$
COMM:H
PATT:b$
HOLD:\na\nb$
COMM:$ {
PATT:b$
HOLD:\na\nb$
PATT:c$
HOLD:\na\nb$
COMM:H
PATT:c$
HOLD:\na\nb\nc$
COMM:$ {
COMM:x
PATT:\na\nb\nc$
HOLD:c$
COMM:s/\n/ /g
PATT: a b c$
HOLD:c$
COMM:s/^ //
PATT:a b c$
HOLD:c$
COMM:p
a b c
PATT:a b c$
HOLD:c$
COMM:}
PATT:a b c$
HOLD:c$

HコマンドでPSの内容がHSへ改行付きでコピーされている。b,cも同じ様に実行されていき、HSに改行付で蓄えられている。ここまでがHコマンドの内容。xコマンドでHSの内容とPSの内容を交換している。パタンスペースに対してs/\n/ /gを実行し、改行をスペース区切りに変換した後、行頭が空白のものを空文字に置換している。で、最後にpコマンドでPSの内容を標準出力に出力している。-nオプションでデフォルトの挙動であるパタンスペースを出力する動きを抑止している。

抑止しなかったやつ。入力行ごとにグループ化されているコマンド郡は最終行「$」に対してまとまって実行されていて、a,bは最終行でないから実行されていなかったことが分かった。最終行でなくとも${は評価されているんだな。ぁぁぁ楽しい。面白い!!

コード表示

[oracle@centos ~]$ cat ttt | sedsed --debug 'H;${x;s/\n/ /g;s/^ //;p}'
PATT:a$
HOLD:$
COMM:H
PATT:a$
HOLD:\na$
COMM:$ {
PATT:a$
HOLD:\na$
a
PATT:b$
HOLD:\na$
COMM:H
PATT:b$
HOLD:\na\nb$
COMM:$ {
PATT:b$
HOLD:\na\nb$
b
PATT:c$
HOLD:\na\nb$
COMM:H
PATT:c$
HOLD:\na\nb\nc$
COMM:$ {
COMM:x
PATT:\na\nb\nc$
HOLD:c$
COMM:s/\n/ /g
PATT: a b c$
HOLD:c$
COMM:s/^ //
PATT:a b c$
HOLD:c$
COMM:p
a b c
PATT:a b c$
HOLD:c$
COMM:}
PATT:a b c$
HOLD:c$
a b c

sed 一文字ずつ切り取って後ろにくっ付ける話

参考文献

このお方のtwwiterのシェル芸大好きです。

sedのデバッグやHTML化ができる『sedsed』  

まえがき

折角だからpythonデバッグツールあるぽいので、それでsedと仲良くなりたい。

コード表示

[oracle@centos ~]$ git clone https://github.com/aureliojargas/sedsed
[oracle@centos ~]$ sudo cp sedsed/sedsed.py /usr/local/bin/sedsed
[sudo] oracle のパスワード:
[oracle@centos ~]$ sedsed --version
sedsed v1.2-dev

響け!ユーフォニアム

あるアニメのタイトルらしい。

sedは標準入力をPS(パターンスペース)に1行ずつ取り込む。pコマンドはPSにある中身を出力する。sは置換コマンドで直前のPSに対して処理する。/^ム/はムで始まるPSの意味。!付けているからムで始まらないPSをコマンドのアドレス条件に指定してる。bコマンドはアドレス条件を満たすときは指定したラベルにjumpする。ここでのラベルはaラベル。標準入力が最初1行だけだが、各スクリプトの実行結果をPSに保持して、そのPSにスクリプトを繰り返し実行し、出力しているところが面白い!!ループ処理なので、終了条件書くこと!

コード表示

[oracle@centos ~]$ echo 響け!ユーフォニアム | sed ':a;p;s/\(.\)\(.*\)/\2\1/;/^ム/!ba' | nl
     1	響け!ユーフォニアム
     2	け!ユーフォニアム響
     3	!ユーフォニアム響け
     4	ユーフォニアム響け!
     5	ーフォニアム響け!ユ
     6	フォニアム響け!ユー
     7	ォニアム響け!ユーフ
     8	ニアム響け!ユーフォ
     9	アム響け!ユーフォニ
    10	ム響け!ユーフォニア

デバッグしてみたやつ

コード表示

[oracle@centos ~]$ echo 響け!ユーフォニアム | sedsed --debug ':a;p;s/\(.\)\(.*\)/\2\1/;/^ム/!ba'
PATT:\351\237\277\343\201\221\357\274\201\343\203\246\343\203\274\343\
\203\225\343\202\251\343\203\213\343\202\242\343\203\240$
HOLD:$
COMM::a
COMM:p
響け!ユーフォニアム
PATT:\351\237\277\343\201\221\357\274\201\343\203\246\343\203\274\343\
\203\225\343\202\251\343\203\213\343\202\242\343\203\240$
HOLD:$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:\343\201\221\357\274\201\343\203\246\343\203\274\343\203\225\343\
\202\251\343\203\213\343\202\242\343\203\240\351\237\277$
HOLD:$
COMM:/^ム/ !b a
COMM:p
け!ユーフォニアム響
PATT:\343\201\221\357\274\201\343\203\246\343\203\274\343\203\225\343\
\202\251\343\203\213\343\202\242\343\203\240\351\237\277$
HOLD:$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:\357\274\201\343\203\246\343\203\274\343\203\225\343\202\251\343\
\203\213\343\202\242\343\203\240\351\237\277\343\201\221$
HOLD:$
COMM:/^ム/ !b a
COMM:p
!ユーフォニアム響け
PATT:\357\274\201\343\203\246\343\203\274\343\203\225\343\202\251\343\
\203\213\343\202\242\343\203\240\351\237\277\343\201\221$
HOLD:$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:\343\203\246\343\203\274\343\203\225\343\202\251\343\203\213\343\
\202\242\343\203\240\351\237\277\343\201\221\357\274\201$
HOLD:$
COMM:/^ム/ !b a
COMM:p
ユーフォニアム響け!
PATT:\343\203\246\343\203\274\343\203\225\343\202\251\343\203\213\343\
\202\242\343\203\240\351\237\277\343\201\221\357\274\201$
HOLD:$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:\343\203\274\343\203\225\343\202\251\343\203\213\343\202\242\343\
\203\240\351\237\277\343\201\221\357\274\201\343\203\246$
HOLD:$
COMM:/^ム/ !b a
COMM:p
ーフォニアム響け!ユ
PATT:\343\203\274\343\203\225\343\202\251\343\203\213\343\202\242\343\
\203\240\351\237\277\343\201\221\357\274\201\343\203\246$
HOLD:$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:\343\203\225\343\202\251\343\203\213\343\202\242\343\203\240\351\
\237\277\343\201\221\357\274\201\343\203\246\343\203\274$
HOLD:$
COMM:/^ム/ !b a
COMM:p
フォニアム響け!ユー
PATT:\343\203\225\343\202\251\343\203\213\343\202\242\343\203\240\351\
\237\277\343\201\221\357\274\201\343\203\246\343\203\274$
HOLD:$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:\343\202\251\343\203\213\343\202\242\343\203\240\351\237\277\343\
\201\221\357\274\201\343\203\246\343\203\274\343\203\225$
HOLD:$
COMM:/^ム/ !b a
COMM:p
ォニアム響け!ユーフ
PATT:\343\202\251\343\203\213\343\202\242\343\203\240\351\237\277\343\
\201\221\357\274\201\343\203\246\343\203\274\343\203\225$
HOLD:$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:\343\203\213\343\202\242\343\203\240\351\237\277\343\201\221\357\
\274\201\343\203\246\343\203\274\343\203\225\343\202\251$
HOLD:$
COMM:/^ム/ !b a
COMM:p
ニアム響け!ユーフォ
PATT:\343\203\213\343\202\242\343\203\240\351\237\277\343\201\221\357\
\274\201\343\203\246\343\203\274\343\203\225\343\202\251$
HOLD:$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:\343\202\242\343\203\240\351\237\277\343\201\221\357\274\201\343\
\203\246\343\203\274\343\203\225\343\202\251\343\203\213$
HOLD:$
COMM:/^ム/ !b a
COMM:p
アム響け!ユーフォニ
PATT:\343\202\242\343\203\240\351\237\277\343\201\221\357\274\201\343\
\203\246\343\203\274\343\203\225\343\202\251\343\203\213$
HOLD:$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:\343\203\240\351\237\277\343\201\221\357\274\201\343\203\246\343\
\203\274\343\203\225\343\202\251\343\203\213\343\202\242$
HOLD:$
COMM:/^ム/ !b a
PATT:\343\203\240\351\237\277\343\201\221\357\274\201\343\203\246\343\
\203\274\343\203\225\343\202\251\343\203\213\343\202\242$
HOLD:$
ム響け!ユーフォニア

go言語いんすこ

触れてみたかった!

今年の下半期でgoで何かつくりたい。9月以降かな。それまではshell力高める。

コード表示

[oracle@centos ~]$ sudo yum install -y go
[oracle@centos ~]$ which go
/usr/bin/go
インストール:
  golang.x86_64 0:1.11.5-1.el7                                                                                                                                                                                     

[oracle@centos gooooo]$ yum provides go
golang-1.11.5-1.el7.x86_64 : The Go Programming Language
リポジトリー        : epel
一致          :
Provides    : go = 1.11.5-1.el7
[oracle@centos gooooo]$ cat hw.go
package main
 
import "fmt"
 
func main(){
  fmt.Printf("Hello World!")
}
[oracle@centos gooooo]$ go build hw.go
[oracle@centos gooooo]$ ll
合計 1880
-rwxr-xr-x. 1 oracle docker 1919238  6月 26 19:43 hw
-rw-r--r--. 1 oracle docker      74  6月 26 19:38 hw.go
[oracle@centos gooooo]$ ./hw
Hello World![oracle@centos gooooo]$ 

yumでソースコードいんすこ

参考文献

yum でソースコードをダウンロードしたい  
Linuxコマンドのソースコードを取得する方法:オリジナルコマンド作成前の勉強向け  

coreutilsためしにいれてみる

コード表示

[oracle@centos ~]$ sudo yum install -y yum-utils

[oracle@centos ~]$ which ls
alias ls='ls --color=auto'
	/usr/bin/ls

[oracle@centos ~]$ yum whatprovides /usr/bin/ls
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * centos-qemu-ev: ftp.iij.ad.jp
 * epel: ftp.yz.yamagata-u.ac.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
coreutils-8.22-23.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
リポジトリー        : base
一致          :
ファイル名    : /usr/bin/ls



coreutils-8.22-23.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
リポジトリー        : @base
一致          :
ファイル名    : /usr/bin/ls



[oracle@centos ~]$ sudo yumdownloader --source coreutils-8.22-23.el7.x86_64

[oracle@centos ~]$ find / -name "*coreutils-8.22-23.el7.src.rpm*" 2>/dev/null
/home/oracle/coreutils-8.22-23.el7.src.rpm
[oracle@centos ~]$ ll
合計 380472
-rw-r--r--.  1 oracle docker 383991324  5月 24 04:19 CentOS-7-x86_64-Vagrant-1902_01.Libvirt.box
drwxr-xr-x.  2 oracle docker      4096  6月 23 08:39 Desktop
drwxr-xr-x.  2 oracle docker      4096  6月 14 09:25 Documents
drwxr-xr-x.  2 oracle docker      4096  6月 22 15:06 Downloads
drwxr-xr-x.  2 oracle docker      4096  5月 12 16:16 Music
drwxr-xr-x.  2 oracle docker      4096  6月 14 20:02 Pictures
drwxr-xr-x.  2 oracle docker      4096  5月 12 16:16 Public
drwxr-xr-x.  2 oracle docker      4096  5月 12 16:16 Templates
drwxr-xr-x.  2 oracle docker      4096  5月 12 16:16 Videos
-rw-r--r--.  1 root   root     5518732 11月 13  2018 coreutils-8.22-23.el7.src.rpm
drwxr-xr-x. 25 oracle docker      4096  5月 25 12:58 docker-images
drwxr-xr-x.  4 oracle docker      4096  6月  3 06:33 doclan
drwxr-xr-x.  7 oracle docker      4096  6月  3 22:00 ff
drwxr-xr-x.  2 oracle docker      4096  6月 14 13:18 gg
drwxr-xr-x.  3 oracle docker      4096  5月 25 15:01 jj
drwxr-xr-x.  6 oracle docker      4096  6月  6 23:23 kk
drwxr-xr-x.  9 oracle docker      4096  6月  9 18:22 pp
drwxr-xr-x. 11 oracle docker      4096  6月 23 08:00 rr
drwxr-xr-x.  2 oracle docker      4096  6月 21 07:38 tmp
drwxr-xr-x.  4 oracle docker      4096  6月  7 19:45 tt
drwxr-xr-x.  7 oracle docker      4096  6月  7 01:06 vx
drwxr-xr-x.  4 oracle docker      4096  5月 25 10:29 weban

[oracle@centos ~]$ mkdir centos_coreutils
[oracle@centos ~]$ ll
合計 380476
-rw-r--r--.  1 oracle docker 383991324  5月 24 04:19 CentOS-7-x86_64-Vagrant-1902_01.Libvirt.box
drwxr-xr-x.  2 oracle docker      4096  6月 23 08:40 Desktop
drwxr-xr-x.  2 oracle docker      4096  6月 14 09:25 Documents
drwxr-xr-x.  2 oracle docker      4096  6月 22 15:06 Downloads
drwxr-xr-x.  2 oracle docker      4096  5月 12 16:16 Music
drwxr-xr-x.  2 oracle docker      4096  6月 14 20:02 Pictures
drwxr-xr-x.  2 oracle docker      4096  5月 12 16:16 Public
drwxr-xr-x.  2 oracle docker      4096  5月 12 16:16 Templates
drwxr-xr-x.  2 oracle docker      4096  5月 12 16:16 Videos
drwxr-xr-x.  2 oracle docker      4096  6月 23 08:42 centos_coreutils
-rw-r--r--.  1 root   root     5518732 11月 13  2018 coreutils-8.22-23.el7.src.rpm
drwxr-xr-x. 25 oracle docker      4096  5月 25 12:58 docker-images
drwxr-xr-x.  4 oracle docker      4096  6月  3 06:33 doclan
drwxr-xr-x.  7 oracle docker      4096  6月  3 22:00 ff
drwxr-xr-x.  2 oracle docker      4096  6月 14 13:18 gg
drwxr-xr-x.  3 oracle docker      4096  5月 25 15:01 jj
drwxr-xr-x.  6 oracle docker      4096  6月  6 23:23 kk
drwxr-xr-x.  9 oracle docker      4096  6月  9 18:22 pp
drwxr-xr-x. 11 oracle docker      4096  6月 23 08:00 rr
drwxr-xr-x.  2 oracle docker      4096  6月 21 07:38 tmp
drwxr-xr-x.  4 oracle docker      4096  6月  7 19:45 tt
drwxr-xr-x.  7 oracle docker      4096  6月  7 01:06 vx
drwxr-xr-x.  4 oracle docker      4096  5月 25 10:29 weban


[oracle@centos ~]$ cd centos_coreutils
[oracle@centos centos_coreutils]$ pwd
/home/oracle/centos_coreutils


[oracle@centos centos_coreutils]$ ll
合計 5744
-rw-rw-r--. 1 oracle docker     868  6月 23 08:44 coreutils-4.5.3-langinfo.patch
-rw-rw-r--. 1 oracle docker    5427  6月 23 08:44 coreutils-6.10-configuration.patch
-rw-rw-r--. 1 oracle docker     576  6月 23 08:44 coreutils-6.10-manpages.patch
-rw-rw-r--. 1 oracle docker     617  6月 23 08:44 coreutils-7.4-sttytcsadrain.patch
-rw-rw-r--. 1 oracle docker    1471  6月 23 08:44 coreutils-8.2-uname-processortype.patch
-rw-rw-r--. 1 oracle docker    3758  6月 23 08:44 coreutils-8.22-cp-selinux.patch
-rw-rw-r--. 1 oracle docker   11416  6月 23 08:44 coreutils-8.22-cp-sparsecorrupt.patch
-rw-rw-r--. 1 oracle docker    1633  6月 23 08:44 coreutils-8.22-date-emptyTZ.patch
-rw-rw-r--. 1 oracle docker   16663  6月 23 08:44 coreutils-8.22-dd-progress.patch
-rw-rw-r--. 1 oracle docker    1575  6月 23 08:44 coreutils-8.22-df-autofs.patch
-rw-rw-r--. 1 oracle docker   18860  6月 23 08:44 coreutils-8.22-df-filtermountlistupdate.patch
-rw-rw-r--. 1 oracle docker    3651  6月 23 08:44 coreutils-8.22-df-getdisk.patch
-rw-rw-r--. 1 oracle docker    2773  6月 23 08:44 coreutils-8.22-df-stat.patch
-rw-rw-r--. 1 oracle docker    5801  6月 23 08:44 coreutils-8.22-du-bindmountcycles.patch
-rw-rw-r--. 1 oracle docker    1363  6月 23 08:44 coreutils-8.22-failingtests.patch
-rw-rw-r--. 1 oracle docker    1477  6月 23 08:44 coreutils-8.22-id-groups.patch
-rw-rw-r--. 1 oracle docker    6854  6月 23 08:44 coreutils-8.22-ls-interruption.patch
-rw-rw-r--. 1 oracle docker   14467  6月 23 08:44 coreutils-8.22-mv-hardlinksrace.patch
-rw-rw-r--. 1 oracle docker   37417  6月 23 08:44 coreutils-8.22-mv-n-noreplace.patch
-rw-rw-r--. 1 oracle docker    6740  6月 23 08:44 coreutils-8.22-newfilesystems.patch
-rw-rw-r--. 1 oracle docker   10225  6月 23 08:44 coreutils-8.22-non-defaulttests.patch
-rw-rw-r--. 1 oracle docker    1895  6月 23 08:44 coreutils-8.22-ppc64le.patch
-rw-rw-r--. 1 oracle docker    4559  6月 23 08:44 coreutils-8.22-selinux-optionsseparate.patch
-rw-rw-r--. 1 oracle docker    1145  6月 23 08:44 coreutils-8.22-sort-blanks.patch
-rw-rw-r--. 1 oracle docker     563  6月 23 08:44 coreutils-8.22-temporarytestoff.patch
-rw-rw-r--. 1 oracle docker     588  6月 23 08:44 coreutils-8.22-vxfs-noinotify.patch
-rw-rw-r--. 1 oracle docker    1226  6月 23 08:44 coreutils-8.22-xfs-tests.patch
-rw-rw-r--. 1 oracle docker    2593  6月 23 08:44 coreutils-8.22-xfsbuildfailure.patch
-rw-rw-r--. 1 oracle docker 5335124  6月 23 08:44 coreutils-8.22.tar.xz
-rw-rw-r--. 1 oracle docker     685  6月 23 08:44 coreutils-8.4-mkdir-modenote.patch
-rw-rw-r--. 1 oracle docker    5090  6月 23 08:44 coreutils-DIR_COLORS
-rw-rw-r--. 1 oracle docker    5725  6月 23 08:44 coreutils-DIR_COLORS.256color
-rw-rw-r--. 1 oracle docker    4669  6月 23 08:44 coreutils-DIR_COLORS.lightbgcolor
-rwxrwxr-x. 1 oracle docker    1741  6月 23 08:44 coreutils-colorls.csh
-rwxrwxr-x. 1 oracle docker    1606  6月 23 08:44 coreutils-colorls.sh
-rw-rw-r--. 1 oracle docker    6026  6月 23 08:44 coreutils-df-direct.patch
-rw-rw-r--. 1 oracle docker    2291  6月 23 08:44 coreutils-getgrouplist.patch
-rw-rw-r--. 1 oracle docker    2509  6月 23 08:44 coreutils-i18n-fold-newline.patch
-rw-rw-r--. 1 oracle docker    3070  6月 23 08:44 coreutils-i18n-sort-memleak.patch
-rw-rw-r--. 1 oracle docker  147328  6月 23 08:44 coreutils-i18n.patch
-rw-rw-r--. 1 oracle docker     331  6月 23 08:44 coreutils-overflow.patch
-rw-rw-r--. 1 oracle docker   19930  6月 23 08:44 coreutils-selinux.patch
-rw-rw-r--. 1 oracle docker    2249  6月 23 08:44 coreutils-selinuxmanpages.patch
-rw-rw-r--. 1 oracle docker   72699  6月 23 08:44 coreutils.spec
-rw-rw-r--. 1 oracle docker     590  6月 23 08:44 sh-utils-2.0.11-dateman.patch


[oracle@centos centos_coreutils]$ tar -xvf coreutils-8.22.tar.xz


[oracle@centos src]$ ll
合計 2808
-rw-r--r--. 1 oracle docker   8640 12月  4  2013 base64.c
-rw-r--r--. 1 oracle docker   4919 12月  4  2013 basename.c
-rw-r--r--. 1 oracle docker   5290 12月  4  2013 c99-to-c89.diff
-rw-r--r--. 1 oracle docker  22725 12月  4  2013 cat.c
-rw-r--r--. 1 oracle docker  16355 12月  4  2013 chcon.c
-rw-r--r--. 1 oracle docker   8836 12月  4  2013 chgrp.c
-rw-r--r--. 1 oracle docker  15845 12月  4  2013 chmod.c
-rw-r--r--. 1 oracle docker  17246 12月  4  2013 chown-core.c
-rw-r--r--. 1 oracle docker   2281 12月  4  2013 chown-core.h
-rw-r--r--. 1 oracle docker  10116 12月  4  2013 chown.c
-rw-r--r--. 1 oracle docker   6821 12月  4  2013 chroot.c
-rw-r--r--. 1 oracle docker   9879 12月  4  2013 cksum.c
-rw-r--r--. 1 oracle docker  12863 12月  4  2013 comm.c
-rw-r--r--. 1 oracle docker 102362 12月  5  2013 copy.c
-rw-r--r--. 1 oracle docker  10637 12月  4  2013 copy.h
-rw-r--r--. 1 oracle docker   4645 12月  4  2013 cp-hash.c
-rw-r--r--. 1 oracle docker    204 12月  4  2013 cp-hash.h
-rw-r--r--. 1 oracle docker  39399 12月  5  2013 cp.c
-rw-r--r--. 1 oracle docker  39607 12月  4  2013 csplit.c
-r--r--r--. 1 oracle docker   3209 12月 13  2013 cu-progs.mk
-rw-r--r--. 1 oracle docker  22606 12月  4  2013 cut.c
-rw-r--r--. 1 oracle docker  16993 12月  4  2013 date.c
-rwxr-xr-x. 1 oracle docker   1334 12月  4  2013 dcgen
-rw-r--r--. 1 oracle docker  72722 12月  4  2013 dd.c
-rw-r--r--. 1 oracle docker  46625 12月  4  2013 df.c
-rw-r--r--. 1 oracle docker  12875 12月  4  2013 dircolors.c
-r--r--r--. 1 oracle docker  18409 12月  9  2013 dircolors.h
-rw-r--r--. 1 oracle docker   4582 12月  4  2013 dircolors.hin
-rw-r--r--. 1 oracle docker   3188 12月  4  2013 dirname.c
-rw-r--r--. 1 oracle docker  33767 12月  4  2013 du.c
-rw-r--r--. 1 oracle docker   7630 12月  4  2013 echo.c
-rw-r--r--. 1 oracle docker   4387 12月  4  2013 env.c
-rw-r--r--. 1 oracle docker  11212 12月  4  2013 expand.c
-rw-r--r--. 1 oracle docker  21189 12月  4  2013 expr.c
-rw-r--r--. 1 oracle docker   7620 12月  4  2013 extent-scan.c
-rw-r--r--. 1 oracle docker   2099 12月  4  2013 extent-scan.h
-rw-r--r--. 1 oracle docker   4637 12月  4  2013 extract-magic
-rw-r--r--. 1 oracle docker  74954 12月  4  2013 factor.c
-rw-r--r--. 1 oracle docker     51 12月  4  2013 false.c
-rw-r--r--. 1 oracle docker   3052 12月  4  2013 fiemap.h
-rw-r--r--. 1 oracle docker   3345 12月  4  2013 find-mount-point.c
-rw-r--r--. 1 oracle docker    836 12月  4  2013 find-mount-point.h
-rw-r--r--. 1 oracle docker  28532 12月  4  2013 fmt.c
-rw-r--r--. 1 oracle docker   8195 12月  4  2013 fold.c
-r--r--r--. 1 oracle docker   3921 12月 13  2013 fs-is-local.h
-r--r--r--. 1 oracle docker   3571 12月 13  2013 fs.h
-rw-r--r--. 1 oracle docker   5221 12月  4  2013 getlimits.c
-rw-r--r--. 1 oracle docker   3121 12月  4  2013 group-list.c
-rw-r--r--. 1 oracle docker    865 12月  4  2013 group-list.h
-rw-r--r--. 1 oracle docker   3837 12月  4  2013 groups.c
-rw-r--r--. 1 oracle docker  32194 12月  4  2013 head.c
-rw-r--r--. 1 oracle docker   2355 12月  4  2013 hostid.c
-rw-r--r--. 1 oracle docker   3107 12月  4  2013 hostname.c
-rw-r--r--. 1 oracle docker  12624 12月  4  2013 id.c
-rw-r--r--. 1 oracle docker  30866 12月  4  2013 install.c
-rw-r--r--. 1 oracle docker   2710 12月  4  2013 ioblksize.h
-rw-r--r--. 1 oracle docker  32132 12月  4  2013 join.c
-rw-r--r--. 1 oracle docker   8823 12月  4  2013 kill.c
-rw-r--r--. 1 oracle docker     37 12月  4  2013 lbracket.c
-rw-r--r--. 1 oracle docker   4724 12月  4  2013 libstdbuf.c
-rw-r--r--. 1 oracle docker   2605 12月  4  2013 link.c
-rw-r--r--. 1 oracle docker  21549 12月  4  2013 ln.c
-rw-r--r--. 1 oracle docker  17421 12月  4  2013 local.mk
-rw-r--r--. 1 oracle docker   2259 12月  4  2013 logname.c
-rw-r--r--. 1 oracle docker  78147 12月  4  2013 longlong.h
-rw-r--r--. 1 oracle docker     44 12月  4  2013 ls-dir.c
-rw-r--r--. 1 oracle docker     37 12月  4  2013 ls-ls.c
-rw-r--r--. 1 oracle docker     46 12月  4  2013 ls-vdir.c
-rw-r--r--. 1 oracle docker 151003 12月  4  2013 ls.c
-rw-r--r--. 1 oracle docker    201 12月  4  2013 ls.h
-rw-r--r--. 1 oracle docker   5766 12月  4  2013 make-prime-list.c
-rw-r--r--. 1 oracle docker  24492 12月  4  2013 md5sum.c
-rw-r--r--. 1 oracle docker   9062 12月  5  2013 mkdir.c
-rw-r--r--. 1 oracle docker   4933 12月  5  2013 mkfifo.c
-rw-r--r--. 1 oracle docker   8116 12月  5  2013 mknod.c
-rw-r--r--. 1 oracle docker  10046 12月  4  2013 mktemp.c
-rw-r--r--. 1 oracle docker  16286 12月  5  2013 mv.c
-rw-r--r--. 1 oracle docker   6035 12月  4  2013 nice.c
-rw-r--r--. 1 oracle docker  16275 12月  4  2013 nl.c
-rw-r--r--. 1 oracle docker   7907 12月  4  2013 nohup.c
-rw-r--r--. 1 oracle docker   3220 12月  4  2013 nproc.c
-rw-r--r--. 1 oracle docker  41966 12月  4  2013 numfmt.c
-rw-r--r--. 1 oracle docker  57126 12月  4  2013 od.c
-rw-r--r--. 1 oracle docker   2317 12月  4  2013 operand2sig.c
-rw-r--r--. 1 oracle docker    832 12月  4  2013 operand2sig.h
-rw-r--r--. 1 oracle docker  14970 12月  4  2013 paste.c
-rw-r--r--. 1 oracle docker  11819 12月  4  2013 pathchk.c
-rw-r--r--. 1 oracle docker  14943 12月  4  2013 pinky.c
-rw-r--r--. 1 oracle docker  86849 12月  4  2013 pr.c
-r--r--r--. 1 oracle docker 104356 12月  9  2013 primes.h
-rw-r--r--. 1 oracle docker   4059 12月  4  2013 printenv.c
-rw-r--r--. 1 oracle docker  19700 12月  4  2013 printf.c
-rw-r--r--. 1 oracle docker   1174 12月  4  2013 prog-fprintf.c
-rw-r--r--. 1 oracle docker    962 12月  4  2013 prog-fprintf.h
-rw-r--r--. 1 oracle docker  69914 12月  4  2013 ptx.c
-rw-r--r--. 1 oracle docker  10591 12月  4  2013 pwd.c
-rw-r--r--. 1 oracle docker   5112 12月  4  2013 readlink.c
-rw-r--r--. 1 oracle docker   7794 12月  4  2013 realpath.c
-rw-r--r--. 1 oracle docker   3654 12月  4  2013 relpath.c
-rw-r--r--. 1 oracle docker    918 12月  4  2013 relpath.h
-rw-r--r--. 1 oracle docker  19761 12月  4  2013 remove.c
-rw-r--r--. 1 oracle docker   3015 12月  4  2013 remove.h
-rw-r--r--. 1 oracle docker  10477 12月  4  2013 rm.c
-rw-r--r--. 1 oracle docker   6786 12月  4  2013 rmdir.c
-rw-r--r--. 1 oracle docker   8035 12月  4  2013 runcon.c
-rw-r--r--. 1 oracle docker   8986 12月  4  2013 selinux.c
-rw-r--r--. 1 oracle docker   1459 12月  5  2013 selinux.h
-rw-r--r--. 1 oracle docker  18070 12月  4  2013 seq.c
-rw-r--r--. 1 oracle docker   6033 12月  4  2013 setuidgid.c
-rw-r--r--. 1 oracle docker  40495 12月  4  2013 shred.c
-rw-r--r--. 1 oracle docker  17528 12月  9  2013 shuf.c
-rw-r--r--. 1 oracle docker   3913 12月  4  2013 sleep.c
-rw-r--r--. 1 oracle docker 143380 12月  4  2013 sort.c
-rw-r--r--. 1 oracle docker  46504 12月  4  2013 split.c
-rw-r--r--. 1 oracle docker  46255 12月 13  2013 stat.c
-rw-r--r--. 1 oracle docker  10090 12月  4  2013 stdbuf.c
-rw-r--r--. 1 oracle docker  55677 12月  4  2013 stty.c
-rw-r--r--. 1 oracle docker   6726 12月  4  2013 sum.c
-rw-r--r--. 1 oracle docker   1977 12月  4  2013 sync.c
-rw-r--r--. 1 oracle docker  18060 12月  5  2013 system.h
-rw-r--r--. 1 oracle docker   5973 12月  4  2013 tac-pipe.c
-rw-r--r--. 1 oracle docker  20994 12月  4  2013 tac.c
-rw-r--r--. 1 oracle docker  69842 12月  9  2013 tail.c
-rw-r--r--. 1 oracle docker   5705 12月  4  2013 tee.c
-rw-r--r--. 1 oracle docker  22830 12月  4  2013 test.c
-rw-r--r--. 1 oracle docker  15652 12月  4  2013 timeout.c
-rw-r--r--. 1 oracle docker  13015 12月  4  2013 touch.c
-rw-r--r--. 1 oracle docker  60347 12月  4  2013 tr.c
-rw-r--r--. 1 oracle docker   2233 12月  4  2013 true.c
-rw-r--r--. 1 oracle docker  12173 12月  4  2013 truncate.c
-rw-r--r--. 1 oracle docker  14063 12月  4  2013 tsort.c
-rw-r--r--. 1 oracle docker   3054 12月  4  2013 tty.c
-rw-r--r--. 1 oracle docker     48 12月  4  2013 uname-arch.c
-rw-r--r--. 1 oracle docker     49 12月  4  2013 uname-uname.c
-rw-r--r--. 1 oracle docker   9910 12月  4  2013 uname.c
-rw-r--r--. 1 oracle docker    146 12月  4  2013 uname.h
-rw-r--r--. 1 oracle docker  15221 12月  4  2013 unexpand.c
-rw-r--r--. 1 oracle docker  18932 12月  4  2013 uniq.c
-rw-r--r--. 1 oracle docker   2392 12月  4  2013 unlink.c
-rw-r--r--. 1 oracle docker   6767 12月  4  2013 uptime.c
-rw-r--r--. 1 oracle docker   3610 12月  4  2013 users.c
-rw-r--r--. 1 oracle docker  23793 12月  4  2013 wc.c
-rw-r--r--. 1 oracle docker  22102 12月  4  2013 who.c
-rw-r--r--. 1 oracle docker   2482 12月  4  2013 whoami.c
-rw-r--r--. 1 oracle docker   2312 12月  4  2013 yes.c