Linux学习

135 阅读10分钟

Linux学习

Linux目录

image.png


/bin: 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里;
/etc: 存放系统管理和配置文件;
/home: 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示;
/usr : 用于存放系统应用程序;
/opt: 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里;
/proc: 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息;
/root: 超级用户(系统管理员)的主目录(特权阶级o);
/sbin: 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等;
/dev: 用于存放设备文件;
/mnt: 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统;
/boot: 存放用于系统引导时使用的各种文件;
/lib : 存放着和系统运行相关的库文件 ;
/tmp: 用于存放各种临时文件,是公用的临时文件存储点;
/var: 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等;
/lost+found: 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里。

Linux的文件权限

操作系统中每个文件都拥有特定的权限、所属用户和所属组。权限是操作系统用来限制资源访问的机制,在Linux中权限一般分为读(readable)、写(writable)和执行(excutable),分为三组分别对应文件的属主(owner),属组(group)和其他用户(other)\

image.png

第一列的内容的信息解释如下:\

image.png

文件的类型:

  • d: 代表目录
  • -: 代表文件
  • l: 代表链接(可以认为是window中的快捷方式)

Linux中权限分为以下几种:

  • r:代表权限是可读,r也可以用数字4表示
  • w:代表权限是可写,w也可以用数字2表示
  • x:代表权限是可执行,x也可以用数字1表示

文件和目录权限的区别:
对于文件:
|权限名称|可执行操作|
|-------|-------|
|r|可以使用cat查看文件的内容|
|w|可以修改文件的内容|
|x|可以将其运行为二进制文件|

对于文件:
|权限名称|可执行操作|
|-------|-------|
|r|可以查看目录下列表|
|w|可以创建和删除目录下文件|
|x|可以使用cd进入目录|

在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。

  • 所有者
    一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者,用ls ‐ahl命令可以看到文件的所有者 也可以使用chown 用户名 文件名来修改文件的所有者 。
  • 文件所在组
    当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组 用ls ‐ahl命令可以看到文件的所有组 也可以使用chgrp 组名 文件名来修改文件所在的组。
  • 其它组
    除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组

修改文件/目录的权限的命令:chmod
chmod u=rwx,g=rw,o=r a.txt\

image.png


上述示例还可以使用数字表示:
chmod 764 a.txt
注意:
r:代表权限是可读,r也可以用数字4表示
w:代表权限是可写,w也可以用数字2表示
x:代表权限是可执行,x也可以用数字1表示

chown命令:
如果需要同时更改所有者和所属组
[root@localhost ~]# chown [-R] 所有者:所属组 文件或目录\

image.png

image.png

Linux命令

Linux常用命令

目录切换命令

  • cd /home : 切换到home目录下
  • cd .. : 退回上一级目录
  • cd / : 切换到系统根目录
  • cd ~ : 切换到当下用户主目录
  • cd - : 切换到上一个所在目录

目录操作命令

  • mkdir 目录名称:
    image.png

    image.png

  • ls/ls -lht(ls -lht 可以查看当下目录下所有目录及大小):查看目录信息

    image.png

  • find 目录 参数:寻找目录
    示例:
    1.列出当前目录及子目录下所有文件和文件夹: find .
    2.在/home目录下查找以.txt结尾的文件名:find /home -name " .txt"(忽略大小写:find /home -iname " .txt")
    3.当前目录及子目录下查找所有以.txt和.pdf结尾的文件:find . ( -name " .txt" -o -name " .pdf" )或find . -name " .txt" -o -name " .pdf"

  • mv 目录(文件)名称 新目录(文件)名称:修改目录的名称

    image.png

  • cp [-r] 目录名称 目录拷贝的位置:拷贝目录,-r代表递归拷贝,多用于拷贝文件夹

  • rm [-rf] 目录:删除目录

  • ls -l |grep '.apk'| wc -l:查看当前目录下以".apk"结尾的文件个数

  • du -h --max-depth=1 *:查看当前目录下所有文件、文件夹大小 image.png

  • du -sh:输出当前目录总大小(du -h 目录名称:查看指定目录大小)

    image.png

  • 指定文件夹下所有文件名后缀修改

  find test/ -type f -exec mv '{}' '{}'.apk ;

image.png

文件的操作命令

  1. touch 文件名称:文件的创建
  2. cat/more/less/tail 文件名称: 文件的查看
  • cat: 只能显示最后一屏内容
  • more: 可以显示百分比,回车可以向下一行, 空格可以向下一页,q可以退出查看
  • less: 可以使用键盘上的PgUp和PgDn向上 和向下翻页,q结束查看
  • tail-10 : 查看文件的后10行,Ctrl+C结束
  • tail -f logs:实时查看日志文件
  1. vim 文件:修改文件的内容

    • vim -r file:回复上次异常退出的文件
    • vim -R file: 以只读的方式打开文件,但可以强制保存;
    • vim -M file: 以只读的方式打开文件,不可以强制保存;
      ESC后命令:
  • :wq ---保存并退出
  • :q! ---强制退出
  • /something ---在后面的文本中查找something
  • ?something ---在前面的文本中查找something
    n:向后查找下一个
    N:向前查找下一个
  • vim -o file1 file2:水平分割窗口,同时打开file1和file2
  • vim -O file1 file2:垂直分割窗口,同时打开file1和file2
  1. rm -rf 文件:删除文件

压缩文件的操作命令

  1. 打包并压缩文件: tar -zcvf 打包压缩后的文件名 要打包压缩的文件
    z:调用gzip压缩命令进行压缩
    c:打包文件
    v:显示运行过程
    f:指定文件名
  2. 解压压缩包: tar [-xvf] 压缩文件
    x:代表解压

其它常用命令

  • curl:查看端口是否通信正常
  • telnet:查看ip+端口
  • pwd:显示当前所在位置
  • grep 要搜索的字符串 要搜索的文件 --color: 搜索命令,--color代表高亮显示
  • ps -ef/ps aux: 这两个命令都是查看当前系统正在运行进程,两者的区别是展示格式不同。如果想要查看特定的进程可以使用这样的格式:ps aux|grep redis (查看包括redis字符串的进程)
  • kill -9 进程的pid: 杀死进程(-9 表示强制终止。)
  • 网络通信命令:
  1. 查看当前系统的网卡信息:ifconfig

  2. 查看与某台机器的连接情况:ping

  3. 查看当前系统的端口使用:netstat -ntl

    image.png

  • history:查看命令历史记录
    使用ctrl+r 来调用命令历史记录的递归搜索,输入后,提示变为:
    (reverse-i-search)`':
    现在可以输入一个命令,并且会显示匹配的命令,按回车键执行。
  1. history 数字: 查看历史记录最后几条

    image.png

  2. !! : 执行上一条命令

  3. !数字 : 执行第几条命令

    image.png

  4. 按条件搜索历史命令
    history可以与grep、tail配合使用进行条件过滤来查找需要的命令,例如:

    image.png

  • 显示所有的进程
  nohup java -jar local.jar >temp.txt &

Docker基本命令

  • 启动Docker服务: systemctl start docker
  • 停止Docker服务: systemctl stop docker
  • 重启Docker服务: systemctl restart docker
  • 查看Docker服务状态: systemctl status docker
  • 开机自启动Docker服务: systemctl enable docker

镜像相关命令

  • 搜索镜像: docker search 镜像名称
  • 拉取镜像: docker pull 镜像名称
  • 查看镜像:
    docker images 查看本地镜像
    docker images -a 查看本地所有镜像
    docker images -q 查看本地镜像的id
  • 删除镜像:docker rmi [-f] 镜像id[镜像名称] (-f表示强制删除)

容器相关命令

  • 查看运行的容器: docker ps (-a)
  • 创建并启动容器: docker run 参数
    参数说明:
    -i:保持容器运行。通过和-t同时使用。加入-it这两个参数以后,容器创建后会自动进入容器中,退出容器后,容器会自动关闭。
    -t:为容器重新分配一个伪输入终端,通常和-i同时使用。
    -d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。
    -it:创建的容器一般称为交互式容器。
    -id:创建的容器一般称为守护式容器、
    --name:威创建的容器命名。
    -p:映射端口 外部端口:容器内部暴露的端口
  • 进入容器: docker exec -it 容器id[容器名称] bash
  • 查看容器信息: docker inspect 容器id[容器名称]
  • 停止容器: docker stop 容器id[容器名称]
  • 启动容器: docker start 容器id[容器名称]
  • 重启容器: docker restart 容器id[容器名称]
  • 强制停止容器: docker kill 容器id[容器名称]
  • 删除容器:docker rm 容器id[容器名称]
    docker rm -f 容器id[容器名称] (强制删除)
    docker rm -f $(docker ps -qa) (强制删除所有容器)

查看容器日志

  • docker logs -f 容器id[容器名称]

Docker部署所需命令

  • 加载tar包为镜像: docker load < tar包名称

  • 容器->镜像: docker commit 容器id[容器名称] 镜像名称:版本

  • 镜像打包: docker save REPOSITORY:TAG > tar包名称

  • 镜像打标签: docker tag REPOSITORY:TAG REPOSITORY:TAG

    image.png

Nginx常用命令

  • 帮助命令:nginx -h
  • 启动Nginx服务器 :sudo nginx
  • 查看进程: ps aux | grep nginx
  • 配置文件路径:/usr/local/nginx/conf/nginx.conf
  • 检查配置文件:sudo nginx -t
  • 指定启动配置文件:sudo nginx -c /usr/local/nginx/conf/nginx.conf
  • 暴力停止服务:sudo nginx -s stop
  • 优雅停止服务:sudo nginx -s quit
  • 重新加载配置文件:sudo nginx -s reload

项目部署后启动方式

jar包启动方式

  • 直接启动
    特点:使用此命令,窗口被锁定。无法干其他事。
  java -jar local.jar
  • 使用 java -jar xxx.jar & 启动
    特点:使用此命令,窗口不被锁定,可以执行其他命令,但关闭终端窗口程序会终止运行。
  java -jar local.jar &
  • 使用 nohup java -jar xxx.jar &
    特点:使用此命令,账户退出或者终端窗口关闭,程序仍然运行。默认情况下所有的输出会保存在当前路径下nohub.out文件中
  nohup java -jar local.jar &
  • 使用 nohup java -jar xxx.jar >temp.txt &
    特点:和上一条效果相同,但是所有输出会存储在temp.txt文件中
  nohup java -jar local.jar >temp.txt &

停止nohup命令

image.png

image.png

tmux方式启动

  • 查询当前开启的tmux程序
  tmux ls

image.png

  • 新建一个tmux程序,要见名知意
  tmux new-session -s 名称

image.png

  • 进入tmux程序
  tmux a -t 名称

image.png

  • 退出tmux
ctrl +b     d  

清除系统已删除但仍在占用空间的方法

1.查看

lsof |grep delete

用lsof检查后才发现原因是,有文件被删除,而进程还活着,因而造成还占用空间的现象。
根据lsof列出的进程号,kill这些进程或重启进程后,空间就释放出来了。重要服务进程pid,注意确认,别发重要服务kill了。

image.png

image.png

image.png