zoukankan      html  css  js  c++  java
  • Linux常用命令笔记

    Linux命令

    基本命令

    文件夹创建与删除

    • mkdir 创建文件夹
    • mkdir a/b/c -p递归创建多层文件夹(必须加参数p)
    • rmdir 删除空文件夹
    • rm -r 删除文件夹
    • rm -f 删除文件夹(没有提示,强制删除)
    • rm -i 删除文件夹(有提示)

    • mv name1 name2 更改文件夹名称

    • tar -zxvf /.../...gz 解压gz文件到当前目录(文件路径含空格要用单引号引起来,或者在空格前使用转义字符)

    • history 查看历史命令

    • file 查看文件类型

    • ctrl+shift+t 打开(新建)一个终端

    • alt+数字在终端间切换

    • 复制文件后,可按快捷键鼠标滚轮粘贴

    • tar只做打包和解包,不做压缩

    • tar -czvf 压缩包名字(....tar.gz) 需要压缩的文件 压缩+打包(参数c调用create创建压缩包、z调用gzip工具进行压缩、v显示进度、f文件,该参数放最后,前面三个参数顺序任意)

    • tar -xzvf 压缩包名字(没有指定路径时,默认解压到当前路径)

    • tar -xzvf 压缩包名字 -C 目录名字 解压到指定目录

    • tar -cjvf 操作(....tar.bz2)文件

    • unrar e xxx.rar #解压rar文件到当前目录

    • unrar e xxx.rar ./tmp #解压rar文件到tmp目录

    • sudo passwd 修改当前用户密码

    vi命令:
    a(光标后插入) i(当前位置插入) o(当前行下开启一行插入)都可进入编辑状态
    A当行尾进行插入
    I行首插入
    shift+o在上面插入一行
    :set nu开启左边行号
    :set nonu 关闭左边行号
    :set list显示制表符、换行符
    :set nolist关闭制表符、换行符显示

    cd ~切换到当前用户的主目录
    cd -切换回上一个目录

    linux优势:多用户管理网络处理方面免费
    Linux目录:
    /bin目录:命令,工具;
    /etc目录:配置文件;
    /lib目录:库;
    /sbin目录:管理员命令;
    /home目录:用户目录;
    /home/用户:用户主目录;
    /usr/include:头文件;
    /dev设备文件

    Linux文件分类:
    -开头为普通文件;
    L开头为link文件;
    d开头为目录文件;
    c开头代表设备字符文件;
    b开头代表设备文件;

    Linux文件权限:
    用户分类:文件所有者(文件创建者)用户组(类似QQ群)其他

    命令:
    保留命令界面,因为命令更快.
    格式:命令+空格+[-参数]
    linux中,点开头的文件是隐藏文件;

    ls --help打开帮助;
    man ls打开man手册;
    有重名时需要指定章节:
    man 3 printf指定查询第三章中printf手册;

    ls命令:
    -l list列表方式显示
    -a all所有
    -h 人性化显示(要和l配合)

    ls 可以和通配符搭配:
    例如:ls te* 显示以te开头的文件

    l==>ls等同
    ll
    =>ls -l等同

    ls+路径,可查看其他路径(没有路径时默认当前路径)

    ls可以和通配符配合显示符合要求的文件
    mkdir cmd 新建一个名叫cmd的目录
    touch 如果文件不存在,就新建,如果存在,则把文件改变为当前时间.可以修改时间戳
    使用通配符当普通字符时,用进行转义.

    重定向:

    # > 覆盖内容
    ls -l > test.txt #将输出保存到test.txt
    # >> 追加内容
    date >> time.txt #将当前时间追加到time.txt中
    

    cat 文件 显示文本文件(一次性全显示)
    more命令(分页)显示文本内容
    也可以用vi分页查看文本内容

    借助管道来过滤搜索:
    ls /bin/ | grep ls
    取命令中含ls的命令
    ls /usr/lib/ | grep stdio.h
    取库函数中含stdio.h的

    管道:一端的输出(写)作为另外一端的输入(读)

    ls /bin/ -l | more
    分页显示bin目录下命令

    清屏:
    ctrl+l或clear

    cd什么都不加,会自动去到用户目录(等价于cd ~)
    cd -切换到上一次路径

    tree命令显示目录树结构
    tree 目录 -L 2 显示目录树2层

    ln 源文件 链接文件 硬链接创建(只能普通文件可以,文件夹不可以)主要用作备份文件,不占内存.
    ln -s 源文件 链接文件 软连接创建

    硬链接主要作用
    1备份文件,防止误删.
    2硬链接作用给同一个文件起N个名字,实际只有一份文件存在硬盘
    3除非把所有文件删除,否则,文件一直存在

    1软链接:解决在默认库找不到库文件的问题
    2软链接跨目录源文件需要绝对路径,否则软链接只会在当前目录查找
    3源文件删除,则软链接没有意义

    小技巧:
    ctrl+alt+t 新建终端
    ctrl+shift+t以标签样式新建终端
    alt+数字 切换终端
    ctrl+shift+"加号"终端字体变大
    ctrl+"减号"终端字体变小
    滚轮中键按下粘贴

    拷贝:
    cp -r 拷贝文件夹
    cp -v 显示进度
    mv 同级目录相当于改名

    file 查看文件类型
    file /etc/group

    which+命令 查看命令所在目录

    tar只负责打包和解包,要和压缩命令配合使用进行压缩
    gzipzip2只负责压缩

    .tar.gz格式:需要tar和gzip配合使用
    压缩:
    tar -cvzf xxx.tar.gz 需要压缩的文件(f一定要放后面,c(创建)v(进度)z(指定调用gzip工具压缩)顺序随意)

    解压:
    tar -xzvf xxx.tar.gz 解压到当前目录(z可省略)
    tar -zxvf xxx.tar.gz -C 目录 解压到指定目录,需要加-C

    压缩(bz2压缩率更高):
    tar -cvjf xxx.tar.bz2 需要压缩的文件(f一定要放后面,c(创建)v(进度)j(指定调用bzip2工具压缩)顺序随意)
    tar -xjvf xxx.tar.bz2 解压到当前目录(j可省略)
    tar -jxvf xxx.tar.bz2 -C 目录 解压到指定目录,需要加-C

    du -h 查看所有文件(含文件夹)大小
    du -sh xxx 查看xxx文件夹总大小
    du -sh 查看当前目录总大小

    压缩(zip)不能用于压缩软链接,否则软链接变成硬链接了.
    zip -r xxx(.zip) 需要压缩的文件
    zip -r dYSM.zip $(ls | grep .dYSM) 将当期目录下dYSM文件打成压缩包dYSM.zip
    unzip xxx.zip -d 目录 解压到指定目录
    -n 解压缩时不要覆盖原有的文件.
    -o 不必先询问用户, unzip执行后覆盖原有文件.

    whoami显示当前登录用户
    exit退出当前用户,回到上一个用户
    sudo让当前用户提升为管理员,输入的密码为当前用户的密码
    su root 以管理员方式,切换到管理员,这里要输入管理员密码
    sudo passwd root 给管理员root改密码,输入当前用户密码
    sudo su root切换到管理员
    sudo su edu 切换到edu
    切换到管理员
    sudo su
    sudo su -(加-会切换到用户主目录)
    sudo su root
    sudo su - root

    查看用户用户组(用户名和用户组名字,不要以纯数字起名)

    cat /etc/passwd 查看用户信息
    edu:x:1000:1000:edu,,,:/home/edu:/bin/bash
    用户名 前面一个数字是用户ID,第二个数字是用户组ID
     
    cat /etc/group 查看用户组
    edu:x:1000:
    用户组的名字 数字表示用户组ID
    

    添加和删除用户组
    sudo groupdel abc 删除abc用户组
    sudo groupadd abc 添加abc用户组
    sudo usermod -g abc edu 更改edu到abc组
    如果用户组已经包含成员,不能删除

    新建用户:
    1一个用户有一个主目录
    2默认新建用户,如果不指定组,自动新建一个用户组,名字和用户名字一样
    sudo useradd mike -d /home/mike -m创建一个用户mike指定主目录为/home/mike(-m指主目录不存在时则创建主目录)
    删除用户:
    用户删除时,随该用户创建的组也会删除
    sudo userdel mike -r(-r指同时删除用户主目录)
    sudo useradd mike -d /home/mike -m -g edu
    (-g指定mike所属的组为edu)

    新建用户是无管理员权限的
    last:查询用户登录情况

    chmod u-w 1.c
    chmod u+w 1.c
    chmod g-w 1.c
    chmod u-r,g-rw,o-x 1.c

    chmod 777 abc/ -R(-R表示子文件一起变权限)

    对于文件夹:
    x:没有则不能进入
    w:没有则不能在内部新建文件
    r:没有则不能在文件夹内部查看文件信息

    sudo chown mike 1.txt
    将1.txt所有者改为mike
    sudo chgrp root 1.txt
    将1.txt所属的组改为root

    查看进程状态:
    程序:放在硬盘上的文件
    进程:程序运行的状态
    ps -aux(-可以省略)
    显示详细的进程信息
    ps -aux | grep subl
    显示含subl的进程
    kill+pid
    结束该pid的进程

    kill其他用户的进程,可能需要加sudo
    sudo kill -9 4417(-9表示强制结束)
    强制结束4417进程

    kill -l查看kill信号信息
    top动态显示进程
    按大写P则按CPU占用排序
    按大写M则按内存占用排序
    按Q退出

    ctrl+z让前台进程转到后台休眠
    jobs查看后台休眠进程
    fg+数字,将后台休眠进程调到前台
    fg将后台进程调到前台运行(最近休眠的那个进程)

    ./demo &自动在后台运行(无法使用ctrl+c结束)

    alt+ctrl+F2/F7切换字符界面/图形界面

    Linux使用公共账号或公共目录创建多用户进行远程Linux编程.
    开远程需要先安装SSH服务器
    windows远程连接Linux需要专门的软件
    Linux和Unix自带远程连接
    Linux远程连接命令:
    ssh -l edu ip

    Linux检查环境变量

    • 查看当前的环境变量
    env
    
    • 查看进程运行时的环境变量:
    # 该命令输出的环境变量会显示到一行, 因为不同环境变量之间是以""分割的.
    cat /proc/$PID/environ
    # 通常将""替换为"
    "(假设进程pid为444)
    cat /proc/444/environ | tr '' '
    '
    

    Linux烤文件三种方式:

    • ftp
    • scp
    • samba

    scp

    scp localFile root@192.168.0.252:/home/root/     #将本地文件localFile拷贝到远程服务器192.168.0.252的/home/root/目录下.
    
    • 注意点
      • 当操作一样ip的两台设备时, 第二次scp操作时会提示错误, 此时要清理scp连接文件或编辑scp连接文件, 去掉已保存的ip.
      vi ~/.ssh/known_hosts    # 或直接rm ~/.ssh/known_hosts
      

    sudo ./myhttp start启动myhttp
    sudo ./myhttp stop 结束程序

    :vsp 文件
    分屏显示

    编译过程:
    a).预处理:头文件展开,屏蔽注释,宏定义替换,条件编译;不做语法检查;gcc -E hello.c -o hello.i

    b).编译:将上一步翻译后的文件,进一步进行翻译,进行语法检查,编译成汇编代码;(计算需分配的内存空间)

    c).汇编:将汇编代码生成目标文件,但还不能执行
    d).链接:链接动态库和静态库

    ldd 可执行文件,查看可执行文件的库(Linux)
    depend可用该软件查看windows文件依赖的库

    IDE,集成开发环境
    Qt Creator
    VS
    三大功能:
    1).编辑器功能
    2).做图形界面开发,GUI
    VS,MFC框架(MFC是C++写的),在这个框架上可快速写界面.
    Qt的框架就叫Qt(也是C++写的)
    3).终端运行功能

    查看Linux代码工具sublime
    source insight(windows看代码神器)

    关闭防火墙

    su - root           --切换到root
    iptables -F         --关闭防火墙
    chkconfig iptables off      -- 设置开机不启动防火墙
    setenforce 0            -- 关闭安全Linux
    

    Linux其他技巧

    • ipcs -m 查看共享内存, key值编号0x0000的是系统核心的共享内存, 无法删除.

    • shell脚本a=1不能加空格, 否则会将a当命令, =和1当参数.

    • 重启网卡

    ifconfig eth0 down / ifconfig eth0 up
    

    查看实时刷新的日志文件

    tail -f -n 10 file_name      # 查看最后10行日志
    tail -f file_name            # 查看日志末尾, 默认也是10行
    

    查看实时刷新的16进制文件

    hexdump file_name
    
  • 相关阅读:
    通过HTTP发包工具了解HTTP协议
    Oracle之数据库安全
    SQL注入深入剖析
    apache中如何调用CGI脚本
    fastcgi php-cgi与php-fpm区别和之间的关系
    使用PHPExcel实现Excel文件的导入和导出(模板导出)
    学会数据库读写分离、分表分库
    框架Thinkphp5 简单的实现行为 钩子 Hook
    php文件下载
    PHP为JSON数据的API返回空数组或者空对象
  • 原文地址:https://www.cnblogs.com/linkyip/p/10091229.html
Copyright © 2011-2022 走看看