linux常用命令

  • mkdir
    创建命令,mkdir -p(递归创建命令)

  • ls
    -l(long),-d(directory)显示目录或文件,ls -F添加不同的符号, 在目录后面添加斜线,-d显示目录,-p添加斜线,

  • cd
    切换目录层次(change directiry),cd -(回到上一级目录), cd ~(回到家目录)

  • echo
    打印输出内容
    -n 不换行
    -e 制定特殊的字符

  • vi/vim
    打开文本

  • cat
    查看文件内容

  • cp -apr
    拷贝文件或者目录

  • mv
    移动目录活改名

  • rm
    -f强制删除文件,-r递归删除

  • rmdir
    删除空目录

  • head
    head -n 显示文件头部-n行

  • tail
    tail -n 显示文件尾部-n行,tail -f

  • grep *
    过滤,-v排除,-i忽略大小写,-E同事过滤多个字符串

  • egrep
    相当于grep -E ;同时过滤多个(grep -E ‘A|b|c’)

  • alias
    设置别名

  • unalias
    删除别名

  • which,wheris,locate,find
    查看命令所在路径

  • find
    查找命令,-type (f按照文件类型查找,d按照目录类型查找), -name(按照文件名查找) ,-mtime(按照修改时间查找),find / -type f -name “test.txt” -exec rm -rf {} \;, find / -type f -name “test.txt” | xargs rm -rf;-maxdepth level指定查找的深度;-f查找文件;-o表示或者;and表示并

  • tree
    查看目录结构,-L指定深度,d只显示目录

  • xargs
    用于把find/ls的输出交给后面处理

  • seq
    打印数字序列,-s制定分隔符,[seq -s ‘ ‘ 5, seq -s ‘ ‘ 1 3,seq -s ‘ ‘ 1 2 9(输出1到9的数字序列,步进为2,用’ ‘进行连接)]

  • man
    查看命令及配置文件等的帮助

  • touch
    创建文件或者修改文件时间戳

  • pwd
    显示当前的路径

  • history
    -c清空所有,-d行号,查看历史记录

  • diff
    比较文件内容的差别

  • vimdiff
    编辑并比较两个文件差异,

  • useradd
    添加用户 -g -u -c -s -d -G- M -D -e

  • passwd
    –stdin(无交互修改密码) 修改用户密码,如果不指定用户,则修改当前用户密码,普通用户只能改自己密码

  • whoami
    查看当前命令行终端用户

  • w
    显示登陆机器的用户

  • su

    • 切换用户角色
  • sudo
    让普通用户拥有指定用户的root权限命令

  • yum
    包管理工具,解决rpm包管理依赖

  • rpm
    -ivh 软件安装命令

  • chkconfig
    查看设置开机自启动的命令

  • netstat
    查看网络状态的tlunp货an

  • lsof
    -i:port查看端口,打开的文件

  • chattr -i,+i

  • lsattr

  • ‘;’ 多个命令的分隔符

  • ‘/‘ 根或者路径的分隔符

  • ‘>’或’1>’ 标准输出重定向,数据流朝着箭头的方向流动,覆盖原来的文件

  • ‘>>’或’1>>’ 追加输出重定向,数据流朝着箭头的方向流动,再原来的文件的结尾,追加新的内容

  • ‘<’或’<0’ 标准输入重定向,输入重定向用于改变命令的输入,制定输入的内容,后跟文件名

  • ‘<<’或’<<0’ 输入重定向,后跟字符串,用来表示’输入结束’,也可用ctrl+d来结束输入

  • ‘..’ 上一级目录

  • ‘.’ 当前目录;任意一个字符,且只代表一个字符;隐藏文件的标识;可以使一个配置文件生效;

  • ‘~’ 家目录

  • ‘|’ 管道,通过管道,把前一个命令的输出交给后一个命令继续处理

  • ‘{}’ 配合echo打印序列echo {1..6}

  • PATH 环境变量大写,所有包含在环境变量里面的路径,全局生效/etc/profile,~/.bash_profile或者~/.bashrc

  • awk
    [awk ‘{if(NR>19&&NR<31) print $0}’ test.txt; awk ‘/test/‘ /tmp/test.txt; awk -F ‘:’ ‘{print $1}’ /etc/passwd]

  • sed
    取内容,-n,取消默认输出,-p,打印,-d,删除[sed -i s#test#demo#g /tmp/test.txt(将test.txt文件中的test替换成demo并输入到原文件中); sed -n ‘/test/p’ /tmp/test.txt(在test.txt中查找包含test的行); sed ‘/test/d’ /tmp/test.txt(在test.txt中查找包含test的行,删除test关键字); sed -n 20,30p /tmp/test.txt(只打印第20-30行的内容)]

  • netstat
    查看网络状态(netstat -tlun,netstat -an )

  • lsof -i :port
    查看端口

  • reboot
    重启

  • shudown -r now
    重启

  • shutdown -h now
    关机

  • halt
    关机

  • init 0
    关机

  • init 6
    重启

  • last
    显示最后登陆过的用户的列表

  • file
    查看文件类型

  • ^
    表示以什么开头

  • $
    以什么结尾

  • more
    查看文件分屏输出,不能向上翻

  • less
    查看文件分屏输出,能向上翻

  • chkconfig –list
    查看服务启动级别

  • chkconfig –list sshd
    查看sshd服务启动级别

  • chkconfig –level 5 sshd off
    关闭sshd服务在运行级别为5的时候关闭启动

  • 手动修改运行级别:
    关闭:

    rm -f /etc/rc.d/rc3.d/S55sshd
    ln /etc/init.d/sshd /etc/rc.d/rc3.d/K25sshd
    chkconfig --list sshd
    

    开启:

    rm -f /etc/rc.d/rc3.d/K25sshd
    ln /etc/init.d/sshd /etc/rc.d/rc3.d/S55sshd
    chkconfig --list sshd
    
  • tar
    gzip 打包组合zcvf,解包组合zxfv
    bzip 打包组合jcvf,解包组合jxvf
    -C 指定目录解压,-p保持属性,
    z(gzip),c(create),v(verbose),file

  • cut
    -d 指定分隔符
    -f 数据选列
    -c 按字符切割

  • wc
    wc -l 统计行数

  • ulimit

  • kill
  • let
  • stat

基础正则表达式

  • ^
    ^test
    检索以test开头的

  • $
    test$
    检索以test结尾的

  • .
    代表且只能代表一个字符

  • \
    转移字符,转义特殊含义的字符,例如’.’

  • *
    重复0次或多次前面的一个字符

  • .*
    重复多次前面的多个字符

  • []
    匹配括号中间的任意字符

  • [^]
    匹配除括号中间的任意字符

  • {n,m}
    前一个字符串重复n到m之间的次数

  • {,m}
    前一个字符重复至多m次

  • {n,}
    前一个字符至少重复n次

  • {n}
    前一个字符重复n次

拓展正则表达式

  • +
    重复一个或多个前面的字符

  • ?
    重复0个或一个前面的字符

  • |
    用或的方式查找多个符合的字符串

  • ()
    括号里面的当做一个整体进行匹配

  • date
    查看系统时间
    -s 修改时间
    date ‘+%y-%m-%d’ 指定时间格式

**** 查看登陆用户 ****
  • w

  • who

  • users

  • last

  • lastlog

  • userdel
    删除用户 -r

  • groupadd
    添加组

  • groupdel
    删除组

  • change
    修改密码过期属性

  • su
    切换用户角色

  • sudo
    普通用户拥有root或者其他用户的权限

  • vimsudo
    编辑sudo配置文件

  • groups

  • newgrp

  • id

  • fdisk
    l 查看列表
    适合小于2T的分区工具

  • parted
    适合对于2T的分区工具

  • mount
    挂载(-t 文件系统类型 -o挂载选项 -a)

  • umonut
    卸载(-lf强制卸载)

  • dd(dd if=/dev/sda of=mbr.bin bs=512 count=1)
    创建一个文件的系统

  • mkfs
    格式化命令
    -t 文件系统类型(或者mkfs.ext3)

  • df -h
    查看磁盘挂载信息

  • du
    du -sh 查看文件及目录大小

  • tune2fs
    调整文件系统参数

  • dumpe2fs
    查看文件信息,block和innode信息

  • paste
    按列合并两个文件的结果(paste a.log b.log > c.log)

  • curl
    远程获取内容

  • uniq
    去重
    -c 计算重复的行

  • sort
    排序
    -nr 按照数字倒序
    -t 分割符进行排序
    -k 指定分割符之后对那个列进行排序
    eg:sort -t “ “ -k 2 test.txt 按照空格进行切分,并以第二行进行排序

    k 3,3       对第三个列进行排序
    k 4.1,4.3   对第四列的第一个字符到第四列的第三个字符进行排序
    
  • tr
    tr用来从标准输入中通过替换或删除操作进行字符转换
    tr -c -d -s [“string1_to_translate_from”] [“string2_to_translate_to”] < input-file

    cat file | tr [0-9] [a-j] > new_file #将file中的0-9替换成a-j

    cat file | tr -s [a-zA-Z] > new_file #删除“连续着的”重复字母,只保留第一个
    -c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。

    cat file | tr -d “test” #删除file中出现的test字符
    -d 删除字符串1中所有输入字符。

    cat file | tr -s “\n” > new_file #删除空行
    -s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串

  • pstree
    将进程按照层级排列出来
    -a 显示所有的进程

坚持原创技术分享,您的支持将鼓励我继续创作!