-출력
cat
 용법: tac [OPTION]... [FILE]...
 설명: 파일을 표준입력에서 읽어서 표준출력으로 보낸다.

tac
 용법: tac [OPTION]... [FILE]...
 설명: cat의 역동작,파일은 뒤에서부터 출력해준다.

 
-비교
cmp
 용법: cmp [-c] [-i N] [-l] [-s] [-v] file1 file2
 설명: 두 파일을 비교하여 결과를 표준출력으로 내보냄

diff
 용법: diff [-b] [-i] [-t] [-w] [-c] [-C] [-e] [-f] [-h] [-n] [-D string] [-l] [-r] [-s] [-S name] [file1 file2 ] [directory1 directory2]
 설명: 2개의 파일을 비교 출력

diff3
 용법: cmp [ -l  | -s ] file1 file2 [ skip1 [ skip2 ] ]
 설명: 3개의 파일을 비교 출력

comm
 용법: comm [ -1 | -2 | -3 ] file1 file2
 설명: 파일의 각 라인을 비교하여 출력,첫번째 열은 file1에만 있는 내용,두번째 열은 file2에만 있는 내용,세번째 열은 공통적인 내용
         단 정렬된 파일이어야 한다.

-삭제
colrm
 용법: colrm [startcol [endcol]]
 설명: 인수로 주어진 열을 삭제
column
 용법: column [ -tx ] [ -c culumns ] [ -s sep ] [ file .... ]  
 설명: 입력된 내용을 여러 컬럼으로 나누어 출력한다. 먼저 가로로 출력하고, 세로로 채워나간다.
cut
 용법: cut [-b] [-c] [-f] list [-n] [-d delim] [-s] [file]
 설명: 파일의 각 라인에서 지정한 필드를 잘라낸다.
uniq
 용법: uniq [-c | -d | -u ] [ -f fields ] [ -s char ] [-n] [+m] [input_file [ output_file ] ]
 설명: 인접한 줄에 중복된 내용이 있을 경우, 하나만 출력

-파일 분할
csplit
 용법: csplit [-k] [-s] [ -f prefix ] [ -n number ] file arg1 argn
 설명: 파일은 지정한 인자에 따라 분할한다.
split
 용법: split [-linecount | -l linecount ] [ -a suffixlength ] [file [name] ]
 설명: 파일은 일정한 크기로 자른다.

-치환
expand
 용법: expand [ -t tablist ] [-tabstop] [-tab1, tab2,. . ., tabn] [ file ... ]
 설명: 파일의 탭키를 공백으로 바꾼다.
 옵션:
unexpand
 용법: expand [ -t tablist ] [-tabstop] [-tab1, tab2,. . ., tabn] [ file ... ]
 설명: expand명령과 반대, 공백을 탭으로 변환
tr
 용법: tr [-c] [-d] [-s] [string1] [string2]
 설명: 문자를 바꾸거나(translate) 지운다.

-포매팅
fmt
 용법: fmt [-c] [-s] [-w width | -width ] [inputfile]
 설명: 간단한 텍스트 포매터, 옵션에 따라 출력파일의 가독성을 높일 수 있다.
fold
 용법: fold [ -bs ] [-w width | -width] [file]  
 설명: 간단한 텍스트 포매터, 긴 줄을 잘라서 주어진 폭 이하가 되도록 한다.

-파일병합
paste
 용법: paste [-s] [-d list] file
 설명: 파일들을 열로 합친다.





Posted by novice9

댓글을 달아 주세요

미디어위키를 사용하다 보면 가끔 내가 편집한 글이 제대로 반영되지 않거나, 파일을 업로드할 수 없는 경우가 생긴다.

아직도 정확한 이유는 알 수 없다. 어쩌면 영문에서는 정상적으로 될 수도 있다.

아래 경우도 그러한 경우이다.

나는 문서를 독립적으로 편집하고 그 문서를 관련있는 대주제 문서안에 링크를 걸거나 포함시켜 놓는 방법을 자주 사용한다.

~~~대주제 문서 생성 
[[중간 주제]]      <==링크를 건다
{{:중간 주제}}  <==포함시킨다.

~~~중간주제 문서 생성
{{Template:소주제}}  <==틀 문서를 만들어 포함시킨다.

~~~틀:소주제 문서 생성
    내용    <==내용을 넣는다..

그런데 문제가 생겼다. 틀문서로 만들어진 소주제의 내용이 바뀌었는데도 대주제 문서에 포함되어 나타나는 소주제문서의 내용은 그대로인 것이다.

이유는 모르겠지만 다음 스크립트를 사용하니 해결되었다.

$ cd  ~/public_html/wiki/maintenance/    <==maintenance 폴더로 이동한다.
$ php update.php

설명은 아래 링크를 참고하라..

주1) 가만 생각해보니 대주제 문서를 약간 편집해서 저장하고 다시 열어보았으면 되었을 지도 모르겠다.
다음에 동일한 문제가 생기면 시험해 보아야 하겠다.
 
 
Posted by novice9

댓글을 달아 주세요

  1. Favicon of http://notes.textcube.com BlogIcon notes 2009.10.12 21:11 신고  댓글주소  수정/삭제  댓글쓰기

    역시 우연이란 없는 모양이다. 또 위키를 편집하던 중 동일한 문제가 생기는 것을 발견했다. 위에서는 update.php를 사용하여 해결했지만, 문제가 된 페이지를 다시 한 번 저장해 주는 것으로 해결은 되었다....원인은 모른다...

여러 사용자가 동시에 사용할 가능성이 있는 게시판을 사용하다 보면 생기는 문제가 있다. 바로 동일한 글을 여러 사람이 동시에 편집하다 보면, 누군가가 힘들여 편집한 글이 날아가는 문제점이다.

 

게시판 프로그램은 댓글형식으로 설계되었으니 그렇다 치고, 위키(wiki)는 더욱 문제이다. 물론 미디어위키에서는 history(역사)기능으로 차이점을 비교해서 결국 살려낼 수 있기는 하겠지만, 동시에 다른 누군가가 자신과 같은 페이지를 편집하고 있는 지 미리 알 수 있다면 더욱 더 도움이 될 것이다.

 

이런 때 쓸 수 있는 것이 미디어위키(mediawiki) 의Ajax Show Editors Extension 이다.

 

참고링크: http://www.mediawiki.org/wiki/Extension:Ajax_Show_Editors

 

1. 자신이 사용하고 미디어위키(mediawiki) 버전에 따라 파일을 다운로드한다.

debian:~/temp$ wget http://upload.wikimedia.org/ext-dist/AjaxShowEditors-MW1.14-r45265.tar.gz
--11:20:51--  http://upload.wikimedia.org/ext-dist/AjaxShowEditors-MW1.14-r45265.tar.gz
           => `AjaxShowEditors-MW1.14-r45265.tar.gz'
Resolving upload.wikimedia.org... 208.80.152.3
Connecting to upload.wikimedia.org|208.80.152.3|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 25,249 (25K) [application/x-tar]

100%[======================================================================================>] 25,249        36.27K/s

11:20:52 (36.19 KB/s) - `AjaxShowEditors-MW1.14-r45265.tar.gz' saved [25249/25249]

debian:~/temp$ tar -xvzf AjaxShowEditors-MW1.14-r45265.tar.gz
AjaxShowEditors/
AjaxShowEditors/AjaxShowEditors.css
AjaxShowEditors/AjaxShowEditors.i18n.php
AjaxShowEditors/AjaxShowEditors.js
AjaxShowEditors/COPYING
AjaxShowEditors/Hooks.php
AjaxShowEditors/Load.php
AjaxShowEditors/README
AjaxShowEditors/Response.php
AjaxShowEditors/patch-editings.pg.sql
AjaxShowEditors/patch-editings.sql

 

2. mediawiki의 extensions 하위 디렉토리로 AjaxShowEditors 디렉토리를 복사한다.

 

3. 데이터베이스 종류에 따른 패치를 적용한다.

  대부분 MySQL을 사용하고 있을 것이다. 이 경우 패치적용할 파일이름은 patch-editings.sql 이다.

debian:~/temp$ mysql -u root -pxxxx
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 194521
Server version: 5.0.32-Debian_7etch8-log Debian etch distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use mediawiki;                           <==반드시 wiki데이터베이스를 선택    
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> CREATE TABLE /*$wgDBprefix*/editings (
    ->   `editings_page` int(8) NOT NULL,
    ->   `editings_user` varchar(255) NOT NULL,
    ->   `editings_started` char(14) NOT NULL,
    ->   `editings_touched` char(14) NOT NULL,
    ->   PRIMARY KEY  (`editings_page`,`editings_user`),
    ->   KEY `editings_page` (`editings_page`),
    ->   KEY `editings_page_started` (`editings_page`,`editings_user`,`editings_started`)
    -> ) TYPE=MEMORY;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;

 

4. LocalSettings.php 를 편집하여 다음 한 줄을 추가한다.

 

require_once("extensions/AjaxShowEditors/Load.php");

 

5. 한글이 나오게 하기 위해서는 다음파일을 편집하여 다음 내용을 적당한 곳에 삽입한다.

 

debian:$ vi extensions/AjaxShowEditors/AjaxShowEditors.i18n.php

$messages['en'] = array(
        'ajax-se-desc'             => '동일한 문서를 편집하고 있는 사용자를 보여줌',
        'ajax-se-title'            => '편집 시작 시간:',
        'ajax-se-pending'          => '상태 새로고침 대기중… (여기를 클릭하거나 편집을 시작하세요.)',
        'ajax-se-idling'           => '($1초 전)',
        'ajax-se-pagedoesnotexist' => '문서가 존재하지 않습니다.',
        'ajax-se-userinvalid'      => '에러: 유효하지 않은 사용자',
        'ajax-se-usernotfound'     => '에러: 존재하지 않는 사용자',
);

 

6. 다 완료하였다면 편집창에서 다음과 같은 박스가 뜨는 것을 볼 수 있다. 동시에 누군가 문서를 편집하고 있다면 사용자가 표시되는 것은 물론이다.

주1) 당연히 $wgUseAjax = true; 로 설정되어 있어야 한다. 제대로 동작하지 않는다면 LocalSettings.php를 다시 한번 확인한다.

주2) 비슷한 기능을 하는 EditWarning 이라는 Extension 도 있다.

참고링크: http://www.mediawiki.org/wiki/Extension:EditWarning

 

 

Posted by novice9

댓글을 달아 주세요

이전버튼 1 이전버튼

블로그 이미지
이 블로그는 삽질을 기록하는 곳입니다. ^_^
novice9
텍스트큐브,티스토리 검색

달력

 « |  » 2018.10
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

최근에 받은 트랙백

글 보관함

Yesterday185
Today2
Total4,332,580