【初心者エンジニア Presents】 よく使うLinuxコマンドメモ

# 目次
- [1. はじめに](#1-はじめに)
- [2. 基本系](#2-基本系)
  - [2.1. pwd](#21-pwd)
  - [2.2. cd](#22-cd)
  - [2.3. ls](#23-ls)
  - [2.4. mkdir](#24-mkdir)
  - [2.5. cat](#25-cat)
  - [2.6. find](#26-find)
  - [2.7. cp](#27-cp)
  - [2.8. mv](#28-mv)
  - [2.9. rm](#29-rm)
  - [2.10. ln](#210-ln)
  - [2.11. more](#211-more)
  - [2.12. touch](#212-touch)
- [3. 管理系](#3-管理系)
  - [3.1. who](#31-who)
  - [3.2. chmod](#32-chmod)
  - [3.3. chown](#33-chown)
  - [3.4. chgrp](#34-chgrp)
  - [3.5. umask](#35-umask)
  - [3.6. su](#36-su)
- [4. 特徴的系](#4-特徴的系)
  - [4.1. | 『パイプライン』](#41--パイプライン)
  - [4.2. <, >, >> 『リダイレクト』](#42----リダイレクト)
  - [4.3. grep](#43-grep)
  - [4.4. sort](#44-sort)
  - [4.5. cut](#45-cut)
  - [4.6. tee](#46-tee)
- [5. おわりに](#5-おわりに)


# 1. はじめに
こんにちは、初心者エンジニアです。
働く中でLinuxのコマンドがわからなくなり、調べてしまうことが多々あるため、メモとしてまとめることにしました。    
テスト環境ということで、基本rootで行ってます。
オプション等はまた別の機会に...
  
# 2. 基本系

## 2.1. pwd
**カレントディレクトリを表示**  

```:Command
# pwd
/root 
``` 
## 2.2. cd  
**ディレクトリの変更**

```:Command
# cd /tmp
# pwd
/tmp
``` 

## 2.3. ls
**ディレクトリにあるファイル等を表示**

```:Command
# ls /
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
``` 

## 2.4. mkdir
**ディレクトリの作成**

```:Command
# mkdir test
# ls -F
test/
``` 

## 2.5. cat
**ファイルの表示&連結**

```:Command
# cat test1
This is a pen.
``` 

## 2.6. find
**ファイル等の検索**

```:Command
# find ./test1
./test1
``` 

## 2.7. cp
**ファイル等のコピー**

```:Command
# mkdir /tmp/testdir 
# cp test1 /tmp/testdir 
# ls /tmp/testdir
test1
``` 

## 2.8. mv
**ファイル等の移動&名前変更**

```:Command
# mv /tmp/testdir/test1 /tmp/testdir/test2
# ls /tmp/testdir
test2
# mv /tmp/testdir/test2 /root
# ls /root
test1 test2
``` 

## 2.9. rm
**ファイル等の消去**

```:Command
# rm test2
rm: remove rehular file 'test2'? y
# ls
test1
``` 

## 2.10. ln
**ファイル等のリンクを作成**

```:Command
# pwd
/tmp/testdir
# ln -s /root/test1 testfile
# ls -l
lrwxrwxrwx 1 root root 11 xxxxxxxxx testfile -> /root/test1
``` 

## 2.11. more
**ファイルを画面ごとに表示**

```:Command
# more test1
``` 

## 2.12. touch
**ファイルのタイムスタンプを更新&無のファイル作成**

```:Command
# touch test2
# ls
test1 test2
``` 

# 3. 管理系

## 3.1. who
**ログインしているユーザーを表示**

```:Command
# who
root    tty1    xxxxxxxxx
``` 

## 3.2. chmod
**ファイル等の権限変更**

```:Command
# ls -l
-rw-r--r-- 1 root root 15 xxxxxxxxx test1
# chmod 755 test1
# ls -l
-rwxr-xr-x 1 root root 15 xxxxxxxxx test1
```  

## 3.3. chown
**ファイル等の所有者&グループ変更**

```:Command
# ls -l
-rwxr-xr-x 1 root root 15 xxxxxxxxx test1
# chown user1 test1
# ls -l
-rwxr-xr-x 1 user1 root 15 xxxxxxxxx test1
```  

## 3.4. chgrp
**ファイル等のグループ変更**

```:Command
# ls -l
-rwxr-xr-x 1 user1 root 15 xxxxxxxxx test1
# chgrp user1 test1
# ls -l
-rwxr-xr-x 1 user1 user1 15 xxxxxxxxx test1
```  

## 3.5. umask
**ファイル等を作成した時のデフォルト権限の確認&変更**

```:Command
# umask
0022
# umask 077
# umask
0077
``` 
## 3.6. su
**別ユーザーでコマンド実行**

```:Command
# whoami
user1
# cat /tmp/testdir/testfile
cat: /tmp/testdir/testfile: Permission denied
# su
Password:
# whoami
root
# cat /tmp/testdir/testfile
This is a pen.
``` 

# 4. 特徴的系

## 4.1. | 『パイプライン』
**コマンドを組み合わせる**

```:Command
# ls
test1 test2
# ls | grep test1
test1
``` 

## 4.2. <, >, >> 『リダイレクト』
**別のコマンドやファイルに入力、出力を移行**

```:Command
# ls
test1 test2
# ls > test3
# ls
test1 test2 test3
# cat test3
test1
test2
test3
``` 

## 4.3. grep
**絞り込み**

```:Command
# cat test3 | grep test2
test2
``` 

## 4.4. sort
**並び替え**

```:Command
# cat test3
test1
test2
test3
# sort -r test3
test3
test2
test1
``` 

## 4.5. cut
**切り取り**

```:Command
# cat test1
This is a pen.
#cut -c 3-7 test1
is is
``` 

## 4.6. tee
**標準出力とファイル出力を行う**

```:Command
# sort -r test3 | tee test4
test3
test2
test1
# ls
test1 test2 test3 test4
``` 

# 5. おわりに
個人的な感想ですが、ここ数ヶ月ですっかりLinuxに魅了されました。
コマンドのボキャブラリーが増えたら、記事更新か別記事にまとめたいと思います。