Linux常用命令

辅助命令

makewhatis      #安装whatis命令查看命令解释
help            #帮助查看命令
man             #查看命令
info            #查看命令
ls -a -l -R -ld 
cp              #拷贝文件   
mv              #移动或重命名文件
touch           #创建空文件/修改文件
rm -rf          #递归强制删除
rmkdir          #只能删除空目录
history         #显示全部历史
    history n   #显示历史倒数第n条数据
    !!          #运行上一条命令
    !88         #运行第88条数据
    history -c  #清空历史命令
    ctrl+r搜索历史中的字符串可重复执行,回车就是执行查找命令 

关机命令

shutdown -h now    #立刻关机
shutdown -h  12:00 #系统会在今天12:00关机
shutdown -h +10     #10分钟后关机
shutdown-r now      #系统立刻重启
shutdown -r +10     #10分钟后系统重启
reboot              #重启系统
halt                #关闭系统

运行级别

who -r              #显示当前运行级别和系统时间
runlevel            #显示前一个(无则显示“N”)、当前运行级别
init n              #切换运行级别,n为运行级别数字

Liux运行级别详解

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动    

运行级别原理

在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service),在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字,系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件,对于以K开头的文件,系统将终止对应的服务,对于以S开头的文件,系统将启动对应的服务。       

用户、用户组、其他人与权限

cat /etc/passwd             #查看用户账号有关的系统文件
cat /etc/shadow             #查看与passwd对应的数据  
cat /etc/group              #查看用户分组信息 

用户管理

useradd -p -c -d  -g -G -S -u   #添加用户
usermod -p -c -d  -g -G -S -u   #修改用户   
passwd -l -u -d -f test         #用户口令设置
userdel test                    #删除用户
userdel -r test                 #在删除用户的同时删除他的home目录(不建议使用)

用户组管理

groupadd -g -o test         #添加用户组 
groupmod -g -o test         #用户组修改              
groupdel test               #删除用户组  
newgrp  root                #为当前用户切换用户组

权限管理

ls -al                                  #查看权限内容
chgrp [-R] dirname/filename             # 改变所属用户组
chown [-R] 用户账号dirname/filename         #改变文件所有者
chmod [-R] mode dirname/filename        #改变权限

查看权限

mode权限管理

mode改变权限之数字类型

Linux的基本权限有9个,分别是owner,group,others 三种身份各自的read,write,excute权限,
各个权限对应的数字如下:
r:4、w:2、x:1
为此每种身份各自的三个权限数字相加即可得出数字表示的权限…
例如[-rwxrwx---]可以表示为:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
范例:所以要修改文件权限,改为770即可:

mode改变权限之符号类型

另一种改变权限的方法就是通过符号了,上文提到,Linux总共9种权限,对应着三种身份,为此我们
可以通过u,g,o代表三种身份,另外a代表全部身份。对应的权限可以写为r,w,x,如下图所示:


为wsx设置[-rwxr-xr–],可以使用[chmod u=rwx,g=rx,o=r filename]。

文件系统

mount ***           #将设备挂载到某个目录
umount  ***         #取消挂载点
df -h               #查看目录设置 
lsblk               #查看块设备
du                  #文件系统的磁盘使用量或目录使用量
dumpe2fs            #文件系统

挂载U盘出现乱码

man manout #执行该命令,并使用/iocharset查找,验证编码格式是否为utf-8

 mount -o iocharset=utf8 /dec/sdb1 /mnt/udisk   #设置外设编码格式是utf8

进程管理

ps aux | grep ***    #查看现有进程 ps aux、ps -lA、 ps -ef
ps -l                #仅查看自己的bash相关的进程
top ***             #动态的观察进程的变化
top -b -n 5 > a.log #需要进行5次top的输出,并将批次导出的结果到处为a.log文件
top -p               #指定某些PID来进行观察
pstree -Aup         #显示系统进程树同事显示PID与user
kill -l             #查看系统目前能够发送的信号    
                    -15正常的死亡 -9 强杀 -1守护进程特殊 -2 与键盘输入Ctrl+C相同 kill 默认使用15

系统资源监控

free                #显示内存使用情况
uname -a            #显示系统与核心相关信息##  ##
uptime              #查看系统时间与工作负载
netstat -atp        #所有tcp协议的链接,并输出pid好
netstat -antp
netstat -lntp
vmstat 1 4              #侦测系统资源变化 CPU/内存/磁盘输入输出状态,一秒钟侦测一次 共4次
service iptablse start  #开启防火墙
service iptablse status #查看防火墙状态
service iptablse stop   #关闭防火墙
chconfig iptalse off    #永久关闭防火墙
chconfig iptablse on    #永久开启防火墙

任务管理

Ctrl+Z                 #将目前的工作丢到后台暂停    
fg                     #一般实现后台进程的前台显示
cp test test1 &        # &符号实现了进程的后台运行,一般用在启动后台进程上
jobs                   #显示全部后台进程(不含PID)
jobs -l                #显示全部后台进程(含PID)
jobs -r                #显示正在后台run的任务    
jobs -s                 #显示正在后台暂停的任务
fg 1                    #将任务号为1的进程调到前台执行
nohup ***               #脱机或注销后正常执行工作
nohup *** &             #在后台执行

vim命令

vim的三种模式

  1. 一般模式 可以删除、复制、粘贴等但无法编辑文件内容。
  2. 编译模式 使用i、I、o、O、a、A、r、R进入,使用Esc退出
  3. 命令行模式 在一般模式中输入:/?三个字符中的任何一个可以进入,提供查询、替换、存盘、离开vi、显示行号等命令。

一般模式操作(移动光标)

h 光标左移 
j 光标下移
k 光标上移 
l 光标右移
Ctrl+f 屏幕向下移动
Ctrl+b 屏幕向上移动
0或Home 移动到此行最前面字符处
$或End 移动到光标所在行的行尾
H 光标一定到当前屏幕最上方的行的第一个字符
M 光标移动到当前屏幕中间行的第一个字符
L 光标移动到当前屏幕最下行的第一个字符
G 移动到此文件最后一行
nG 移动到第n行
gg 相当于1G 即移动到第一行
nEnter 光标下移n行       

一般模式操作(查找、替换)

/word 向下查找单词“word”
?word 向上查找单词“word"  
n 表示重复前一个查找操作   
N与n相反(反向查找)
:s/word1/word2/g 在当前 行 将word1替换成word2
:%s/word1/word2/g 在当前 文件 将word1替换成word2
:n1,n2s/word1/word2/g在n1到n2行查找word1替换成word2(n1,n2为数字)
:1,$ s/word1/word2/g 从第一行到最后一行查找word1 替换成word2
:1,$ s/word1/word2/gc 同上,在替换前需要判断是否替换

一般模式操作(删除 )

x 向后删除一个字符
nx向后删除n个字符(不常用)
X 向前删除一个字符
dd 删除光标所在行
ndd 删除包括光标所在行以下的n行。
d1G 删除包括光标所在行在内到第一行所有数据
dG 删除包括光标所在行到最后一行
d$ 删除光标所在处到同行最后一个字符
d0 删除光标所在处到同行的第一个字符

一般模式操作(复制)

yy 复制光标所在行
nyy 复制光标所在向下n行
y1G 复制光标所在行到第一行所有数据
yG 复制光标所在行到最后一行所有数据
y$ 复制光标所在到同行最后一个字符
y0 复制光标所在处到同行的第一个字符
p 将已复制的数据粘贴到光标所在下一行
P 将已复制的数据粘贴到光标所在上一行
u 复原前一个操作(类似windows中Ctrl+z)

编辑模式操作

一般模式到编辑模式切换
i 从光标所在处插入
I 从所在行第一个非空白字符处插入
a 从光标所在下一个字符处插入
A 从光标所在行最后一个字符处插入
o 在光标所在处下一行插入新的行
O 在光标所在处上一行插入新的行
r 替换光标所在处字符一次
R 一直替换光标所在处文件知道按下Esc

命令行模式

w [filename] 另存为filename
r [filename] 读取filename指定文件中的内容到光标所在的行
n1,n2 w [filename] 将n1到n2 行另存为filename
! command 林芝奇幻到命令行模式下执行command命令
    例如 !ls /etc 即可在vim当中查看/etc下面以ls输出的信息
wq 保存后离开
q!不保存并强制离开
set nu 显示行号
set noun 取消显示行号

软件包管理

文件的压缩与打包

gzip与bzip2比较

gzip比bzip2性能好,但bzip2可以获得更高的压缩比

gzip压缩和解压

 gzip -cv test.log > test.log.gz    #压缩并重定向
 gzip -l *.gz                       #查看压缩比
 gzip -ncv test.log > test.log.gz #n为数字 1--9 默认是6 数据越大压缩比越大
 gzip -v test.log               #不保留原文件
 gzip -d **.gz                  #解压缩
 zcat **.gz                     #查看压缩后的文件

bzip2压缩和解压

 bzip2 -z test.log              #压缩后不保留源文件
 bzip2 -zk test.log             #压缩后保留源文件
 bzip2 -d **.bz2                    #解压缩文件,删除源文件
 bzip2 -dk **.bz2               #解压缩文件,不删除源文件
 bzip2 -ncv test.log > test.log.bz2 #n为数字 1--9 默认是6 数据越大压缩比越大  

tat打包和解压

gzip打包、压缩和解压

tar -zcvf ***.tar.gz /**      #打包并按gzip压缩文件 
tar -zxvf ***.tar.gz -C /**    #将压缩文件解压到指定文件下   
tar -ztvf ***.tar.gz            #查看打包的内容有哪些文件
tar -zpcvf ***.tar.gz ***       #备份文件

bzip2打包、压缩和解压

tar -jcvf ***.tar.bz2 etc /** #打包并按bzip2压缩文件
tar -jxvf ***.tar.bz2 /**     #将压缩文件解压到指定文件下
tar -jtvf ***.tar.bz2         #查看打包的内容有哪些文件
tar -jpcvf ***.tar.gz ***     #b备份文件

解压相关文件操作
tar -zxvf .tar.gz | grep # 查看压缩包中是否存在相应文件并得到相应目录
tar -zxvf *.tat.gz 查询出的文件目录

rpm安装

rpm默认安装路径

/etc 配置文件放置的目录
/usr/bin 一些可执行文件
/usr/lib 程序使用动态链接库
/usr/share/doc 基本软件使用手册与说明文件
/usr/share/man man page文件

rpm配置

rpm -ivh ****.rpm   #安装rpm文件
rpm -Uvh ***.rpm    #如果后面文件未安装直接安装。如已安装版本较低直接更新到新版本
rpm -Fvh **.rpm     #如果后面接的软件未安装到系统上,该软件不会被安装 只有已安装的软件才会被升级
rpm -qa ***         #查询系统已安装的包
rpm -ql ***         #查询文件所包含的文件及目录
rpm -qi *** #查询文件相关说明用户名、版本、时间等
rpm -qc *** #查看文件的配置文件内容
rpm -qd ***         #查看文件说明文件
rpm -qR ***         #查看文件需要的依赖
rpm -V ***          #查看软件是否被改动过
rpm -Vf ***         #列出某个文件是否被改动过
rpm -Vp **.rpm      #列出rpm包中的文件是否在当前系统中安装或修改
rpm -Va ***         #列出目前系统上面rpm安装的所有包中被修改过的文件
rpm -e ***          #卸载rpm文件   

yum使用

yum search ***      #查找相关软件包
yum info ***        #查看软件包功能
yum info | head ***
yum list | head ***
yum list updates    #查询服务器上可供本机进行升级的软件
yum list updates | grep xx.x86_64 #列出可供xx.x86_64升级的版本
yum [install | update | remove] 软件名 

yum客户端运行机制

客户端每次运行yum调用install或search的时候,都回去解析/etc/yum.repose.d下面所有以.repo结尾的文件,这些配置文件指定了yum服务器的地址。
yum会定期去"更新"yum服务器上的rpm“清单”,然后把“清单”下载保存到yum自己的cache里面,根据/etc/yum.conf里配置(默认是在/var/cache/yum/x86_64/6下),每次调用yum安装包的时候都会去这个cache目录下找“清单”,根据“清单”里的rpm包描述从而来确定安装包的名字,版本号,所需要的依赖包等,如果rpm包的cache不存在,就去yum服务器下载rpm包安装。

yum服务器端运行机制

所有要发行的rpm包都放在yum服务器上以供别人下载,rpm包根据kernel的版本号、CPU版本号分别编译发布。yum服务器只要提供简单的下载,httpd或ftp。yum服务器一个重要的环节就是整理出每个rpm包的基本信息,包括rpm包对应的版本号,cof文件,binary信息,以及依赖信息。在yum服务器上提供了createrepo工具,用于把rpm包的基本概要信息做成一张“清单”,这张“清单”就是描述每个rpm包的spec文件中的信息。

shell脚本

shell是用户与Linux操作系统之间的接口,提供了与操作系统之间的通讯的方式。
shell基本上是一个命令解释器,它接受用户命令,然后调用相应的应用程序。

关于变量:

全局变量:一般全大写,如环境变量
局部变量:脚本函数中的局部变量通常使用local修饰:表示的是该变量的有效范围在该函数内部有效。
linux命令可以定义变量
${WEEL}day若变量和其他字符组成新的变量就必须给变量价格大括号。       

变量的读取和设置

echo $****             #读取shell变量
echo ¥{****}            #读取shell变量
env | more              #查看环境变量 
set | more              #同上
export a=1              #设置环境变量值
/etc/prpfile            #自定义java环境变量
a=$(date +%F)          #定义日期格式为:2017-10-1  

数据重定向

就是摸个命令执行后应该要出现在屏幕上的数据,该传输的指定位置的过程。比如传输文件或其他命令
命令分为标准输出和标准错误输出。
数据重定向编号
标准输入(stdin)编号:0
标准输出(stdout)编号:1
标准错误输出(stderr)编号:2

1>:以覆盖的方法,将正确的数据输出到文件
1>>:以累加的方法,将正确的数据输出到文件
2>:以覆盖的方法,将错误输出的数据传输到文件
2>>:以累加的方法,将错误的输出数据传输的文件。

find查找命令 ##

find [path] [option]        #查找格式
    [path]  .当前路径 /从跟目录下查找
    [option]  
        print  :将匹配的文件输出到标准输出
        size    :匹配文件大小 
            find ./ -size 0
        size n:[c]:查找文件长度为n块的文件,带有c时表示文件长度以字节计算。
            find .-size +1000c test 
        name    :按照文件名查找
            find ./ -name java
            find .  -name ".java"
        perm    :按照文件权限来查找文件
            find . -perm 755 test
        user    :按照文件所有者来查找文件
            find ~ -user root test 
        group   :按照文件所属的组来查找文件
            find / -group root test             
        mtime -n +n :按文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示更改时间距现在为n天以前
            find / -mtime -5 test   #5天以内
            find / -mtime +5 test   #5天以前
        nogroup   :查找无有效所属组的文件
            find / -nogroup test    

sed命令

sed是一种在线编辑器。
sed的执行过程如下:
    sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间)。然后处理临时缓冲区中的行,完成后把该行发送到屏幕上set每处理完一行就将其从临时缓冲区中删除,然后将下一行读入,进行处理和显示。处理完输入文件的最后一行后,set便结束运行,set把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。
sed [option] "[action]" [filename]
    option:
        h或--help 显示帮助
        n仅显示script处理后的结果
        V或--version 显示版本信息
        e:允许对输入数据应用多条sed命令进行编辑
        f 直接将sed的动作卸载一个文件内
    action
        s:字符串替换
        i:插入
        d:插入
        a:追加
        c:c替换
        p:打印指定的输出行

    sed "s/test/ceshi/g" ceshi.txt #替换原文件test为ceshi
    sed -i "s/test/ceshi/g"       #修改源文件内容
    sed "1 i hi linux" test       #n i 在第一行添加
    sed "1 a hi linux" test       #n a 在第一行后追加  
    sed "/hdfs/d" test            #删除匹配行            

grep ##

grep是一种文本搜索工具,它能够使用正则表达式搜索文件。
grep -n -i 

tail

把文件的最后几行显示到终端上,如果该文件有更新,tail会自动刷新
tail [-F ] [ -c Number | -n Number | -m Number | -b Number | -k Number] [File]
      tail -F filename  #显示文件尾部内容默认10行

sort

    -n          #按照数值排序
    -u          #不出现重复的行
    -t          #指定分段的符号
    -k          #指定的第几段
    -r          #逆向排序   
    sort -r test > test1        #对文件进行逆序排序
    sort -t "." -k 1 test       #对文件进行指定分割符,并对第1个字段排序

cut

cut [-option] filename
    option
        -b 字节   
        -c 字符
        -f 提取第几行
        -d 按指定分隔符分个列
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值