---
# System prepended metadata

title: 常用 Linux 命令
tags: [Linux]

---

# 常用 Linux 命令

## 切換使用者
* `su pedro` : 切換使用者為 pedro。如果顯示 `password:`，則輸入使用者密碼。
* `chown`: 更改檔案或目錄的擁有者或群組。 
    * `sudo chown pedro test.sh`: 將檔案 test.sh 的擁有者改為 pedro
* `chown -R oracle:oinstall` 更改目錄所有權，此處 oracle 是用戶名，oinstall 是組名
* `sudo chown user:usergroup file`
## 查詢
* `pwd` : 查詢當前路徑
* `ls -lirt`：用於列出目錄的內容。該lrt部分是三個不同選項的組合：
    * l：這是用於長列表的內容。它在每一行中顯示一個文件，其中包含其他信息，例如權限、所有權、大小、時間戳等。
        * `ls -l test.sh`：檢查檔案可執行權限
    * t：這是根據時間對長列表輸出進行排序。
    * r：這個倒轉ls命令輸出的順序
    * i：顯示文件或目錄的 Inode 編號或索引編號在創建時分配給每個文件和目錄唯一的文件和目錄。

* `lshw` : 查詢硬體規格
* `lscpu`: 查詢CPU
* `man 指令` : 查看指令說明文件(詳細)
    * `man cp` : 查看 cp 說明文件
* `-h`,`--help` : 查看指令說明(簡易)
    * `cp -h` : 查看 cp 指令說明
## 查詢服務
* `ps -aux` : 系統所有的程序
* `ps -l`: 自己的程序
* `service  xxx  status`: 查看服務 xxx 狀態

##  目錄操作
* cd : 切換目錄
    * `cd ../` : 切換至上一層 
    * `cd -` : 切換至上一次目錄
* mkdir -p 創建文件夾

## Vim 
* vi 修改文件內容
	* i 開始進入編輯模式
	* / 執行搜索
	* :q 退出
	* :q! 不保存退出
	* :wq 保存退出

* `rpm -qa|grep` 查詢 rpm 包是否安裝
* `rpm -Uvh` 安裝 rpm 包
* `yum -y install` 通過 yum 源安裝 package 包，如果有前置依賴，也會自動安裝好
* `rm -f` 刪除文件
* `rm -rf` 刪除文件夾及下面所有文件
* `rm -r my_directory` : 刪除路徑
* unzip 解壓 zip 格式的壓縮文件
* xhost +
    還沒有執行 xhost +之前，執行 echo $DISPLAY，檢查當前變量值，默認應該為“:1”，
    然後執行 xhost +命令，再次檢查 DISPLAY 變量值，如果為空，則設置為“:1”。
* `touch test.sh`：建立 test.sh shell檔案
* `chmod +x test.sh`：設定檔案可執行

* `bash test.sh` 或直接打檔名：執行 shell 檔案
* `chmod -R 777` 給目錄所有權限

* `find $ORACLE_BASE -name "init.ora*"` 在指定目錄下尋找指定的文件
* `tar -zxvf` 解壓*.tar.gz 的壓縮包
* `tar -xvf` 解壓*.tar 的壓縮包
* mv 移動一個文件夾到另外一個位置
* cp -r 拷貝一個文件或者文件夾到另外一個位置
* `lsof -i:端口號碼` 查看端口號碼被佔用的情況
    * `lsof -i :5099` 查看 5099 端口是否被佔用
* `ps -ef|grep tomee`：查看 tomee 的進程
* `kill -s 9` 進程編號：強制關閉某個進程(process)

* `netstat -an | grep 1521` 查看 1521 端口是否被佔用
* `cat /etc/hostname` 查看主機名
* `df -hl` 查看硬碟使用情況

* `tree `：顯示資料夾結構。
(初次使用需要先安裝，`sudo apt install tree`)
![](https://hackmd.io/_uploads/SJADxPv22.png)

* `tree -a`：顯示資料夾結構(All Files)
![](https://hackmd.io/_uploads/r1puxPv2n.png)


* 刪除非空資料夾
`rm -r abc`：-r(遞迴)刪除非空資料夾 abc。
`rm -rf abc`：加上 -f，不要求確認的情況下強行刪除或刪除防寫的內容。



* VM Sharedfolder
    > ### UBUNTU OR DEBIAN DISTRIBUTION ###
    > $ sudo apt-get install open-vm-tools open-vm-tools-desktop
    > $ sudo apt-get install build-essential module-assistant linux-headers-virtual linux-image-virtual && dpkg-reconfigure open-vm-tools
    > ### CENTOS DISTRIBUTION ###
    > $ sudo yum install open-vm-tools open-vm-tools-desktop
    > $ sudo yuminstall build-essential module-assistant linux-headers-virtual linux-image-virtual && dpkg-reconfigure open-vm-tools

### Error
RPM: error: cannot open Packages database in /var/lib/rpm RHEL8
* Fix the rpm database by run database recovery:
[root@localhost ~]$  db_recover -h /var/lib/rpm
* Clean yum cache:
[root@localhost ~]$  yum clean all



---

Ref: [Linux Command](http://linuxcommand.org/index.php)

###### tags: `Linux`

