Linux命令

一、简介


Linux是一类Unix计算机操作系统的统称。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。在1991 年的十月,由一个名为Linus Torvalds的年轻芬兰大学生带头开发的作业系统。

二、特点


开放性,多用户,多任务,优异的性能和稳定性

三、安装


镜像下载https://wiki.centos.org/Download

四、目录结构


目录结构.png

/:最顶级目录,所有的东西都在/目录下
bin:可执行文件,可以被root和一般用户使用的指令,也就是常用命令
dev:外接设备
etc:配置文件
home:普通用户家目录
lib:二进制文件,如支持命令的库
mnt:挂载文件系统的目录
proc:存放一些执行的进程的信息
**root(~):超级用户的家目录 **
sbin:超级用户使用的命令
tmp:临时文件存放目录
usr:用户程序命令
var:存放日志或数据文件

五、基础命令


标准格式: 命令 [参数] [操作对象]

  1. ls:显示当前目录所有文件(和文件夹)简单信息举例:ls (其后面也可以加路径,例如:ls /test/aaa)
    -l 显示详细信息
    -a 显示所有文件,包括隐藏文件
    -alh 显示文件大小 不分先后顺序
    相对路径: 根据参照物确定路径,一般为当前目录(.或./代表当前目录 ../代表上一级目录 ~代表家目录)
    绝对路径: 直接从顶级目录开始,比如/
  2. ll :显示所有文件(和文件夹)详细信息
    举例:ll 路径名 例如:ll /test/aaa
    如果ll后面不加路径就代表查看当前目录
    显示出来的东西如果以-开头,说明它是文件
    如果以d开头,说明它是目录,文件夹
    -h 显示文件的大小
    -a 显示隐藏文件
  3. cd:进入到某个目录
    举例:cd /
    cd .. 返回上一级目录
  4. pwd:显示路径(绝对路径)
  5. mkdir:创建目录
    举例:mkdir aaa
    -p 创建多级目录
  6. rmdir:删除空目录
    举例rmdir aaa
  7. touch:创建空文件
    举例:touch aaa.txt(touch 后面也可以跟路径,如:touch /test/aaa.txt)
    创建多个文件
    touch a.txt b.txt
  8. cp:复制
    cp 复制文件
    举例:cp aaa.txt bbb.txt
    cp -r 复制目录
  9. mv:移动文件或目录(也是重命名)
    举例:mv /test/aaa/a.txt /test/bbb (把/test/aaa/a.txt移动到/test/bbb)
    mv /test/aaa/a.txt /test/aaa/b.txt(重命名)
  10. rm:删除 (不提示删除 rm -rf) (rm -r 递归删除)
    举例:rm -rf a.txt
    删除多个:rm -rf a.txt b.txt
  11. vim:编辑文本
    例如:vim /test/a.txt
    输入i进行编辑
    编辑完先按Esc,取消insert
    image.png

    vim是vi的加强版
  12. >和>>:输出重定向
    • > 覆盖输出
    • >> 追加输出
  13. cat:查看文件内容
    举例:cat/test/aaa.txt
    查看多个文件:cat a.txt b.txt
  14. head:查看文件前n行数据
    举例:head -10 /test/test01/bbb.txt
    -10代表前10行
  15. less:分页查看
    空格显示下一行
    可以使用【pageup】和【pagedown】键进行前翻页和后翻页
  16. more:分页显示
    按空格键显示下一页,ctrl+b返回上一页
    v 调用vi编辑器
    q 退出
  17. tail:查看文件的后几行
    举例:tail -10 /test/aaa.txt
    tail -f 是动态查看(例子:tail -f /test/aaa.txt)
  18. echo:打印
    举例:echo “hello world”
    echo “hello java”> /test/a.txt (覆盖)
    echo “hello java”>> /test/a.txt (追加)
    echo -e “hello\n”
  19. clear:清空屏幕
    快捷键:Ctrl l
  20. which:显示命令路径
    举例:which ls

六、进阶命令


  1. du:查看目录大小
    du -sh /etc/
  2. df:查看磁盘大小
    一般使用df -h
  3. free:显示内存大小
    -m 以MB显示
    -g 以GB显示
  4. wc:统计
    wc 有四个参数可选,分别是l,c,m,w
    wc -l filename 报告行数
    wc -c filename 报告字节数
    wc -m filename 报告字符数
    wc -w filename 报告单词数 根据换行和空格统计单词数
  5. date:时间相关
    date 显示时间
    date +%Y-%m-%d 格式化显示时间date "+%Y-%m-%d %H:%M:%S"
    date -d “1 month ago” 1个月之前
    date -d “20180101 1 day ago” 1天之前
    date -s 时间 (修改时间)
    举例:[root@hadoop /]# date -s "2019-01-09 15:06:30"
  6. cal:日历
  7. |:管道符
    把左边的结果传给右边
  8. grep:过滤
    功能:查找匹配格式的内容
    格式:grep[参数] <要找的字串> <要寻找字 串的源文件>
    用法1:grep linux a.txt #搜索a.txt文件中字符串linux并输出
    用法2:ls / | grep a.txt #匹配当前目录下文件名字是a.txt的文件
    用法3:cat a.txt | grep linux #搜索a.txt文件中字符串linux并输出
    grep -i 忽略大小写
  9. find:查找
    find /test -name a.txt 搜索系统根目录下的test文件夹下名为a.txt的文件
    find 查找路径 -name 要查找的文件名
    [root@jh /]# find /aaa/bbb/ -name a
    /aaa/bbb/a
    [root@jh /]# find /aaa/bbb/ -name "a*"
    /aaa/bbb/a
    /aaa/bbb/abc.txt
    查找文件size大于10个字节的文件或目录
    find ./ -size +10c
    查找文件size小于10k的文件或目录
    find ./ -size -10k
    find ./ -size -10M
    find ./ -size -10G
    其他...
    find ./ -type
  10. useradd:创建用户
    创建用户
    创建新用户:useradd 用户名
    修改用户密码:passwd 用户名
    编辑/etc/sudoers文件,使用命令visudo
    在root ALL=(ALL) ALL这一行下面添加:
    用户名 ALL=(ALL) ALL
    :x!
    使用普通用户来操作root用户的文件使用命令sudo + 命令,如:
    sudo vi/etc/profile
    切换用户使用su 用户名
    删除用户:userdel -rf 用户名
  11. chmod:修改权限
    语法为:chmod abc file
    其中a,b,c各为一个数字,分别表示User(用户)、Group(本组)、及Other(其他组)的权限。
    r=4 读,w=2 写,x=1 执行权限
    若要rwx属性则4+2+1=7;
    若要rw-属性则4+2=6;
    若要r-x属性则4+1=5。
    -rw-r--r--. 1 root root 145 Apr 26 03:22 aaa.txt 文件
    -代表文件,-后面的三位代表用户权限,再后三位代表用户组的权限,再后三位代表其他 用户权限
    例如:chmod 777 /test/a.txt
    chmod [u所属用户 g所属组 o其他用户 a所有用户] [+增加权限 -减少权限] [r w x] 目录名
    例如:chmod u+x aaa.txt
  12. chown:修改所属用户和组
    chown hadoop:hadoop filename 修改所属用户各组
    chown –R 递归修改
  13. ps:显示当前状态的进程信息
    ps -ef | grep mysql
  14. top:示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等
  15. tar:解压和压缩
    tar -zcvf /test.tar.gz /test/ 压缩
    tar -zxvf /test/a.txt.gz 解压a.txt.gz到当前目录
    tar -zxvf /test/a.txt.gz -C /test 解压a.txt.gz到指定目录(大写C)
  16. kill:杀死进程
    kill -9 1123(进程号)
  17. service:启动关闭服务
    service iptables status 查看防火墙状态
    service iptables stop 关闭防火墙 临时关闭防火墙
    chkconfig iptables off 永久关闭防火墙,重启生效
    service network restart 重启网卡
    service mysql restart 重启mysql服务
  18. systemctl是CentOS7的服务管理工具中主要的工具
    它融合之前service和chkconfig的功能于一体。
    firewalld的基本使用
    启动: systemctl start firewalld
    关闭: systemctl stop firewalld
    查看状态: systemctl status firewalld
    开机禁用 : systemctl disable firewalld
    开机启用 : systemctl enable firewalld
  19. rpm:rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提 升了Linux的适用度。
    rpm -qa 列出所有安装过的包
    举例:rpm -qa | grep mysql
    rpm -ivh 带进度安装
    rpm -ivh xxx.rpm
    rpm -e --nodeps卸载
  20. yum:(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
    yum install ... 安装
    yum remove ... 卸载
    yum update ... 升级所有包,改变软件设置和系统设置,系统版本内核都升级
    yum upgrade ... 升级所有包,不改变软件设置和系统设置
    yum list 列出所有的包文件
    yum -y ... 不提示执行
  21. nohup:后台启动进程,配合&使用
    例如: nohup sh a.sh &
  22. scp:远程发送
    scp -r ./a.txt test-hadoop-2-21:/home/hadoop
    sync:作用:将内容中数据保存到磁盘
  23. rsync:同步 作用:将两个节点的指定文件夹内容 同步
  24. wget:一般下载资源使用

七、其他命令


  1. ip addr:查看ip
  2. reboot:重启系统
  3. init 0:关机
  4. history:历史命令
  5. who:显示在线登录用户
  6. hostname:显示主机名
  7. netstat:查看端口使用情况
  8. cut:分割 echo "hello world" | cut -d 指定分隔符 " " -f 2 (通过空格分割,显示第二列)
  9. sort:排序 cat /etc/passwd | sort 字典排序,自然排序
  10. uniq:去重cat /etc/passwd | sort|uniq (去重依赖于sort)
  11. Ctrl c:强行停止进程(Ctrl键与C同时按)
  12. tree:以树状形式显示目录结构

八、定时任务


crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
crontab -e 编辑定时任务 编辑多个任务
crontab -l 列出定时任务
crontab -r 删除定时任务

* * * * * command
分  时  日  月  周  命令
周 0-6
虚拟机,一直开着
除了数字还有几个个特殊的符号就是""、"/"和"-"、",",代表所有的取值范围内的数字,"/" 代表每的意思,"/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。

几个例子:
1.每天早上6点
0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron 把任何输出都email到root的信箱了。
2.每两个小时
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
3.晚上11点到早上8点之间每两个小时和早上八点
0 23-8/2,8 * * * echo "Have a good dream" >> /tmp/test.txt
4.每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3 command line

实现秒级执行任务:
*/1 * * * * sleep 3 && echo "goodmorning" >> /test/a.txt
*/1 * * * * sleep 6 && echo "goodmorning" >> /tess/a.txt
*/1 * * * * sleep 9 && echo "goodmorning" >> /test/a.txt
*/1 * * * * sleep 12 && echo "goodmorning" >> /test/a.txt
......

你可能感兴趣的:(Linux命令)