Linux 命令大全

  • 注意:需提前配置系统环境,比如系统编码为 UTF-8

系统环境配置

1. 设置系统语言

  • 查看系统支持的字符集:localelocale -a
    Ubuntu-locale

  • 查看时间:date
    Ubuntu-date-en

  • 安装中文语言包:sudo apt install language-pack-zh-hans

  • 添加到系统配置文件 .bashrc
    export LANG=zh_CN.UTF-8
    Ubuntu-bashrc-LANG.jpg

  • 重新加载:source .bashrc Ubuntu-locale-result.jpg

一、更新和升级包

1. 更新和升级包

sudo apt update && sudo apt upgrade

2. 安装常用开发环境

sudo apt-get install build-essential

3. 安装软件

sudo apt install tree

4. 删除不需要的包

sudo apt remove gcovr  
sudo apt autoremove

5. 查看已安装的软件

dpkg -l | grep gcovr

6. 查看软件安装的路径

dpkg -L openssh-server
whereis gdb
which gcovr 需要软件包的路径在环境变量 $PATH

7. 查看 apt 中软件的版本

apt search gcc-9

apt-show-versions -a gcovr

apt show gcovr

Ubuntu-apt-show

sudo apt-cache policy libssl-dev

Ubuntu-apt-catche

8. 列出已安装的软件

apt list --installed

Ubuntu-apt-list-installed

9. 添加相应的源

`sudo add-apt-repository ppa:ubuntu-toolchain-r/test`

如果提示 `add-apt-repository: command not found`,需要安装 `sudo apt-get install software-properties-common`

二、pip 使用

1. Ubuntu 1804 安装 pip

安装 pip3:sudo apt install python3-pip
安装 pip2:sudo apt install python-pip

2. 安装软件

pip3 install -U gcovr

3. 列出 pip 已安装的包

pip3 list

Ubuntu-pip3-list

4.查看安装包信息

pip3 show gcovr

Ubuntu-pip3-show

pip3 install pip_search  
pip_search gcovr

pip_search and pip show package

三、shell 操作和常用命令

1、查看输入的命令历史

history

2、删除光标前面的字符串

ctrl + u

3、删除光标后面的字符串

ctrl + k

4、光标定位到头部

ctrl + a

5、光标定位到尾部

ctrl + e

6、命令、路径补全

Tab

7、缩写别名

alias

8、查看说明

man 5 passwd

9、宿主目录

~

10、查看目录内容

tree ~

11、打印工作目录

pwd

12、表示当前用户是普通用户 $

13、表示当前用户是超级用户 #

14、切换超级用户

sudo su

切换超级用户

15、 查看文件和目录

ls
ls -a
ls -l       # -rwxrw-r-- 1 rick rick 0 Feb 12 18:37 test
ls -lh
ls -alF     # drwxr-xr-x 1 rick rick 4096 Feb 12 18:37 rick/
ll

16、 cd

cd /home/rick
cd ~
cd
cd -    # 切换到上一个的历史目录

17、 mkdir 目录名

mkdir aa
mkdir aa/bb
rm aa -r
mkdir aa/bb/cc -p

18、 touch 文件名

  • 如果文件不存在,则创建文件
  • 如果文件存在,更新文件时间

19、 rmdir 删除空目录

  • 只能删除空目录

20、 rm 删除目录和文件

  • 删除后很难恢复
rm -r       # 用递归的方式删除目录
rm -ri      # 提示
rm aa/* -r  # 删除 aa 目录下的所有文件和目录

21、 cp 拷贝

cp file file1   # file1 不存在,则创建 file1 并把 file 中的内容拷贝进去
cp file file1   # file1 存在,则会用 file 中的内容覆盖 file1 中的内容
cp file dir     # 将 file 拷贝到 dir 目录下
cp dir dir1     # dir1 目录不存在,则把 dir 的所有子目录拷贝到 dir1 目录下
rm dir1/* -r
cp dir dir1     # dir1 目录存在,则把 dir 整个目录拷贝到 dir1 目录下
cp -r nginx_build/* nginx

22、 mv

mv file file1   # file1 不存在,则是将 file 文件改名为 file1
mv file file1   # file1 存在,则用 file 中的内容覆盖 file1 中的内容,并删除 file
mv file dir     # dir 存在,将 file 移动到 dir 目录下
mv dir dir1     # dir1 不存在,就是将 dir 改名为 dir1
mv dir dir1     # dir1 存在,则将 dir 目录移动到 dir1下

23、 cat 将文件内容打印到终端

  • 适用文件内容较小的情况

23、 more 将文件内容打印到终端

  • 不能向上翻页
  • Enter 向下滚动一行
  • 空格:向下翻页
  • 退出:q

23、 less 将文件内容打印到终端

  • Enterctrl + n : 向下滚动一行
  • ctrl + p : 向上滚动一行
  • pgdn : 向下翻页
  • 空格 : 向下翻页
  • pgup : 向上翻页
  • q : 退出

23、 head 打印文件内容的前 10 行到终端

24、 tail 打印文件内容的后 10 行到终端

25、 ln 创建软硬链接

  1. 创建软链接 ln -s 原文件名 链接名称
  2. 创建硬链接(在其他多个目录中管理文件,并且能时时同步修改) ln 文件名 链接名

硬链接

26、 chmod 修改权限

chmod uo-rw program
chmod u+r,g-x program
chmod -440 program
chmod 777 program

27、 chown 修改所有者或所属组

sudo chown sys program
sudo chown rick:sys program

28、 chgrp 所属组

sudo chgrp rick program

29、 find 查找

find ./ -name "program"           # 按文件名查找
find ./ -type f                   # 按文件类型查找(7种)
find ./ -size -4k
find ./ -size +2k -size -10k      # 按文件大小查找
find ./ -ctime -1                 # 按日期查找(-ctime、-mtime、-atime)
find ./ -type d -exec ls -l {} \; # 查找指定目录,并列出该目录中文件详细信息
find ./ -type d | xargs ls -l     # 利用管道,效率较高
find ./ -mtime -3 -type f -exec cp {} ./test \; # 按日期查找并拷贝到指定目录 test

30、 grep 所属组

grep -r "hello" ./ -n

31、 写入文件

ls -l > fileinfo

32、 usermod 修改用户组

# 查看当前用户所属组
groups 用户名
# 一个用户仅仅属于某一个组,而不是同时属于多个组
sudo usermod -g 组名 用户名
# 给一个用户添加一个新的组,同时保留原来的组
sudo usermod -a -G 组名 用户名

33、查看环境变量

env

34、修改环境变量

修改 ~/.bashrc 文件(当前用户)或 /etc/profile 文件(所有用户)

export PATH="/mnt/h/wsl/emsdk:/mnt/h/wsl/emsdk/upstream/emscripten:/mnt/h/wsl/emsdk/node/14.18.2_64bit/bin:$PATH"
source ~/.bashrc

35、ldd 列出动态库依赖关系

lddlist, dynamic, dependencies 的缩写

ldd ffmpeg

Linux-ldd

36、which 查找文件

which bash

37、查看进程信息

ps -ef | grep nginx

38、查看程序占用的端口

netstat -tunlp | grep 80
lsof -i:80

39、查看进程 ID(PID)

pgrep -l nginx

39、杀死进程

kill -9 PID
kill PID1 PID2 PID3

四、Linux 文件类型

- 普通文件
d 目录
l 符号链接
p 管道
s 套接字
c 字符设备(鼠标、键盘)
b 块设备(U盘、硬盘)

五、用户类型

user 文件所有者(rwx
group 文件所属组用户(rw-
other 其他用户(r--

六、权限

r
w
x 执行

七、压缩包管理

1. 常见压缩格式

  • .gz –gzip
  • .bz2 –bzip2

2. 常用压缩命令

  • gzip file 压缩
  • gunzip *.gz 解压
  • tar
    • .gz 压缩 tar -czvf test.tar.gz aa program
    • .bz2 压缩 tar -cjvf test.tar.bz2 aa program
    • .gz 解压 tar -xzvf test.tar.gz -C /tmp
    • .bz2 解压 tar -xjvf test.tar.bz2 -C /tmp
    • 详细列举归档文件 tar -tvf nginx.tar.gz
  • rar 需要安装 sudo apt-get install rar
    rar a all aa program
    rar a all aa/ program -r 目录加 -r
    rar x all.rar /tmp
  • zip / unzip 需要安装 sudo apt-get install zip
    zip myzip aa program -r
    unzip myzip.zip -d /tmp

八、软件安装和制作

1. 在线安装 – ubuntu

  • 安装:sudo apt-get(apt) install 安装包名称
  • 卸载:sudo apt-get(apt) remove 软件名称
  • 软件列表更新:sudo apt-get(apt) update
  • 清空缓存:sudo apt-get(apt) clean
  • 缓存路径:/var/cache/apt/archives 中的红色 *.deb 文件

2. 软件包安装

  • 安装:sudo dpkg -i xxx.deb
  • 卸载:sudo dpkg -r 软件名称

3. 源码安装

4. 查看已安装软件

dpkg -l | grep openssh-server

5. 查看软件安装路径

dpkg -L openssh-server

九、ubuntu 启用 root 用户

1. 修改 sshd_config 中的 PermitRootLogin

sudo vim /etc/ssh/sshd_config

ubuntu_sshd_config

2. 重启 ssh 守护进程

sudo service ssh restart

如果终端显示 ssh:unrecognized service,可能是因为服务没开启,通过命令 service ssh status 查看服务状态,可通过命令 sudo /etc/init.d/ssh start 启动服务

参考

  1. ubuntu下查看用pip安装的包的位置以及dist-packages和site-packages区别
  2. Linux:Ubuntu系统查看软件所有版本,安装指定版本软件
  3. Linux Ubuntu 20.04LTS安装OpenSSL步骤
  4. apt-get安装、卸载、更新、查询软件包
  5. ubuntu18.04中python3安装pip
  6. Linux杂记–Ubuntu 将系统编码设置为UTF-8,时区设置为中国上海的方法
  7. 【Linux】使用 apt-get 查询并安装指定版本的软件
  8. linux根据文件时间复制