美文网首页
linux学习笔记

linux学习笔记

作者: dancer4code | 来源:发表于2019-10-03 20:40 被阅读0次

    whoami当前用户名
    who am i当前用户名 登陆的终端 当前的日期和时间
    who哪些用户在系统上工作
    w 比who更全面


    users 所有用户
    tty 目前登陆系统所使用的终端


    uname --help查看所有uname命令命令
    uname --version
    uname [-a|--all]所有信息
    uname [-n|--nodename]所使用系统的主机名
    uname [-s|--kernel-name]操作系统名
    uname [-r|--kernel-release]操作系统发布版本信息
    uname [-v|--kernel-version]
    uname [-m|--machine]machine hardware name
    uname [-p|--processor]processor type
    uname [-i|--hardware-platform]
    uname [-o|--operating-system]


    date显示系统日期和时间
    cal 显示本月日历(calendar)
    cal 7 2019 显示2019年7月日历
    cal 2019显示2019年日历

    clear清除终端窗口中的显示

    不能用root用户直接telnet操作

    #root用户提示符
    $普通用户提示符
    su命令(switch user)
    su - root切换root用户
    su -默认切换到root
    exit退出超级用户


    passwd修改密码命令password

    whatis who 命令who的作用概括

    man -f who

    who --help

    man who 查看who命令帮助man(manual手册)

    info who 帮助更易理解


    /etc系统主要配置文件
    /tmp 临时文件
    /boot 系统内核文件
    /usr (unix sysytm resources)系统应用程序和与命令相关的系统数据
    /dev 系统设备
    Lost+Found系统异常崩溃错误 ,系统将一些遗失的片段放入其中,系统自动过生成。
    /var存放系统运行时经常变化的文件,如log ,mail
    /srv存放的所有与服务器相关的服务,即一些服务启动后,这些服务需要访问的目录。
    /proc 虚拟文件系统,常驻内存中不占磁盘空间,存放系统运行所需的信息。
    /lib 、usr/lib、usr/local/lib系统使用的函数库。程序运行中需要调用的库函数


    cd命令(change directory)
    cd进入目录
    cd .当前目录
    cd ..上一层目录
    cd /根目录
    cdcd ~cd $HOME切换到用户家目录
    cd -切换到用户之前的工作目录


    pwd
    打印当前工作目录(print working directory

    ls(list)
    ls -a列举所有文件及文件夹包括隐藏-a(all)
    ls -l 列出非隐藏文件细节-l(long)
    ls -R列出本目录及子目录内容
    ls -F 列出目录中文件(可执行文件(*),目录(/),超链(@))


    mkdir(make directory)创建文件夹

    > 重新创建创建文件

    touch创建文件,如果不存在则创建,如果存在则更新时间戳

    mkdir aa 创建文件夹aa
    mkir -p aa/bb/cc不存在就创建
    -p(parents)
    >bb.txt每次都是重新创建创建文件bb.txt

    ls -l /lib >cc.txt 创建文件cc.txt并把列举lib下所有文件信息写入

    ls -lh文件大小变为熟悉方式-h(human)


    cp(copy)

    cp [options] [sources] [target]

    cp -i|-r|-p|-f aa /home复制aa文件夹道home下
    -i(interactive交互的)覆盖时有提示信息
    -r(recursive递归的)复制该目录及该目录下的全部内容
    -p(preserve维持)保留一些属性如时间戳
    -f(force强制)存在即直接覆盖

    普通用户cp -f强制覆盖
    root用户cp -i提示信息


    mv(move)移动目录及其目录下的内容

    mv aa.txt bb.txt

    rm(remove)删除

    rm -i|-r|-f
    rm -r aa删除aa及aa下的文件及目录
    rmdir只能删除当前空文件夹


    yum install vsftpd
    安装vsftpd

    service vsftpd status
    systemctl status vsftpd 查看vsftpd服务状态

    service sftpd start
    systemctl enable vsftpd开启服务


    ftp主机名|ip端口
    ftp>
    byequit退出

    lcd查看和改变本地路径
    cd ls查看改变linux路径

    open主机|ip端口 建立一个新连接
    切换模式
    ascii纯文本模式
    bin二进制模式

    put filename传输一个文件
    mput file1 file2 传输多个文件

    prompt开启/关闭交互信息

    get file
    mget file1 file2从linux到windows


    file查看文件类型,linux扩展名并不代表文件类型

    file aa
    filels -F类似,只不过更详细


    cat浏览文件内容(concatenate

    cat -A|-s|-b file1 file2 把file1和file连接到一起显示
    -A显示换行符
    -s压缩多个空行为一行
    -b显示行号

    cat>file
    you can to create a new file to use cat > command
    创建一个file并写入you can to create a new file to use cat > command 用ctrl+D保存结束


    head -n|--line 10 file查看file的前10行
    或者
    head -10 file与上一样


    tail -n|--line 10 file 查看文件最后10行
    tail -10 file

    tail -f|--follow file动态监控文件变化是显示在屏幕上
    tail -f log监控log文件

    wc (word count)查看文件行数、单词数、字符数
    wc -l|-w|-c -l line -w word -c character


    more如果一个文件较大用more查看
    空格键:向下移动一屏幕
    enter键:一次移动一行
    B:向上移动一屏幕
    H:帮助
    /字符串:向下搜索这个字符串
    N:字符串下一次出现
    Q:退出more命令
    V:在当前行启动vi


    type -t|-a|-P ls
    -t file为外部命令 alias为别名 builtin为bash内置命令
    -a列出包含指定命令的命令包括别名
    -P显示完整的文件名(外部命令),或者为内部命令


    linux中的通配符

    *:匹配0个或多个字符
    :匹配一个字符
    [a-z]:匹配a~z范围内的字符
    [^a-z]:匹配a~z之外的字符
    [abc]:匹配括号中的任意字符
    [^abc]:匹配不包含括号内的字符


    ~ 符号
    ~后面没跟用户 代表当前用户家目录
    ~跟了用户名 这个用户的家目录


    history查看执行命令的历史
    !行号 执行该命 令

    bash变量和{}用法

    $PATH执行命令时要搜索的路径,即一个命令如果存储在PATH的预定义变量用户可以只输入变量名来执行命令
    echo $PATH
    $HOME用户家路径

    {}
    touch a.{b,c}.{txt,jpg}
    则会创建 a.b.txt a.b.jpg a.c.txt a.c.jpg四个文件 其他命令使用{}也变得更方便。


    讲一个命令的输出作为另一个命令的参数
    hostname 主机名

    echo "this ishostname"
    echo "this is $(hostname)"
    echo "Today isdate"
    echo "Today is $(date)"


    linux 命令数学运算

    a=10;b=5,c=3

    echo $[$a+$b]
    echo $[$a-$b]
    echo $[$a*$b]
    echo $[$a/$b]
    echo $[$a%$b]
    echo $[$a**$c] 10的三次方


    反斜杠\用法

    \$a不作为一个变量输出$a
    \*不作为通配符输出*
    命令行最后使用\表示命令下一行继续。

    单引号(')与双引号(")
    1.单引号:禁止所有命令行扩展功能
    2.禁止除下面意外的命令行扩展功能
    美元符号$
    倒引号 `
    反斜杠 /
    感叹号 !


    文件描述符
    fd(file descriptor)

    0:标准命令输入 stdin
    1:标准命令输出 stdout
    2:标准命令错误 stderr

    ls -l /dev/std* 文件描述符与缩写对应关系查询


    使用find搜索文件和目录
    find pathnames expressions actions
    pathnames:搜索起始绝对路径或相对路径
    expressions:由一个或多个选项第一的搜索条件 多个选项关系时逻辑与(and)
    -name:文件名,使用通配符时最好放入""内
    -size [+|-]n: 大小大于 +n 小于 -n 或等于 n ,n代表512字节大小数据块的个数。
    -atime [+|-]n:查找访问时间超过天数 +n 低于 -n ,等于 n
    -mtime [+|-]n:查找更新时间超过天数 +n 低于 -n ,等于 n
    -user loginID:查找属于loginID(用户)的所有文件。
    -type:查找么某一类文件如f(文件)或d(目录)
    -perm:查找所有具有某些特定的访问许可位的文件

    actions:当文件被定位之后需要进行的操作 默认将满足条件的所有路径打印在屏幕上。
    -exec 命令 {} ; :在每一个所定位的文件上运行指定的命令。大括号{}表明文件名将传给前面表达式所表示的命令。
    一个空格、一个反斜线和一个分号表示命令的结束。在反斜杠和大括号之间必须有一个空格。
    -ok 命令 {} \;:在每个定位文件执行命令之前需要确认。实际就是-exec 命令的交互方式。
    -print:打印路径,默认方式
    -ls: 显示当前路径名和相关的统计信息,如i节点(inode)数、以K字节为单位的大小(尺寸)、保护模式、硬连接和用户。

    find / -name "java*" -ls查询根路径下的所有java开头的文件或路径的详细信息


    将输出重定向到文件中
    >:覆盖原来的内容。
    >>:在原文件之后追加内容。

    切换普通用户演示
    find /etc -name passwd 1>stdout.txt
    相同
    find /etc -name passwd >stdout.txt

    find /etc -name passwd 2>errout.txt输出错误信息到errout.txt

    find /etc -name passwd >allout.txt 2>&1标准输出和错误输出合并到一个文件
    find /etc -name passwd &>allout.txt&代表了所有文件描述符号


    输入重定向及tr命令
    tr (translate):转换、压缩和/或删除来自标准输入的字符并将结果写到标准输出上
    tr命令不接受文件名形式的参数,该命令要求他的输入被重定向为某个地方。

    aa.txt
    内容AAAAA

    tr 'A-Z' 'a-z' <aa.txt >bb.txt替换文件aa.txt中的大写字母为小写字母到bb.txt

    windows 换行(回车符"\r"+换行符("\n"))
    linux 换行(换行符("\n"))

    tr -d "\r" <aa.txt>cc.txt删除(-d)回车符(\r)
    tr命令的参数部分也是可以使用ascii码字符的八进制表示的数字如 \015 表示\r
    man ascii查看ascii对应信息


    cut 剪切命令

    cut -f|-d|-d file
    -f:字段(列)
    -c:要剪切的字符
    -d:字段分隔符(默认Tab)
    cut -f3 bb.txt列出第三个字段
    cut -f2 -d, bb.txt l列出第二个字段以,分隔符 默认分隔符Tab字符

    cut -c1-3 bb.txt从第一个字符取到第三个字符(按行取)


    paste 粘帖命令

    user.txt
    zlq,11,anhui
    fsd,22,anhui
    llx,33,fujian
    koo,44,guangdong
    
    [zlq@localhost test]$ cut -f1 -d, <user.txt >name.txt
    [zlq@localhost test]$ ls
    name.txt  user.txt
    [zlq@localhost test]$ cat name.txt 
    zlq
    fsd
    ssh
    jjg
    [zlq@localhost test]$ cut -f2 -d, <user.txt >age.txt
    [zlq@localhost test]$ ls
    age.txt  name.txt  user.txt
    [zlq@localhost test]$ cat age.txt 
    11
    22
    33
    44
    [zlq@localhost test]$ cut -f3 -d, <user.txt >addr.txt
    [zlq@localhost test]$ ls
    addr.txt  age.txt  name.txt  user.txt 
    [zlq@localhost test]$ cat addr.txt 
    anhui
    anhui
    hebei
    beijing
    
    [zlq@localhost test]$ paste name.txt addr.txt >nameaddr.txt
    paste name.txt addr.txt >>nameaddr.txt区别
    [zlq@localhost test]$ ls
    addr.txt  age.txt  nameaddr.txt  name.txt  user.txt
    [zlq@localhost test]$ cat nameaddr.txt 
    zlq anhui
    fsd anhui
    ssh hebei
    jjg beijing
    
    

    col将tab替换成空格

    [zlq@localhost test]$ cat -A user1.txt 
    zlq^I11^Ianhui$
    fsd^I22^Ianhui$
    ssh^I33^Ihebei$
    jjg^I44^Ibeijing$
    [zlq@localhost test]$ col -x <user1.txt>user2.txt
    [zlq@localhost test]$ cat -A user2.txt 
    zlq     11      anhui$
    fsd     22      anhui$
    ssh     33      hebei$
    jjg     44      beijing$
    
    

    sort命令进行排序

    sort [options] [filename]
    -r: 反向排序(降序) reverse
    -f:忽略字符大小写 folds
    -n:以数字顺序进行排序 numeric
    -u:去掉重复行 unique
    -t: -tc表示以字符c作为分隔符
    -k: kN表示按第N个字段排序 k N1,N2先按N1排序,如果重复按N2排序
    
    sort -r name.txt
    
    

    uniq命令去掉文件中相邻的重复行

    -c:行前显示该行出现的次数
    -d:只显示重复行
    -i:忽略字符大小写
    -u:只显示出现一次的行。

    sort -cid aa.txt 忽略大小写显示重复行。

    管道(|)操作

    命令1|命令2|.....
    命令1的输出作为命令2的输入

    cut -f1 -d: /etc/passwd |sort -r |more 查看linux系统所有用户名

    [root@localhost test]# ls
    1.txt  3.jpg  4.txt  4.zip
    [root@localhost test]# cat>delete_lists
    1.txt
    3.jpg
    4.txt
    4.zip
    [root@localhost test]# cat delete_lists 
    1.txt
    3.jpg
    4.txt
    4.zip
    [root@localhost test]# cat delete_lists |xargs rm -f
    [root@localhost test]# ls
    delete_lists
    

    cat命令列出delete_lists文件名 xargs命令将由管道得来的文件名转换成rm -f的参数列表

    使用tee命令分流输出
    cut -f1 -d: /etc/passwd |tee passwd.cut |sort -r |tee passwd.sort |more

    mail 发送电子邮件
    mail -s "hello"用户或邮箱
    -s subject

    ls -l |mail -s "list all" root列出本目录下的文件发送给root用户

    相关文章

      网友评论

          本文标题:linux学习笔记

          本文链接:https://www.haomeiwen.com/subject/pttjpctx.html