linux学习-----命令

 

第一部分:基础
一:文件操作
二:权限管理 
三:文本操作
四:打包与压缩
第二部分:进阶
一:http请求与传输
二:网络常用工具命令
三:远程命令
四:进程与系统
五:其他
第三部分:shell脚本
数组
参数传递
shell运算符
shell流程控制
shell函数
其他

  •  

使用帮助:man和info 命令帮助

第一部分:基础

一:文件操作

1:文件显示

  • ls  显示当前目录下的目录或者文件夹(不显示以.开头的的隐藏文件。)

                        ls+目录名  查看目录下的所有文件

                       ls -a  查看目录下的所有文件 包括隐藏文件

                       ls -l 查看文件全部信息  权限 ,所属人,大小(以字节为单位),修改时间等

                       ls -lh 查看文件可以查看文件大小

                       ls -r 将结果以倒叙方式显示

                      ls -s 以文件大小排序

                      ls-t 以修改时间排序

             例子:

                      ls  lsrth :  按时间倒叙(这个老师也没讲明白)我推测-s比较时是根据文件相同的权限,往后看看  再验证

                    ls  /   :查看电脑根目录下的文件

  • pwd 显示当前目录
  • cd进入目录

                  cd .  访问当前目录

                  cd . .  访问上一级目录

                 cd - 返回上一级=次访问的目录 

                cd  ~  进入当前用户的home目录,相当于我电脑的    /home/sysadmin

2:文件管理

  • cp  复制文件  cp 源文件名 复制后的文件名

            cp  -r 原目录名  复制后的目录名  

  • mv  重新命名 或者移动文件  
    修改文件名:mv 原文件名 新文件名 

            移动文件:mv 原文件 新文件目录

  • rm  删除文件
    rm 文件名或者目录/文件名  删除文件
    rm -r 删除问价
    rm -rv 告诉我们删除了啥都
    rm -f 删除时报的错误不显示

3.链接

硬链接只能针对文件使用,ln a.sh  b.sh  指b链接a  如果cat b.sh 展示的内容和a一样。如果删除了a.sh 那么b.sh仍然可以访问。

软链接可以针对目录,ln -s  a.sh  b.sh 指b链接a 一个软连接。如果删除或修改了a目录,那么b无效 了就。

ln -f 可以覆盖存在的链接。

4查看磁盘大小

df -h  查看磁盘大小和使用情况

du 查看文件占用大小、

5文件查找

find 时间、类型、名称

例如:find 目录 -time+3 -type f :在目录下查找三天前修改的文件

二:权限管理 

root用户

r=4=读

w=2=写

x=1=执行

drwx-rwx-rwx  当前用户权限-组用户权限-所有用户权限     第一个d代表 目录

-rwx-rwx-rwx  当前用户权限-组用户权限-所有用户权限     第一个-代表 文件

  • 修改权限
    chmod 修改权限  chmod 744 
    chmod -r  递归给目录下的全部修改权限
  • chown修改所有者
  • chgrp修改所属组

su切换用户 什么也不加默认root

sudo -u制定用户  也可以什么不加 默认root

三:文本操作

  • cat  查看
  • head 看头几行  head  -行数  看头几行行数
  • tail -行数  看后几行行数
  • tail -f 不断输出
  • less 查看大文件第一屏:  G 最后  , g最开始, 200g指定第200行,/关键字 看关键字几行
  • grep 过滤  grep 关键字 文件名
  • sort 排序按字符串进行排序 -r倒序 -k指定列  -n按数字排序
  • uniq 去重(相同的挨着)进行去重 -c输出重复出现的次数
  • wc统计行数,字节数,单词数
    例如:sort 文件 | uniq -c | sort -k1,1nr | head   出现重复的去重最多的前十行。
  • vim 文本操作:
    d删除 dd删除整行 u撤销删除 w删除一个单词
    i进入编辑模式,:q 退出不保存。:wq! 保存病退出。

四:打包与压缩

压缩 tar -zcvf 文件.tgz  bakup/

解压 tar -xzf 文件.tgz

zip  unzip

zcat和zgrep

 

第二部分:进阶

一:http请求与传输

  • curl 模拟http请求 
    -x 指定resquest的method,如post get等
    -h 指定请求的header,如“content-type:application/json”
    -d 指定post请求的detd,消息体
    -b 指定请求的cookie,可以在-h里面设置
    -c 输出响应的set-cookie的内容输出到文件
    -i 指定输出去response的header信息等
    -w 指定输出部分格式化的数据,如请求时间,http_code等%{http_code}
  • wget下载文件 wget+地址

二:网络常用工具命令

  • ping  检测网络连通性
    -c 数字 ping几次
    -W  数字 超时时间
  • host
    host ip 解析ip: 获取有 主机名

    host 主机名  :获取ip地址

  • nc  网络发包
  • netstat 查看端口使用情况   netstat -an 所有的端口以 ip形式
  • tcpdump

三:远程命令

ssh 远程登录工具

scp远程拷贝:  本地和远程文件间的拷贝

scp ./本地文件.txt haibo.liu@远程机器:/远程目录     本地拷到远程

scp  haibo.liu@远程机器:/远程目录  /远程文件   ./ 本地目录     远程拷到本地

四:进程与系统

  • ps 显示进程与线程信息
  • free 查看内存使用情况

                         free -m 以m为单位

                        free -h 根据文件大小,自动选择单位跟在后面

  • top 动态显示cpu 内存和进程的使用情况
    1:展示多核cpu使用情况
    load average 指平均每一分钟处理的任务数。
  • kill 向指定进程发信号 
    kill -l  中断,正常退出,暂停,继续进程
    kill -9 pid(进程id)结束进程

五:其他

hostname :看主机名

ifconfig :查看个网卡ip

 

第三部分:shell脚本

#!/bin/sh                                1:脚本解析器:

mkdir shell_test                    2:生成文件夹

cd shell_test

for((i=0;i<5;i++));do              3:循环操作,touch 生成空文件

touch test_$i.txt

done

 

  • 数组

    定义:array_name=(value0 value1 value2)

    读取:value1=¥{array_name[1]}

    获取数组中的所有元素:使用@或者× 可以获取数组中国的所有元素

例如:touch haiboa.sh创建一个脚本文件 将他的权限修改成777

 #!/bin/sh

my_ary=(1 2 3 4)
my_ary[5]=6
#my_ary[7]=6

echo "第一个数组为" :${my_ary[0]}
echo ${#my_ary[@]}
echo ${#my_ary[@]}
echo "数组的长度" :${#my_ary[0]}

结果:

第一个数组为 :1
5
5
数组的长度 :1

  • 参数传递

    $n  n代表一个数字;0为执行的文件名;1为执行的脚本的第一个参数,以此类推
    $# 传递到脚本的参数个数
    $*以一个单字符串显示所有有向脚本传递的参数,以“$1...$n”的形式输出所有参数
    $@与$*相同,但是使用时加引号,并在引号中返回每个参数,以“$1...$n”的形式输出所有参数。
     

例如:

#!/bin/sh

echo '$#:'$#
echo '$0:'$0
echo '$1:'$1
echo '$2:'$2
echo '$*:'$*
echo '$@:'$@
echo '----$* start----'
for i in "$*"
do
echo $i
done
echo '----$* end----'
echo '----$@ start----'
for i in "$@"
do
echo $i
done
echo '----$@ end----'

运行:./haiboa.sh 1 2 3 4 5 6

结果:
$#:6
$0:./haiboa.sh
$1:1
$2:2
$*:1 2 3 4 5 6
$@:1 2 3 4 5 6
----$* start----
1 2 3 4 5 6
----$* end----
----$@ start----
1
2
3
4
5
6
----$@ end----

  • shell运算符

    算数运算符、关系运算符、布尔运算符、逻辑运算符、字符串运算符、文件测试运算符(-b,-c,-d,-e文件存在不,-d文件是目录不,-s文件是空不,-f 是普通文件不,)

    例子
    #!/bin/sh

    a=20
    b=4
    echo "a="$a
    echo "b="$b

    val=expr$a+$bexpr$a+$b
    echo "a + b : $val"

    val=expr$a−$bexpr$a-$b
    echo "a - b : $val"

    val=expr$a⋅$bexpr$a⋅$b
    echo "a*b : $val"

    val=expr$a$bexpr$a$b
    echo "a / b : $val"

    if [ $a == $b ]
    then 
    echo "a等于b"

    fi
    if [ $a != $b ]
    then 
    echo "a不等于b"
    fi

结果:

a=20
b=4
a + b : 24
a - b : 17
a*b : 80
a / b : 5
a不等于b

!!!!!!!!!!!注意  !!!!!!!!val=expr$a$bexpr$a$b 的符号是  不是'  '   

!!!!!!!!!!!注意  !!!!!!!!if [ $a == $b ]  的[] 与字符之间的空格

!!!!!!!!!!!注意  !!!!!!!!a \* $ 乘法加一个转义字符

 

  • shell流程控制

if,for,while.,until,case,break,continue

 

  • shell函数

[function] funname [()]
{
  action;
[return int;]
}

  • 其他

    xargs   分组
    alias  设置别名
     

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值