linux基本指令记录

*移动: mv (mv ? dao ?)(如果mv A B(到)C,默认最后一个是到哪)
*复制:cp(cp ? ?)(-r 递归,复制文件夹使用)
*重命名:mv  /cp
*创建: mkdir(mkdir a/?)(-p 递归) touch
*删除 (强制): rm -rf (文件夹,递归)
         rm -f(文件)
          (rm -f ?
            rm -rf dsj*)
*返回上层:../
*回到家目录:cd ~

*ls -al 展示当前目录下文件的全部格式
*> ss.txt 覆盖输入 
*>> ss.txt 追加输入
*查看 cat / vim(:q 退出) 查看

*查看电脑使用情况: df (-h 增加可读性(10716 -> 11M))
*查看任务管理器: free -m (swap是临时磁盘)
less (q 退出)(空白键+上下 翻页)查看文件 ,以较小的内容进行输出)


*统计: wc 
(-l 行数  -w 单词数 -c 字节数(一个 字节 = 8 bit))
(wc (-l/-wl/-lwc/...) uu/ss.txt)

*查看文件末尾几行(日志): tail(不指定 就是末尾10行)
(tail -14 u/ss.txt)

 ~前几行(日志): head(~)

*查看文件动态变化(日志): tail (-F 时事跟踪(不区分大小写?)(ctrl+c 退出 ctrl+z 挂起)

*日历: cal(calendar(日历)):(-1 -2 -s -m -j -y -v -h)
(
*查询命令:  whatis mkdir
*~指令 :   mkdir --help
         man mkdir(q退出)
         infor mkdir(q退出)

*当前时间date:
年月日,时分秒
(固定格式:date "+%? %? ...")
*只显示年月日: (date "+%F) = (date "+%Y-%m-%d")
*只显示时分秒: (date "+%T") = (date "+%H:%:%MS")
*都显示:     (date "+%F %T")= (...)
*显示不是当天的日期: date -d "+1 day" "+%F %T"
            (固定格式:date -d "+/-数字 day/month/year=yeas" 
                                        可以加或不加固定格式"+%? %? ...")
(*作业:
    PDT:(Pacific Daylight Time)太平洋夏季时间。(与正常时区差14个小时)
            (太平洋时间的标准时间从协调世界时减去8小时(UTC 8)。)

    PST:(Pacific Standard Time )美国太平洋标准时间,
            (夏时制结束后就是PST。)

    CST:CST(China Standard Time)中国时间标准    
 )


*查找命令: grep
grep 选项 正则表达式
(grep -F "字符" 文件路径)

*管道|:指令1|指令2 (指令1的输出是指令2的输入)
(举例: ls / |grep s
sbin
srv
sys
usr)

*查找文件命令: find 路径 表达式
(举例:查找当前下所有的记事本文件.txt
find -name(以name形式) "*.txt"
(加路径的话: find 路径-name "*.txt"

)

*历史命令查询:     

            1.history
            2.展示历史输入指令
            3.!历史命令编号 
            4.展示历史命令编号 的历史指令 以及 输出结果


*设置别名:alias
(alias 新命令=“旧命令”)
*删除别名:unalias
(unalias 新命令)

*文件的压缩和解压:
    压缩: gzip 文件路径(红色)
    解压: gzip -d 文件路径 (文件夹必须写全名比如:1.txt -> 1.txt.gz)

*文件夹的压缩和解压:(-f -t -c -r -u -x文件 -z)
    压缩: tar -czvf uu.tar uu
    解压: tar -xzvf uu.tar -C yy 文件路径 (文件夹必须写全名比如:1.txt -> 1.txt.gz)


*文件编辑器: cat / less(:q 退出) / tail / head /
        vi(按i 进入插入模式,Esc,此时只能:wq退出 ,底线命令模式: )

0 1 2 3 4  5 图形 6 级别

*超级用户系统:
进入:su
(进入 ux普通用户)


1.相关配置文件(书p41):
(tail -5 /etc/shadow: 存密码的形式)
        密码相关信息:/etc/shadow
        组帐号基本信息:/etc/group
        用户基本信息: /etc/passwd

        (u:注释   ux:用户组名字    uid:用户id   gid:用户组id (还有附加组))

2.添加用户:useradd
 -g(主组) 1000 -G(附加组) 1002 -u(用户id) 666 (昵称)lin2

3.删除用户:userdel -r 用户名
4.删除用户组: groupdel -d 组名
5.添加用户组:

        a.直接添加(直接删除)
        b.先添加用户,自动生成同名的用户组(必须先删除用户再删除组)
6.添加用户:useradd -g 组号 -G 附加值号 =u 用户号 用户名
7.删除: gpasswd 
        (在超级管理员下创建的文件是全权限(绿色))


*权限管理:
        chmod 所设置的权限 目标文件
a.以数字形式设置
       1. 权限:r读 4, w写 2 ,x可执行 1,- 无 0(8进制下)
       2.对象:【u主 g组 o其他】
        u  属主(所有者权限)  g 属组(所有者所在的组的权限,也就是用户权限)  o(其他用户权限) 其他
        3.权限表示:
                 u    g   o
                rwx rwx rwx
                421 421 421

eg:
    chmod 740  a/1.txt (给1.txt的主对象设置rwx,组对象设置r,其他-)

b.以字符形式设置
+添加某权限,-取消某权限,对象:a = ugo
eg:
chmod u+wx 1.txt(给1.txt的主对象设置wx)
chmod a-x 1.txt(给1.txt的所有对象设置x)

注意:chmod +rwx 1.txt = chmod uga+rwx 1.txt = chmod a+rwx 1.txt(给1.txt中的所有对象都赋予所有权限)

*c语言

1.创建或编辑C语言文件: gedit a.c

(弹出a.c编辑界面,输入想保存的C语言文件,保存即可)

2.编译该C语言文件:gcc a.c

(出现a.out)

3.运行该C语言文件: ./a.out

*vi编辑器

(Linux一般都是vim)

1.进入:vi (没有输入后缀文件名,则会进入一个空的vim文件)

创建 并进入vim: vi a.txt

(默认进入浏览模式)

【浏览模式】:

       · 可以使用(’h‘、‘ j’、‘ k’、‘ l’)来代替光标进行(←,↑,↓,→)

       · 移动光标到想要[删除]的位置,

                删除单个字符:

                (将单个字符放到字符缓存区)(按‘p’将字符缓存区的单个字符粘贴到光标位置)

               ’删除光标所在位置的一行:按2次‘d((按‘p’将字符缓存区的一整行粘贴到光标位置))

                删除指定光标的字符或字符串:按‘d’,再输入想删除的个数,再根据朝左/朝→按键

                                                        按‘d’,按↑/按↓(删除光标当前行+上/下一行(共2行))

                注意:退出vi后 字符缓冲区的内容会被清空。

                                                                                

        

2.进入【插入模式】:输入’i ‘(退出按‘Esc’)

·↑:A\n,↓B\n,→C\n,←D\n

(输入:w 1.dat [保存]文件到1.dat文件(创建新的))

3.进入【可视模式】:输入‘v’(退出按‘Esc’)

·移动光标到想要[复制]的位置,按y(Ctrl +c);

·移动光标到想要[粘贴]的位置按p(Ctrl +v).

·shift + h :定位到首位置

shift + l :定位到尾位置

4.进入【覆盖模式】:输入‘r’(退出按‘Esc’)

5.退出:   保存并退出 ‘:x’、强制写入并退出':wq'、普通退出 ':q'

6.查看: cat 1.txt


*网络配置:
    1.进入超级管理员系统
    (ip地址 网络号和主机号,已经更新到并普遍使用IPv6,VPN 拨号上网)
    2.指令:ifconfig (window/linux):显示启用的网卡配置信息

        (普通用户也能查看,不能修改)
    (ifconfig -a 显示所有网卡配置信息)
    (ifconfig ens33 显示ens33的网卡配置信息)
    (Running 开启,mtu 最大传输单元,inet ip地址,netmask 子网掩码,inet6 ipv6,ether mac 硬件地址,RX 发送的数据包(接收信息的单位大小),dropped 丢包数,TX接受。。)
    3.网卡信息设为关闭/开启:ifconfig xxx down/up
    (RUNNING 消失,ip地址消失,硬件地址存在)
    4.为网卡指定临时ip地址(重启失效):ifconfig 网卡设备名 ip地址 子网掩码
    (一般指定C类(足够),255,255,255,0,A类(超大型)用不着)
    eg:ifconfig ens33 192.168.122.200 netmask 255.255.255.0

*查询主机全名:hostname

    1.进入超级管理员系统               (普通用户也能查看,不能修改)
    2.(-s短主机名)(-i ip地址)
    (软测试专用地址:1 127.0.0.1)
    3.取别名(重启消失):hostname 嫦娥
*测试百度(问问百度)(window/linux):ping baidu.com/220.181.38.148(Ctr + c 取消)
(ping -c 5(次) -i 0.5(最大秒数) baidu.com)
*netstat 查看网络连接
-a 所有 -t tup协议 -u udp协议 -n 显示源ip地址和目的ip地址
(listen 可监听状态)


*实验:
    1.    查看有没有被占用
        netstat -an | grep 9999
    2.    运行sever.py 
        python sever.py
    3.    打开浏览器访问 localhost:9999
    4.    netstat -an | grep 9999
*查看曾用名,域名,ip地址:
    nslookup www.baidu.com
*进入命令符界面:
    init 3
    登陆
    超级系统
    init 5
*rpm离线安装:
    1.安装
        rpm -i(安装)vh google-chrome-stable_current_x86_64.rpm
    2.卸载rpm
        rpm -e google-chrome-stable    
        (查询是否卸载完
        rpm -ga|grep google)
        (版本号只在安装的时候出现)
    3.升级
        rpm -U google-chrome-stable_current_x86_64.rpm
*YUM在线安装:
    1.查询已描写的软件和
        yum search google
    2.列出用yum已安装的软件和可以安装的
        yum list
        (查询是否安装成功:yum list |grep chrome
        列出已经安装的软件:yum list installed)
    3.列出提供yum的用户信息
        yum provides passwd
    4.安装
        yum install google-chrome-stable


*查看进程
    ps -a(查看当前终端进程,PID,STA,CMD )
    ps -ax(查看所有行终端进程)
    ps -axu(查看所有列终端进程)
    ps -u first(指定用户)
    过滤查找:ps -aux | grep 关键字
*调度进程:
    手动启动:
        前台启动:终端模拟器
        后台启动:命令前+‘&’可以转后台
    调度启动:
*杀死进程:
    kill pidch
    kill -9 pid (强制杀死)
    pkill
    pkill -u first(类似重启)
    
*shell编程
    #!/bin/bash
    #wj:bj.sh
    定义变量时:=两边不能加空格
    调用时候前加$
    输出(=printf):  echo "5 + 2 = $val"
                (输出结果:5 + 2 = 7)
*插入‘’到txt中    
    echo 'hello linux' > 521.txt    
*1+2:
    expr 1 + 2
    expr $[ 1 + 2 ]
    expr $((1+2))
*6*4:
    expr 4 \* 6
*6*2:
    expr 6 / 2
*if(-gt大于,-lt小于):
if [ $e -gt $18 ] 
then
echo "adult"
elif [ $e -lt 10 ]
then
echo “children”
else
echo "teenage"
fi

*步骤:
vim a.sh
chmod +x a.sh
./a.sh
*-a 与运算 -o或运算
*switch语句:
    例题:
        判断输入的数字反馈星期几。
            echo "Please input:"
            read i
            case $i in
            1) echo "Monday"
            ;;
            2) echo "Tuesday"
            ;;
            3) echo "Wednesday"    
            ;;
            4) echo "Thursday"
            ;;
            5) echo "Friday"
            ;;
            6) echo "Saturday"
            ;;
            7) echo "Sunday"
            ;;
            *) echo "Not have this day"
            esac
*for语句:
    例题:
        计算 1+..+50。
            方法1:
                sum=0
                for ((i=1;i<=50;i++))
                do let sum+=i
                done
                echo "方法1:1+..+50 = $sum"
            方法2:
                s=0
                for i in {1..50}
                do let s+=i
                let i++
                done
                echo "方法2:1+...+50 = $s"

*while语句:
    例题:
        打印1,..,10.
            i=1
            while (($i<=10))
            do
            echo "i = $i"
            let i++
            done
*until语句:
    例题:
        计算1,..,100偶数之和,奇数之和,整数之和
            sum=0
            sum_o=0
            sum_j=0
            i=1
            until [ $i -gt 100 ]
            do
            if [ $[$i%2] -eq 0 ]
            then
            let sum_o+=i
            else
            let sum_j+=i
            fi
            let sum+=i
            let i++
            done
            echo "sum = $sum "
            echo "sum_o = $sum_o"
            echo "sum_j = $sum_j"    
*function函数:
    例题:
        设计一个函数使得输入的两个数互相加。
            function add()
            {
            return $(($1+$2));
            }
            read -p "input:" a b
            add $a $b;
            echo $a "+" $b "=" $?;

            (注意函数有分号)


*计算1-100的和,与其中奇数的和,偶数的和
#!/bin/bash
#wj:a.sh
let sum=0
let sum1=0
let sum2=0
let i=1
until[ $i -gt 100 ]
do
if[ $[$i%2] -eq 0 ]
then
let sum1+=$i
else
let sum2+=$i
fi
let sum+=$i
let i++
done
echo "sum :$sum"
echo "sum1 :$sum1"
echo "sum2 :$sum2"
 


版权声明:本文为qq_57011058原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。