Linux常用命令详解

timo-nbktp 1年前 ⋅ 1084 阅读

Linux使用总结

1.Linux介绍

  • Linux,全称GNU/Linux,是一套免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年第一次释出,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、oracle linux等。

  • Linux构成
    Linux是由Linux Kernel+软件包构成;
  • 发行版本
    Linux的发行版就是将Linux内核与应用软件做一个打包。
    目前市面上比较知名的Linux发行版有:
    RedHat、CentOS、Ubuntu、Fedora、Debian、Aliyun Linux、SUSE Linux、Open SUSE、CoreOS、FreeBSD等;
    一般来讲Web应用都选择CentOS,像Java、PHP等都是CentOS操作系统;ASP、.NET、SQL Server微软的一系列组件选择Windows Server操作系统;

2.Linux常用远程连接工具

建议童鞋们买个服务器,阿里云、华为云都可以,Linux使用必须多练习,才能达到熟练掌握。

  • 远程连接工具

SecureCRT
官网下载:https://www.vandyke.com

XShell
官网下载:https://www.netsarang.com/zh/xshell/
Putty
下载链接:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

XFTP
下载链接:https://www.netsarang.com/zh/xftp/
WinSCP
下载链接:https://winscp.net/eng/download.php

以上几个远程连接工具简单说明一下:
SecureCRT这个工具可以直接连接并且上传文件,当然,如果上传文件到服务器,建议使用XFTP或者WinSCP,速度会快一些。
XShell和Putty,使用哪个都行,可以连接远程Linux服务器。

推荐使用:Xshell + WinSCP组合

3.Linux常用命令总结

3.1 Linux特色目录

. .. - ~
一个点是表示当前目录,两个点是表示上一级目录,一个横杠表示上一个工作目录,比如你cd -就返回到上一个工作目录,~表示用户的根目录(/root);

3.2 磁盘管理

cd 目录进入某个目录
cd /info/a 进入多个目录
cd 该命令可以切换目录

pwd 显示当前目录
cd .. 返回上一级目录
cd / 返回根目录
fdisk -l 查看新的分区

 

ll 纵向列出当前目录下目录及文件
ll -a 可以额外展示隐藏的目录和文件
ls 横向列出当前目录下目录及文件
ls -a 可以额外展示隐藏的目录和文件

ll 和 ls命令区别:ll纵向展示目录和文件,并且展示目录的组、拥有者和权限,而ls仅仅横向展示目录和文件
ll -h 可以列出目录以及目录的大小
dir 列出当前目录下的目录及文件

 

df 查看系统磁盘空间使用情况,df命令可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力
df -h 查看系统磁盘空间使用情况,参数-h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式,使得看起来更直观

上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
df -T 可以用来查看分区的文件系统

 

du 查看文件和目录的磁盘空间使用情况,du可以查看文件及文件夹的大小

du -h 查看文件和目录的磁盘空间使用情况

3.3 文件管理

    • mkdir 创建目录(文件夹)
    • mkdir -p file1/file2 递归创建多个目录
    • mkdir -v file4 创建新目录都显示创建信息
    • mkdir -vp {hello/,maven/} 一个命令创建多个目录结构

参数解释:
-p, --parents 可以是一个路径名称。
此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
-v, --verbose 每次创建新目录都显示信息

  • touch 创建空文件或将文件的最后修改时间改为当前时间
  • rm -f 删除文件或目录
  • rm -rf 递归删除目录以及目录包含的所有文件
  • mv 文件(夹) 重命名或者将文件(夹)移动到指定目录

命令格式: mv [参数] 源文件或目录 目标文件或目录

参数说明:
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
-t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
-v:显示过程

  • cat 文件名 将整个文件内容输出到控制台
  • more 文件名 逐屏输出(按空白键space就往下一页)
  • less 文件名 逐屏输出(按PgUp、PgDn上下翻页),到结束的时候退出按 q
  • head 文件名 显示头10行
  • tail 文件名 显示末尾10行
  • cp 文件复制
  • cp -rf 递归复制目录
  • find 查找文件,比如:find ./ -name 文件名称

  • find ./ -mtime +5 查找5天前修改过的文件
  • which 在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果,这条命令主要是用来查找系统 PATH目录下 的可执行文件。说白了就是查找那些我们已经安装好的可以直接执行的命令。比如which mkdir
  • whereis 查找文件,主要用于程序名的搜索,而且只搜索二进制文件(参数-b)man说明文件(参数-m)和源代码文件(参数-s),如果省略参数,则返回所有信息。

3.4 系统设置

  • ps -aux 查看系统进程

  • ps -ef 查看系统进程

  • kill pid 杀掉进程

  • kill -9 pid 强制杀掉进程

  • date 显示或设置系统日期和时间

  • echo $LANG 显示当前语言环境

  • locale 查看是否有中文语言包,如有zh cn表示已经安装了中文语言包

  • uname 查看系统信息

  • cat /etc/centos-release 查看当前centos版本(CentOS Linux release 7.6.1810 (Core))

  • who 显示当前已登录的用户信息

  • whoami 当前登录的是那个用户

  • su 用户名 切换用户

  • shutdown –h now 关机

  • reboot 重启

  • clear 清除屏幕,实际上内容并没有清除,是移到最上面

  • Tab 可以自动补齐命令或者文件名

  • top 查看系统运行负载情况,Linux系统可以通过top命令查看系统的CPU内存运行时间交换分区执行的线程等信息。通过top命令可以有效的发现系统的缺陷出在哪里。是内存不够、CPU处理能力不够、IO读写过高。

  • uptime 系统运行负载情况,这个相当于top第一行看到的信息
    系统平均负载定义:在特定时间间隔内运行队列中的平均进程数。
    如果一个进程满足以下条件则其就会位于运行队列中:

    a、它没有在等待I/O操作的结果
    b、它没有主动进入等待状态(也就是没有调用’wait’)
    c、没有被停止(例如:等待终止)

    一般来说,每个CPU内核当前活动进程数不大于3,则系统运行表现良好!当然这里说的是每个cpu内 核,也就是如果你的主机是四核cpu的话,那么只要uptime最后输出的一串字符数值小于12即表示系统负载不是很严重.当然如果达到20,那就表示当前系统负载非常严重,估计打开执行web脚本非常缓慢

  • free 显示内存的使用情况 (kb)

  • free -m 显示内存的使用情况 (m)

  • free -h 显示内存的使用情况 (G)

3.5 Linux下的定时任务

Linux crontab 命令详细使用,可参考另一篇博文。

crontab -e 创建或者编辑crontab
crontab -l 查看crontab
crontab -r 删除crontab,注意,这个命令会删除所有的任务,一般不会使用

crontab使用举例
*/1 * * * * echo “hello world” >> /opt/crontab.log

可以使用以下命令,查看定时任务执行情况:
tail -f /var/log/cron

> 重定向覆盖输出,比如 > abc.txt
>> 重定向输出追加,比如 >>abc.txt
| 这个竖线表示管道符号,用于把管道左边的输出作为右边的输入,如常见的ps -ef | grep tomcat
> a.log 清空日志

3.6 用户管理

这里不做详细介绍,具体的可以参考链接:https://www.runoob.com/linux/linux-user-manage.html

只列几个常用的命令:

用户操作
useradd 用户名 添加用户
userdel -r zhangsan 删除用户(userdel 常用的选项是 -r,它的作用是把用户的主目录一起删除)

passwd 修改用户密码,修改当前登录用户密码passwd
passwd zhangsan 修改指定用户zhangsan密码,这个只有root有该权限

id 用户名 可以获取用户的id等信息,如:uid=1001(用户名) gid=1002(test) groups=1002(test)

 

用户组操作

cat /etc/passwd 查看系统中的所有用户
cat /etc/group 查看系统中的所有用户组
groupadd 组名 创建用户组
groupdel 组名 删除用户组
groups 查看当前用户所在组

groups 用户名 查看指定用户所在组
usermod -g 组名(A) 用户名(B) 给已有的用户增加工作组,将用户B加入组A(该命令用于修改用户的基本信息)或者使用命令:gpasswd -a 用户名 组名

gpasswd -d user group 将一个用户从某个组中删除,注意:需要保证 group 不是 user 的主组

3.7 文件权限

  • 文件权限总结介绍
    使用ll命令,可以查看当前目录下,所有目录和文件的用户、组以及权限等信息

       

在Linux常见的文件类型有7种,如下图所示:

文件类型和权限
-rw-rw-rw -表示文件
drw-rw-rw d表示目录文件夹
srw-rw-rw s表示socket套接字文件
brw-rw-rw b表示Block device块设备
crw-rw-rw c表示Character Device字符设备

文件的权限只有3种:r,读权限;w,写权限;x,执行权限。权限的值可以用数字表示分别为,r:4,w:2,x:1
r–read 表示读权限,对应的值为4
w–write 表示写权限,对应的值为2

x–execute 表示可执行权限,对应的值为1
rwx=7表示拥有所有的读、写、可执行权限
常见644、755、777三种权限

  • drwxr-xr-x详细介绍:

        

第1个字母:代表文件类型
第2~4字母:代表用户的权限,这三个字母对应的为属主位,表示创建该文件者或被指定的文件所属者
第5~7字母:代表用户组的权限,这三个字母对应的为属组位,表示文件的所属组,在该组内的非属主用户对该文件拥有该属组权限
第8~10字母:代表其他的用户的权限,既不属于属主又不在属组的用户

文件中rwx的具体含义:
r:可以使用类似cat等命令查看文件内容
w:可以编辑或删除此文件
x:可以在命令提示符下当做命令提交给内核运行

目录中rwx的具体含义:
r:可以对此目录执行ls以列出内部的所有文件
w:可以在此目录创建文件
x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息

  • 设置文件的读写执行权限
    chmod 640 aa.txt
    -R 递归,将设置的权限应用到目录以及目录下面的所有文件,如:chmod -R 755 /usr/local
  • 修改文件所属用户
    chown centos aa.txt
    -R 递归修改文件及其下的子文件的所属用户
    chown -R centos /usr/local
  • 修改文件所属组
    chgrp centos aa.txt
    -R 递归修改文件及其下的子文件的所属组
    chgrp -R centos /usr/localhost
  • 一次性修改属主和属组
    chown [OWNER]:[GROUP]] FILE
    chown centos:centos aa.txt
    chown -R centos:centos /usr/local
  • 查看用户所在组
    groups

3.8 文档处理

grep 对文本进行匹配,搜索,如:ps -ef | grep tomcat
sort 排序,如:cat aa.log | sort

uniq 去除相邻重复的行,如:cat aa.txt| sort | uniq
wc 依次输出 行数、单词数、字符数,如:cat aa.txt| wc

日志打印输出、日志内容查找
grep -A 100 'Exception' catalina.out 匹配关键词的后面100行 after
grep -B 100 'Exception' catalina.out 匹配关键词的前面100行 befer

grep -C 100 'Exception' catalina.out 匹配关键词的上下100行 center

或者
cat catalina.out | grep -C 100 'Exception'
cat catalina.out | grep -A 100 'Exception'
cat catalina.out | grep -B 100 'Exception'

tail -f catalina.out实时查看日志文件
tail -100f catalina.out实时查看日志文件末尾一百行
tail -f -n 100 catalina.out 实时查看日志末尾100行

3.9 网络通讯

curl
抓取网络文件内容,比如网页
wget 网络下载

yes、y 对linux命令执行后的接受、肯定、是、确认,如果不接受、不确认、否定 就输入 no 或者 n
ifconfig 查看系统IP

curl ipinfo.io/ip或者curl ifconfig.me 查看外网ip
ping 测试某个地址是否可以连通

lsof -i 端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i 8000,如果不存在的话,安装:yum -y install lsof
netstat 查看所有网络端口,如:netstat -nlp

netstat -tunlp | grep 端口号,用于查看指定的端口号的进程情况,如查看8000端口的情况,netstat -tunlp | grep 8000

netstat 相关参数说明:
-t (tcp) 仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化为数字
-l 仅列出在Listen(监听)的服务状态
-p 显示建立相关链接的程序名

3.10 备份压缩

tar 压缩与解压缩
解压

tar -zxvf xxx.tar.gz
tar -zxvf xxx.tar.gz -C /usr/local (可以通过-C执行把文件解压到哪里去)
tar -xvf xxx.tar

压缩:
tar -zcvf xxx.tar.gz ./file/*
tar -cvf xxx.tar ./file/*

zip 压缩与解压缩
zip a.zip a.txt 压缩为zip格式
unzip a.zip 解压zip格式的压缩包

Windows里面:rar zip
压缩文件类型:tar tar.gz tar.bz2 tar.xz,他们依次压缩得越厉害,压缩速度当然就越来越慢
解压都可以使用:tar -xvf

压缩(记住他们是z j J):
-zcvf file.tar.gz filenameOrDir 这个压缩成tar.gz格式
-jcvf file.tar.gz filenameOrDir 压缩成tar.bz2格式

-Jcvf file.tar.gz filenameOrDir 压缩成tar.xz格式

3.11 Linux上rz和sz的使用

小文件同步到Linux服务器上,有时候不需要使用XFTP或者WinSCP等,可以使用rz和sz操作。

安装:yum -y install lrzsz
rz 上传文件
sz下载文件

参考链接:菜鸟教程

 

--end--

 

 

版权 本着开源共享、共同学习的精神,本文转载自 https://blog.csdn.net/smilehappiness/article/details/105176667 , 如果侵权之处,请联系博主进行删除,谢谢~