Linux常用操作总结

工作中难免要对Linux系统操作,经常要百度,在此做个总结记录,持续更新。。。。。

重启docker

systemctl start docker

 

解压

filename.zip的解压:

unzip filename.zip

filename.tar.gz的解压:

tar -zxvf filename.tar.gz

其中zxvf含义分别如下

z:   gzip              压缩格式

x:   extract          解压

v:   verbose        详细信息

f:   file(file=archieve)    文件

filename.tar.bz2的解压:

tar -jxvf filename.tar.bz2

j:   bzip2          压缩格式

其它选项和tar.gz解压含义相同

filename.tar.xz的解压: 

tar -Jxvf filename.tar.xz

注意J大写

filename.tar.Z的解压: 

tar -Zxvf filename.tar.Z

注意Z大写

关于tar的详细命令可以

tar --help

事实上, 从1.15版本开始tar就可以自动识别压缩的格式,故不需人为区分压缩格式就能正确解压

tar -xvf filename.tar.gz
tar -xvf filename.tar.bz2
tar -xvf filename.tar.xz
tar -xvf filename.tar.Z

查看当前目录大小

du -sh

which命令

我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:

which   查看可执行文件的位置。

whereis  查看文件的位置。

locate   配合数据库查看文件位置。

find    实际搜寻硬盘查询文件名称。

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

1.命令格式:

which 可执行文件名称

2.命令功能:

which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

3.命令参数:

-n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

-p  与-n参数相同,但此处的包括了文件的路径。

-w  指定输出时栏位的宽度。

-V  显示版本信息

4.使用实例:

实例1:查找文件、显示命令路径

命令:

which lsmod

输出:

[root@localhost ~]# which pwd
/bin/pwd
[root@localhost ~]# which adduser
/usr/sbin/adduser
[root@localhost ~]#

说明:

which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!所以,不同的 PATH 配置内容所找到的命令当然不一样的!

psql操作

psql 数据库名  --连接数据库
select rolname,rolpassword from pg_authid;--查看用户名密码
select usename,passwd from pg_shadow;--查看用户名密码
select version();    -- 查看版本
select current_database();--查看当前数据库
\l                    --查看所有数据库
\dt                    --查看表
\password username    --修改密码
\password           --设置密码。
\?                  --查看psql命令列表。
\c [database_name]  --连接其他数据库,切换数据库。
\conninfo           --列出当前数据库和连接的信息。
\d                  --列出当前数据库的所有表格。
\d [table_name]     --列出某一张表格的结构。
\du                 --列出所有用户。
\e                  --打开文本编辑器。
help                --帮助
\h                  --查看SQL命令的解释,比如\h select。
\q                    --退出
 

-bash-3.2$ psql -U playboy -d playboy                   #指定用户登录指定数据库  

-bash-3.2$ psql -d playboy_test -U playboy -f /var/lib/pgsql/data/playboy2013.sql     #将上面导入表删除后,在把playboy的数据库导入到playboy_test中去,权限归属playboy

SET search_path TO public; #指定schema

playboy_test=> \dt;                                   #查看所有表  
           List of relations  
 Schema |    Name    | Type  |  Owner  
--------+------------+-------+----------  
 public | contents   | table | playboy  
 public | entries    | table | playboy  
 public | properties | table | playboy  
 public | settings   | table | playboy  
 public | test       | table | playboy  
(5 rows)  

playboy_test=# \c playboy;           #切换数据库
You are now connected to database "playboy".

playboy=> \l                         #\加上字母l,相当于mysql的,mysql> show databases;  
        List of databases  
   Name    |  Owner   | Encoding  
-----------+----------+----------  
 playboy   | postgres | UTF8  
 postgres  | postgres | UTF8  
 template0 | postgres | UTF8  
 template1 | postgres | UTF8  

playboy=> select pg_database_size('playboy');    #查看playboy数据库的大小  
 pg_database_size  
------------------  
          3637896  
(1 row)  


playboy=> \d test;                     #查看意表,相当于mysql的,mysql> desc test;  
            Table "public.test"  
 Column |         Type          | Modifiers  
--------+-----------------------+-----------  
 id     | integer               | not null  
 name   | character varying(32) |  
Indexes: "playboy_id_pk" PRIMARY KEY, btree (id)  

playboy=> \di                        #相当于mysql的,mysql> show index from test;  
                List of relations  
 Schema |     Name      | Type  |  Owner  | Table  
--------+---------------+-------+---------+-------  
 public | playboy_id_pk | index | playboy | test  
(1 row)  

playboy=> select spcname from pg_tablespace;         #查看所有表空间  
  spcname  
------------  
 pg_default  
 pg_global  
(2 rows)

查看空间

df -h

查看某个进程
ps -ef | grep java 

结束某个进程
kill -9 25108

解压
tar -zxvf 

查找文件

find / -name elastic*

启动jar包

nohup java -jar esimportdata-0.0.1-SNAPSHOT.jar>log0123_3.txt  &

java -jar app.jar --spring.profiles.active=dev(指定配置文件)

java -jar xxx.jar --server.port=8080

编辑文件

vi  filename  进去点击i编辑状态,esc退出编辑状态,然后:wq--冒号+wq(保存并退出),:w写入,:q不保存退出

用 vi 命令编辑文本文件,没有文件写入权限的时候会报这个错。:q   :wq   怎么都不能退出。

 这时只需 ctrl+z 即可,或者在退出命令后加 ! 忽略提示     :q! 

删除文件

-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思

删除文件夹实例:
rm -rf /var/log/httpd/access
将会删除/var/log/httpd/access目录以及其下所有文件、文件夹

删除文件使用实例:
rm -f /var/log/httpd/access.log
将会强制删除/var/log/httpd/access.log这个文件

top查看系统运行情况

Linux常用操作总结_第1张图片

  • 第一行:系统运行时间和平均负载

当前时间、系统已运行时间、当前登录用户的数量、最近5、10、15分钟内的平均负载

  • 第二行:任务

任务的总数、运行中(running)的任务、休眠(sleeping)中的任务、停止(stopped)的任务、僵尸状态(zombie)的任务

  • 第三行:cpu状态
字段 字段释义
us user: 运行(未调整优先级的) 用户进程的CPU时间
sy system: 运行内核进程的CPU时间
ni niced:运行已调整优先级的用户进程的CPU时间
id idle:空闲时间
wa IO wait: 用于等待IO完成的CPU时间
hi 处理硬件中断的CPU时间
si 处理软件中断的CPU时间
st 这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)

  • 第四行:内存

全部可用内存、已使用内存、空闲内存、缓冲内存

  • 第五行:swap

全部、已使用、空闲和缓冲交换空间

  • 第七行至N行:各进程任务的的状态监控
字段 释义
PID 进程ID,进程的唯一标识符
USER 进程所有者的实际用户名
PR 进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态。
NI 进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
VIRT

virtual memory usage 虚拟内存,进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

RES

resident memory usage 常驻内存,驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

SHR

SHR:shared memory 共享内存

1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来

S

这个是进程的状态。它有以下不同的值:

  • D - 不可中断的睡眠态。
  • R – 运行态
  • S – 睡眠态
  • T – 被跟踪或已停止
  • Z – 僵尸态
%CPU 自从上一次更新时到现在任务所使用的CPU时间百分比。%CPU显示的是进程占用一个核的百分比,而不是整个cpu(N核)的百分比,有时候可能大于100,那是因为该进程启用了多线程占用了多个核心,所以有时候我们看该值得时候会超过100%,但不会超过总核数*100
%MEM 进程使用的可用物理内存百分比
TIME+ 任务启动后到现在所使用的全部CPU时间,精确到百分之一秒
COMMAND 运行进程所使用的命令。进程名称(命令名/命令行)

关闭防火墙

systemctl stop firewalld.service

yum和apt-get的区别
一般来说著名的linux系统基本上分两大类: 
1.RedHat系列:Redhat、Centos、Fedora等 
2.Debian系列:Debian、Ubuntu等 
RedHat 系列 
1 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数” 
2 包管理工具 yum 
3 支持tar包 
Debian系列 
1 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数” 
2 包管理工具 apt-get 
3 支持tar包
 

centos运行命令yum install docker.io,发生错误

No package docker available

yum没有找到docker包,更新epel第三方软件库,运行命令:

sudo yum install epel-release

运行:

sudo yum install docker-io

执行 cd ~/.ssh发现ssh目录找不到 

原因是因为没有用root用户ssh登录过,执行一下ssh操作就会自动生成了

Linux常用操作总结_第2张图片

你可能感兴趣的:(Linux,总结,Linux,操作,总结,docker安装)