Linux常用命令

根据端口查询应用程序:

例如:lsof -i:4444

 GBK转UTF-8

yum install -y convmv

convmv -f gbk -t utf-8 -r --notest /home/wwwroot

开启jenkins

systemctl restart jenkins.service

systemctl enable jenkins.service

关闭服务器防火墙:

systemctl stop firewalld
systemctl disable firewalld

防火墙开端口:

firewall-cmd --list-ports

firewall-cmd --add-port=4444/tcp --permanent

firewall-cmd --reload

 

 

清理内存缓存(正常执行3就可以)

echo 1 > /proc/sys/vm/drop_caches

当然,这个文件可以设置的值分别为1、2、3。它们所表示的含义为:

echo 1 > /proc/sys/vm/drop_caches:表示清除pagecache。
echo 2 > /proc/sys/vm/drop_caches:表示清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache。
echo 3 > /proc/sys/vm/drop_caches:表示清除pagecache和slab分配器中的缓存对象。

 

一、Linux系统简介

1.Linux发展史

1946年世界上的第一台计算机就产生了,刚产生出的计算机并没有操作系统,需要手工输入

人机矛盾:1. 只能一个人使用 2.人工速度慢于计算

产生操作系统(根据人的需求产生)

1965年麻省理工,ATT,贝尔实验室去研发一套操作系统,想要允许300台操作并使用

1969年实现进度缓慢,计划失败了

1969-1970 肯.汤姆逊移植了一个软件,定制一套标准,Unix系统

1970 推出了Unix系统,Unix系统元年,操作系统元年,电脑底层时间 1970

1985 年推出了windows

Unix是一个传统的美国人思维,按年,按月,或者按设备收美金

林纳斯.托瓦兹看不惯Unix

1991年模拟Unix写了一套操作系统Linux

开源,当时也只有大约100开发者,核心开发者大约5人

1993年Linux使用者大约10w数量级

2.Linux的应用领域

IT服务器Linux、Unix、Windows三分天下,Linux系统可谓后起之秀,特别是最近几年来,服务器端Linux操作系统不断地扩大市场份额,且每年增长势头迅猛,并且开始对Windows及Unix服务器市场的地位构成严重的威胁。Linux占80%左右(包括CentOS,Ubuntu等),Windows占12.8%,solaris占6.2%。可见,在未来的服务器领域市场里Linux是大势所趋。

Linux作为企业级服务器的应用十分广泛,利用Linux系统可以为企业架构WWW服务器、数据库服务器、负载均衡服务器、邮件服务器、DNS服务器、代理服务器、路由器等,不但使企业降低了运营成本,同时还获得了Linux系统带来的高稳定性和高可靠性,且无须考虑商业软件的版权问题

Linux操作系统应用的三大领域

a.企业级服务器应用领域【利用Linux系统可以为企业架构WWW服务器、数据库服务器、负载均衡服务器、邮件服务器、DNS服务器、代理服务器、路由器等,不但使企业降低了运营成本,同时还获得了Linux系统带来的高稳定性和高可靠性,且无须考虑商业软件的版权问题,随着Linux在服务器领域的广泛应用,近几年来,该系统已经参透到电信、金融、政府、教育、银行、石油等各个行业,同时各大硬件厂商也相继支持Linux操作系统。这一切表明,Linux在服务器市场前景光明。同时,大型、超大型互联网企业都在使用Linux系统作为其服务器端的程序运行平台,全球及国内排名前十的网站使用的几乎都是Linux系统,Linux已经逐步渗透到了各个领域的企业里】

b.嵌入式Linux系统应用领域【由于Linux系统开放源代码,功能强大、可靠、稳定性强、灵活而且具有极大的伸缩性,再加上它广泛支持大量的微处理体系结构、硬件设备、图形支持和通信协议,因此,在嵌入式应用的领域里,从因特网设备(路由器、交换机、防火墙,负载均衡器)到专用的控制系统(自动售货机,手机,PDA,各种家用电器),LINUX操作系统都有很广阔的应用市场。特别是经过这几年的发展,它已经成功地跻身于主流嵌入式开发平台。例如《在智能手机领域,Android Linux已经在智能手机开发平台牢牢地占据了一席之地。嵌入式系统应用领域是另一个应用领域】

c.个人桌面Linux应用领域【所谓个人桌面系统,其实就是我们在办公室使用的个人计算机系统,例如:Windows xp、windows 7、Mac等。Linux系统在这方面的支持也已经非常好了,完全可以满足日常的办公需求】

3.Linux的特点

开放多用户多任务出色的速度性能良好的用户界面丰富的网络功能可靠的系统安全良好的移植性具有标准兼容性

4.系统的使用

严格来讲,Linux不是一个操作系统,Linux只是一个操作系统中的内核。内核是什么?内核建立了计算机软件与硬件之间通讯的平台,内核提供系统服务,比如文件管理、虚拟内存、设备I/O等。

既然Linux只是一个内核。那么我们通常所说的Linux操作系统又是什么?我们通常所说的Linux,指 GNU/Linux ,即采用Linux内核的GNU操作系统。是的,操作系统的实际名称是GNU。什么是GNU?GNU代表GNU’s Not Unix。可以说是一个操作系统又可以说是一种规范

参考资料:https://blog.csdn.net/baidu_32134295/article/details/52439823

5.Linux组成

Linux内核: 操作系统的心脏,运行程序和管理硬件设备的核心程序Linux Shell: 系统的用户界面,提供用户与内核进行交互操作的一种接口Linux 文件系统: 文件存储在磁盘等存储设备上的组织方法Linux 应用程序 标准的程序集,比如文本编辑,编程语言,Window,办公套件,Internet工具,数据库等

6.Linux版本

RedHat :性能稳定,老牌的linux发行版。收费的是RedHat Enterprise Linux(RHEL,redhat的企业版)

Fedora :界面比较好看,RedHat的社区免费版,非常强大。

Centos :可以算是RHEL的克隆版,但它最大的好处是免费SUSE :德国最著名的linux发行版

Debian:算是迄今为止最遵循GUN规范的linux系统(GUN的目标就是创建一套完全自由的操作系统)

Ubuntu :Debian的后继或是一个分支,对于初学者而言比较友好

账号 root
密码 123456
ip addr   查看IP地址
man man   查看man命令的帮助手册
http://man.linuxde.net

二、目录结构

1.Windows文件系统

看到的是一个个驱动器盘符,例如:C盘,D盘等

每个驱动器都有自己的根目录结构,形成了树结构

2.Linux文件系统

ubuntu没有盘符这个概念,只有一个根目录 :/,所有目录和文件都存放在/的下面

注意:在Linux系统下所有的内容都被视为文件,目录也被视为文件

Linux目录结构: 

/ 根目录     #Linux下的根目录有且只有一个,在终端输入/home,就是告诉电脑,从根目录开始,进入home目录
/boot : boot配置文件、内核和其它启动时所需的文件
/etc :存放系统配置有关的文件   #用户信息都存放在etc目录下【修改用户名和密码】
/home :存放普通用户目录      #ls /home/   列出home下所有的普通用户
/mnt :硬盘上手动挂载的文件系统
#挂载:把硬盘连接在文件系统上【类似于大卡车车厢挂载在车头上】
#注意:默认是空的
/media :自动挂载(加载)的硬盘分区以及类似CD、数码相机等可移动介质。
/cdrom :挂载光盘
/opt 存放一些可选程序,如某个程序测试版本,安装到该目录的程序的所有数据,库文件都存在同个目录下
/root 系统管理员的目录,对于系统来说,系统管理员好比上帝
#可以对系统做任何的操作,比如删除文件,一般情况下尽量少使用root用户
#可以通过命令使得普通用户享有root用户的权限
/bin :存放常用的程序文件      #binary,二进制文件或者命令文件
/sbin :系统管理命令,这里存放的是系统管理员使用的管理程序
/tmp :临时目录,存放临时文件   #temp,暂时的,临时目录,
#注意:是一些命令或者程序产生的一些临时文件,系统会定期清理该目录下的文件
/usr :在这个目录下,你可以找到那些不适合放在/bin/etc目录下的额外的工具。比如游戏、打印工具等。/usr目录包含了许多子目录:
/usr/bin目录用于存放程序;
/usr/share用于存放一些共享的数据,比如音乐文件或者图标等等;
/usr/lib目录用于存放那些不能直接 运行的,但却是许多程序运行所必需的一些函数库文件。
/usr/local 这个目录一般是用来存放用户自编译安装软件的存放目录;一般是通过源码包安装的软件,如果没有特别指定安装目录的话,一般是安装在这个目录中。
/usr/bin/ 非必要可执行文件 (在单用户模式中不需要);面向所有用户。
/usr/include/ 标准包含文件。
/usr/lib/ /usr/bin//usr/sbin/中二进制文件的库。
/usr/sbin/ 非必要的系统二进制文件,例如:大量网络服务的守护进程。
/usr/share/ 体系结构无关(共享)数据。
/usr/src/ 源代码,例如:内核源代码及其头文件。
/usr/X11R6/ X Window系统 版本 11, Release 6.
/usr/local/ 本地数据的第三层次,具体到本台主机。通常而言有进一步的子目录, 例如:bin/、lib/、share/.

/var :该目录存放那些经常被修改的文件,包括各种日志、数据文件;
   /var/cache/ 应用程序缓存数据。这些数据是在本地生成的一个耗时的I/O或计算结果。应用程序必须能够再生或恢复数据。缓存的文件可以被删除而不导致数据丢失。
   /var/lib/ 状态信息。 由程序在运行时维护的持久性数据。 例如:数据库、包装的系统元数据等。
   /var/lock/ 锁文件,一类跟踪当前使用中资源的文件。
   /var/log/ 日志文件,包含大量日志文件。
   /var/mail/ 用户的电子邮箱。
   /var/run/ 自最后一次启动以来运行中的系统的信息,例如:当前登录的用户和运行中的守护进程。现已经被/run代替[13]
   /var/spool/ 等待处理的任务的脱机文件,例如:打印队列和未读的邮件。
   /var/spool/mail/ 用户的邮箱(不鼓励的存储位置)
   /var/tmp/ 在系统重启过程中可以保留的临时文件。
   
/lib : 目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件。这些文件包含了可被许多程序共享的代码,以避免每个程序都包含有相同的子程序的副本,故可以使得可执行文件变得更小,节省空间。
/lib32 : 同上
/lib64 同上
/lost+found 该目录在大多数情况下都是空的。但当突然停电、或者非正常关机后,有些文件就临时存放在;
/dev : 存放设备文件
/run :代替/var/run目录,
/proc : 虚拟文件系统,可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的,该目录的内容不在硬盘上而在内存里;
/sys 和proc一样,虚拟文件系统,可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的,该目录的内容不在硬盘上而在内存里;
.   代表当前目录
.. 代表上一级目录
注意:根目录下.和..都代表当前目录

相对路径和绝对路径
相对路径:从当前位置开始描述的路径
绝对路径:从/目录开始描述的路径
ls    显示目录下文件与目录
-a 显示隐藏文件               隐藏文件以.开头
-l -> ll     以列表形式显示
-R 递归显示
file  查看文件类型
pwd   查看当前工作目录
 cd     切换工作目录
.     当前目录
..   上一级目录
~     家目录
-     上一个工作目录
touch     新建空文件
-m   更新文件时间  
rm      删除文件
-f   强制删除,不询问
-r   删除文件目录
*     代表所有文件
mkdir   创建目录
-p   递归创建目录  
-v   显示创建过程
rmdir   删除空目录
cp 源 目标       复制
-r         递归复制
-v         显示复制过程
mv 源 目标     移动/重命名
-f         不提示直接覆盖
history       历史记录
!!         重复上一个命令
!数字       按照历史记录的序号执行命令
clear       清理屏幕
date      查看系统日期时间
-s 20120102     设置日期,会导致时间重置
-s 15:22:21     设置时间
-s "20180319 16:36:20"   设置时间日期
clock     查看硬件日期时间
-s     使用硬件时间修改系统时间
cal     查看日历
9 2018   查看2018年9月日历
2017     查看2017年整年日历
-y       查看一年的日历
-j       显示在当年中的第几天,默认从1月1日起
uptime      查看系统运行时间

vi 编辑器

vi命令是UNIX操作系统最通用的全屏幕纯文本编辑器
vi编辑器工作模式有三种:命令模式,输入模式【编辑模式】,末行模式

输入模式:可以完成文本文档的编辑操作
命令模式:可以完成对文本的操作命令
命令模式
任何情况下按 esc 返回到命令模式
移动光标
  j 向下移动
  k 向上移动
  l 向右移动
  h 向左
  6j 从光标所在位置向下移动6行
  gg 移动到文件首行首列
  G   移动到文件尾行尾列
  3G 移动到第3行
复制粘贴
  yy 复制光标所在行
  p   光标所在行下面进行粘贴
  3yy 从光标向下复制3行
  3p 光标所在位置下面进行粘贴3次
删除
  dd 剪切光标所在行
  3dd 光标所在行向下剪切3行
  x   剪切光标所在字符
替换
  r   替换光标所在当前字符
  R   连续替换光标所在当前字符,直到输入 esc
撤销
  u   撤销
  Ctrl + r 恢复上一步撤销(反撤销)
   
编辑模式
进入插入模式(编辑模式)
  i   在光标前插入
  o   下一行新建一行
  O   上一行新建一行
  a   在光标后追加
  s   删除光标所在的字符并开始插入
   
搜索内容
  /搜索的字符串     从光标位置向下搜索
      n 下一个   N 上一个
  ?搜索的字符串     从光标位置向上搜索

ex模式(末行模式)
:set nu     显示行号
:set nonu   不显示行号
:w         保存
:q         退出
:wq         保存并退出
:q!         强制退出
:n         移动光标到第n行
:s     字符串替换
  :s/str1/str2/     用str2替换行中首次出现的str1
  :s/str1/str2/g   用str2替换行中所有出现的str1
  :.,$ s/str1/str2/     用str2替换从光标位置开始到末尾第一次出现的str1
  :.,$ s/str1/str2/g   用str2替换从光标位置开始到末尾所有出现的str1
  :n,$ s/str1/str2/   替换第n行开始到最后一行中每一行第一个str1为str2
  :n,$ s/str1/str2/g   替换第n行开始到最后一行中每一行所有的str1为str2
    n     数字,表示行号
    .,   代表从当前行到最后一行
    $     分隔符
    g     放在命令的末尾,表示对搜索字符串的每次出现进行替换
cat     查看整个文件内容,从上到下显示
-n   显示行号
head    显示文件头几行,默认10行
-n 12   显示头12行
more      全屏幕的形式按页显示文件内容
空格键     向下翻一页
回车键     向下翻一行
b           向上翻一屏
q         退出阅读
less        全屏幕的方式显示文件内容
空格键     向下翻一页
回车键     向下翻一行
q         退出阅读
b         向上翻一屏
-N       输出行号
方向键     上下左右阅读
tail        从文件末尾查看,默认10行
-n 12     从末尾查看12行
-n +12   从第12行查看到末尾
-f       持续追踪显示文件更新(查看日志)

ping www.baidu.com > ping.log &
tail -f ping.log
  ctrl + c   强行终止命令
wc    统计文件信息
-c   统计字节数
-l   行数
-w   字符,以空白区域分隔的非零长度字符串
 
18 18 136 a.txt     行数 单词数(字符数) 字节数 文件名
du -h   查看文件或目录大小
&       命令后台执行
jobs    查看当前所有后台作业
fg      Foreground:控制后台作业拉回前台
ctrl + z    将命令放到后台执行(暂停)
bg      Background:控制作业继续在后台运行
ps      查看当前进程
kill    杀死进程
df -h   磁盘信息
free -m   内存信息
shutdown    关机或重启
  -h      关机
  -r      重启
  -c      取消计划
shutdown -h now     立刻关机
shutdown -h +10     10分钟后关机
shutdown -h 23:30   23:30 计划关机
shutdown -r now     立即重启
reboot      立即重启
poweroff    立即关机
gzip        压缩单个文件
  -d    ->   gunzip     解压缩
tar         打包,归档文件
  -c        新建备份文件
  -v        显示详细过程
  -f        指定备份文件
  -z        调用gzip压缩/解压缩
  -x        从备份中还原文件
  -C 目录   指定目录解压缩
tar -zcvf out.tar.gz *.txt    归档并压缩所有的.txt结尾的文件
tar -zxvf out.tar.gz -C B     解压缩到B目录
find        查找文件
  find . -name "*.log"      在当前目录下查找所有的.log结尾的文件
  find / -name "*root*"     在根目录下查找所有包含有root名字的文件或目录
  find . -name "*.log" -exec ls -l {} \;    在当前目录下查找所有的.log结尾的文件并显示文件详细信息
挂载设备
mount /dev/设备名 /mnt(挂载点)
umount /挂载点       卸载设备
yum  软件包管理器
yum install lsof      安装lsof命令
lsof /mnt         查看到谁正在使用该目录
每个用户拥有一个userID,操作系统实际使用的是用户ID,不是用户名
每个用户属于一个主组,属于一个或多个(31)附属组
每个组有一个GroupID
每个进程以一个用户身份运行,并受该用户可访问的资源限制
每个可登录用户拥有一个指定的shell
系统中每个文件都有一个所属用户及所属组

id root     查看root用户的信息

UID 0   系统超级用户
UID 1-999   程序服务,默认限制不能登录系统
UID 1000~   普通用户

passwd      修改密码

cat /etc/group   组信息
cat /etc/passwd   用户信息
cat /etc/shadow   用户密码

w       显示有哪些用户已经登录并且在干什么

useradd 用户名       添加用户
  -g    主组
  -G    附属组,用 , 分隔
userdel 用户名       删除用户  
  -f        强制删除,无论该用户是否正在登录中
  -r        同时删除家目录

usermod 参数 用户名      修改用户信息
  -l    修改用户名       usermod -l   newName oldName
  -g    修改用户所属主组
  -G    修改用户所属附属组

groupadd 组名         添加用户组
groupdel 组名         删除组
groups   用户名       查看用户所属组

su - 用户名        切换用户,并使用新的运行环境
sudo 使用管理员身份运行命令
[1位目录还是文件][9位权限][硬链接个数][用户名][组名][文件大小]  [时间]      [文件名]
drwxr-xr-x                  2         root root    75     3月 20 10:30 HELLO

d    目录    -   文件     l   链接
rwxr-xr-x    UGO
2               链接数量
root      U     用户
root      G     组
75             文件大小
3月  20 10:30     时间
B                文件名

权限                          文件                  目录
r=4(2^2)读取            可读取文件内容       可列出目录内容
w=2(2^1)写入            可修改文件内容       可创建删除文件
x=1(2^0)执行            可作为命令执行       可访问目录内容(不给,无法查看其内容)

- 没有这个权限

rwx=4+2+1=7
r-x=4+0+1=5
rw-=4+2+0=6
chown 用户名 文件名/目录名       用以修改文件/目录的所属用户
chown -R 用户名 目录名           用以递归修改目录的所属用户
chgrp 组名  文件名/目录名        修改文件/目录的所属组
chgrp -R 组名  文件名/目录名     递归修改文件/目录的所属组

chmod 模式 文件名/目录名      修改文件/目录的权限
  u     用户
  g     组
  o     其他
  a     UGO

+ 加入权限

- 删除权限
    r     读取
    w     写入
    x     执行

chmod u+x a1.txt      给文件加入用户执行权限
chmod a-x a1.txt      给文件UGO删除执行权限

chmod 660 a1.txt      给文件设置用户读写权限,组读写权限,其他没有任何权限
chmod 755 a1.txt      给文件设置用户读写执行权限,组读执行权限,其他读执行权限
chmod 777 a1.txt      给文件设置所有人都能读写执行权限
grep 'ot' /etc/passwd     从/etc/passwd文件中搜索带有 ot 的行
  -i    忽略大小写
  -n    显示行号
  -v    输出不带关键字的行
  -Ax   在输出的时候包含结果所在行之后的指定行数x
  -Bx   在输出的时候包含结果所在行之前的指定行数x
echo 显示输入的内容
  $PATH     显示系统环境变量的值
Linux Shell 数据流定义
名称      说明          编号
STDIN     标准输入      0
STDOUT    标准输出      1
STDERR    标准错误      2

重定向
  关键字     定义                              例子
    >        将STDOUT重定向到文件(覆盖)        echo "Linux" > 1.txt
    >>       将STDOUT重定向到文件(追加)        echo "Linux111" >> 1.txt
    2>       将STDERR重定向到文件(覆盖)        lllll 2> 1.txt
    2>>      将STDERR重定向到文件(追加)        lllll 2>> 1.txt
    &>       将STDOUT与STDERR结合
    &>>      将STDOUT与STDERR结合
<        重定向STDIN                       grep root < /etc/passwd
<<       重定向STDIN                       cat >> 1.txt <<EOF
         将开始标记tag和结束标记tag        123456
         之间的内容作为输入                EOF
管道
    |        将一个命令的输出作为另一个命令的输入
ls -l | grep "aa"
cat -n anaconda-ks.cfg | head -n 20 | tail -n 5   查看文件第16行到第20行,同时显示行号
cat -n anaconda-ks.cfg | tail -n +16 | head -n 5
BIOS->boot loader->加载系统内核->内核进行初始化->启动初始化进程
管理服务
systemctl start 服务名     启动服务       sshd
systemctl restart 服务名   重启服务
systemctl stop 服务名      停止服务
systemctl reload 服务名    重新加载服务配置文件
systemctl status 服务名    查看服务状态
systemctl enable 服务名    开机自动启动
systemctl disable 服务名   开机不自动启动
systemctl is-enable 服务名 查看开机是否自动启动
配置一台可上网(涉及到域名)的计算机:
  IP地址
  子网掩码
  网关
  DNS

配置一台跨网段通讯的计算机:
  IP地址
  子网掩码
  网关

配置一台局域网通讯的计算机:
  IP地址
  子网掩码

ip  addr    查看IP地址
ifdown  ens32     禁用网络接口
ifup  ens32       启动网络接口

nmtui       配置网络信息
systemctl restart network   重启网络

网络配置文件
/etc/sysconfig/network-scripts/ifcfg-ens32

DNS配置文件
/etc/resolv.conf

hostname      查看主机名

测试网络连通性
ping 192.168.2.1
ping www.baidu.com
ss -l     显示本地打开的所有端口
ss -pl    显示每个进程具体打开的端口
ss sport = :22    列出22端口的连接
ss -pl sport = :22    列出22端口的连接的进程
ss -t       显示所有的TCP socket
ss -u       显示所有的UDP socket

top         实时查看系统的整体运行情况
  q       退出
  s     改变刷新延迟
vmstat      查看虚拟内存、进程、CPU活动
  vmstat 2      每2S输出一条结果
  vmstat -a     显示活跃与非活跃内存
ps          报告当前系统的进程状态
  -A      显示所有的程序
  ps -A | grep ssh
kill -9 pid   杀掉进程号              ping
pkill -kill -t pts/4   踢掉用户
curl    下载上传命令
  curl http://www.baidu.com   下载单个文件,默认输出文件内容
  curl -O(大o) http://man.linuxde.net/wp-content/uploads/ad/magedu_arc_top.png   需要具体到具体的文件
  curl -o(小o) index.html http://man.linuxde.net/curl   抓取页面内容到一个文件中
Xftp  可以linux和window直接进行文件的传输
rpm -qa   查询所有已经安装的软件包
rpm -q 软件包名   查询指定软件包
rpm -ivh 软件.rpm   安装软件
rpm -Uvh 软件.rpm   更新软件
rpm -e 软件     卸载软件
yum list      显示所有已经安装和可以安装的程序包
yum install 软件包名   安装软件包
yum -y install 软件包名   安装软件包,不询问,直接同意许可
yum remove 软件包       删除软件包
yum clean all         清空缓存目录下的所有软件包
which   查询命令位置

 

posted @ 2019-09-24 21:45  等一念  阅读(386)  评论(0)    收藏  举报