第一篇随笔,其实是为了写作业,可是老师的要求是对的,其实自己在配环境和做作业的时候也会把遇到的问题的解决方法记录下来,以便以后查找方便。这次借此将那些内容放在这里,也跟大家一起分享下。

上周六算是第二次听liunx的课,感觉比第一次听要轻松多了,所以复习是很重要的。

以下是这次课程自己记得笔记  注:绝对不是老师的笔记复制过来的!最后有我做作业遇到的问题的总结!

1、http地址默认不写端口号就是80
2、127.0.0.1和localhost都是本地
3、用户管理  $是普通用户,#是管理员用户
      windows是单用户的,linux是多用户的,可同时支持多用户操作
      id : 可以查看当前用户
      whoami  :查看当前用户
      who  :或者  查看当前已经登录的用户
      w   :也可以看当前已经登录的用户
 
4、添加用户 useradd 用户名   # 添加用户
     给用户加密码  passwd 密码  #给添加的用户加密码 和 重置密码  添加用户不指定家目录,目录默认的家目录在/home/目录下,在家目录下显示波浪线~
       cd ~      快速回到家目录   或者  直接 cd
       切换用户: su 用户名 (切换到root用户目录下) 或  su - 用户名  (切换到普通用户的家目录) 
        区别:su -   会重新加载用户的环境变量
        sudo:获取超级用户权限
        添加普通用户sudo的权限:
             使用root用户编辑 /etc/sudoers文件,找到 root ALL=(ALL) ALL 这一行,在它下面加入 bestest ALL=(ALL) NOPASSWD:ALL然后保存即可。NOPASSWD代表该用户使用 sudo的时候不用输入密码 •
        删除用户:userdel  用户名
                      userdel -r  删除用户同时删除用户家目录
 
5、组管理
        添加组:groupadd name
        修改组:
        删除组:groupelname
 
6、对目录(文件夹)操作:了解linux文件目录结构
         pwd     显示当前你所在的路径
         cd       进入哪个目录(文件夹)
         cd /      根目录
         /         是顶级目录
         cd..      回到上级目录 
         cd../../      回到上几级目录,上几级目录就几个..
         cd -        返回上一次操作的目录
         相对路径:
         绝对路径:
         创建文件夹:mkdir   父目录不存在的话,后面加 -p 先创建父目录,再创建父目录下的子文件夹
         mkdir --help   帮助
         删除文件夹:rm 、  rmdir(删除空文件夹)
         删除非空文件夹不询问:rm -rf
         删除根目录:rm -rf /     就完蛋了
         查找文件夹下的东西:ls、ll
         移动文件夹:mv 文件夹名 目标路径    mv besttest /tmp
         改名:mv 文件夹名 要改的文件名    mv  besttest  linux
         创建空文件:touch 文件名
         文件详情中显示drwxr-xr-x前面是个d说明是文件夹,前面没有d说明是文件
         创建隐藏文件:touch .yincang    创建的文件名前面带一个点是创建了一个隐藏文件
         查看隐藏文件:ls -a
         复制文件:cp  文件名  目标路径     cp besttest /tmp/
         复制目录:cp -r  文件夹  目标路径   cp -r besttest /tmp/
         强制复制文件/文件夹,不询问是否覆盖:cp -f 文件名 目标路径  
         alias是给命令起别名,可造命令   alias  cp=cp  修改后  cp -f 才不询问强制覆盖
         alias造命令:1、alias hyh=‘cp’  输入hyh bestest /tmp/  复制besttest问加你夹到tmp下;2、alias  hyh='etc/lammp'     下次输入hyh就直接跳转到那个地址   ------  只对当前窗口有效
         让alias造的命令永久生效:vi etc/profile   里加入alias造的命令
         强制复制任何文件(文件夹):cp -rf              
 
7、对文件操作:vi 或 vim(对vi的升级版)
         vi的命令模式:用i,在当前位置进入编辑模式;o 在下一行进入编辑模式;a  用的比较少,在当前位置的下一位进入编辑模式
         :q   没有修改直接退出
         :wq   或   :x     保存并退出
         :q! 不保存退出
          /(查找内容)   查找想要查找的内容
          
         :set nu    显示行号
         :set nonu   取消显示行号
         :数字    快速渠道某一行
          shift+g   跳转到文件末尾
          x    删除单个字符
          dd   删除整行 
          19dd   删除19行
          u  撤销
          yy   复制一行   
          19yy  复制19行
          p   粘贴
          .    重复前一次操作
          shift+$   光标移到行尾
          shift+0   光标移到行首 
         :%s/要替换的内容/替换成的内容/g   %所有  s字符串    替换所有字符串
         vi的编辑模式:esc退出编辑模式到命令模式
          
          cat:查看短文件
          more:查看文件分屏显示,按回车一行行显示
          less:查看文件,功能强大,可操作前后翻页,上下搜索
 
          动态查看日志:tail   默认显示后10行;tail -5f  默认显示后5行;tail -f  看动态日志 
 
           创建软连接(快捷方式):ln -s 源文件(绝对路径) 创建的快捷方式名字    ln -s /opt/lampp/xammp ~/hyh   下次输入ll hyh 直接指向xammp
 
            显示当前目录占用硬盘大小 :du -sh
            显示当前目录每个文件/文件夹占用硬盘大小:du -sh *
            磁盘用量:df    或df -h
 
           查看文件下的东西:ls -l = ll
           修改权限:chmod     x代表执行  w代表写  r代表读   
           加权限:文本形式
                  chmod o+x 文件名 其他用户
                  chmod  g+x 文件名   本组用户
                  chmod  u+x  文件名   自己
                  chmod +xwr 文件名  所有权限
                  chmod  a+x 文件名  所有
            减权限:
                  chmod o-wx 文件名   减写权限    把+变-就是减权限
            
             修改权限数字形式:r=4  w=2 x=1   rwx:4+2+1;    r-x:4+1;   rw-:4+2;   最高权限777    所有用户可读可写可执行
              只写一位数代表其他用户,写两个数代表组和其他,写三个数字代表所有用户
               chmod -R  递归  把目录下所有文件及文件夹加权限
  
               chown:改变文件的所有者   chown 文件名 user 
               如果是文件夹要加-R:chown -R 文件夹名 user
 
               chfrp:改变文件的所属组   chgrp 文件名 group
               如果是文件夹要加-R:chgrp -R 文件夹名 group
        
               |:管道符,连接两条命令的
               ls |wc -l:ls把他的结果给后面这条命令让他操作
               cat 文件名 |wc -l:统计文件行数
 
               &&:前后两条命令同时执行,执行完前面的执行后面的
               作用:可以启动某个命令的同时看日志  用&&执行两条完整的命令
               例如:/opt/lammp/lammp restart && tail -f /logs/..........:启动完程序会显示出日志内容
              
               查找文件/文件夹:find /-name mysql
               查找文件内容:grep 查找内容 查找文件名   -w 匹配指定字符串;-v 输出不匹配字符串,过滤掉指定信息
               看日志查找带关键字的日志内容:先tail -f 日志 | grep 关键字    
 
               重定向:
               cat test > cc.txt    看test文件的内容,然后放到cc.txt,相当于复制,尖朝谁就往谁里写内容
               echo “hehe”>cc.txt   查看cc,原内容消失,写入hehe;大于号前面不加内容就可清空cc.txt   可用于清除日志文件内容
               echo“hehe”>>cc.txt  查看cc,追加新内容
                     
8、安装软件
     上传、下载:ftp工具,设置选sftp,rz命令、sz命令,但是他不能上传文件夹
      Rz、sz命令安装:使用yum安装,yum –y install lrzsz,
      编译安装:http://blog.chinaunix.net/uid-20639775-id-  154615.html
 
      rpm安装包自动配置环境变量:rpm -ivh  **.rpm       
      rpm -e :卸载,用rpm安装才能用rpm卸载
      rpm -qa:查询已安装的软件包,rpm -qa|grep mysql   管道符后面是要找的软件包名字
 
      yum安装:从yum源下载安装包,下载、安装、加环境变量都不用管,直接自己配好
      ***liunx安装包里有两个包,1是安装包,2就是yum源
      常用命令:
       • yum install httpd#安装Apache
       • yum -y install httpd#如果有选项全部同意安装
       • yum list|grep httpd#从yum列表中查找你需要的软 件
       • yum update httpd #yum升级Apache
       • yum list installed |grep mysql#查询是否安装 mysql
       • yum remove mysql#卸载yum安装的mysql
 
       源码安装:
       源码安装三部曲
       • 1、生成makefile编译文件 • ./configure 一般安装包下面都有一个configure文件,用来生成makefile编译文 件 • 常用的参数 • --prefix 指定安装目录 • --with-xx 指定依赖文件的目录
       • 2、make编译 • make命令也需要安装,会根据./configure产生makefile文件编译 写好的c语言程序,产生可运行的文件
       • 3、make install • make install的作用是把编译好的文件复制到指定的目录下,也就是第一步-prefix指定的目录,如果没有指定目录的话,还是在当前目录下 
 
9、开关机:普通用户一般没有开关机权限  
     关机:shutdown  -h  30 #定时关机 
               shutdown  -h  now  #立即关机
               init 0  立即关机
      重启:reboot后面可加参数,无所谓加不加;shutdown也可以重启,后面可加延迟时间 shutdown -r 20 "我要重启啦"---定时重启
10、注销:exit,切换用户:exit切换到之前的用户
 
11、网络的
       查看ip地址:ipconfig  或 ip a(很多高版本没有ifconfig了)
       vmnet8 是仅主机模式,vmnet1是nat模式
       dhclient   #自动获取ip
 
12、压缩、解压文件
       tar:打包     c 打包; x 解压缩; z 用gzip压缩   
       格式:tar cvf  文件名.tar  要打包的文件名---> tar cvf liunx.tar liunx
       压缩:tar zcvf liunx.gz liunx      ---- tgz和gz结尾的都是压缩过的
       解压:tar xvf liunx.gz liunx      xvf是通用的,不管压缩没压缩过,zxvf是解压压缩过的包
       打zip包:zip linux.zip linux      zip命令要yum安装,不是自带的
       解压zip包:unzip linux.zip   
        gzip只能压缩文件,不能压缩文件夹:gzip 文件名        原来文件就没了,只保存压缩文件包,可用来备份日志
        gunzip解压:unzip 文件名.gz
 
13、环境变量:env  查看环境变量
       whereis  ls :显示环境变量配置
       如果写了一个脚本,想在任意目录下执行,加到环境变量里,查看环境变量文件里加到环境变量里的目录,把脚本移过去,也可直接执行
       系统环境变量:所有人都能用   /etc/profile
       用户环境变量:只针对自己生效,别人用不了   ~/.bashrc
 
14、进程
       ps:查看当前正在运行的进程(静态)    -a或-e列出所有进程;-ef 查看进程之间的关系
       ps -ef |grep mysql:筛选mysql进程
       ps -ef |grep mysql|grep -v grep:筛选mysql进程并去除grep本身的进程
       kill -9 进程id(可跟多个进程):结束进程   killall:结束所有进程
       top:查看当前运行的进程(动态),内容显示多,并且是动态的,和ps区分开
       
       后台运行进行:nohup ./jmeter-server &        后台运行,不占用控制台,一直运行,关闭界面,ctrl+c等操作都不会影响,不会关闭
 
14、定制任务:可用于定时备份日志,数据库等
       crontab:编辑定时任务
       crontab -e,进入编辑定时任务界面
       crontab 文件的格式为“M H D m d cmd”。其中,M代表分钟(0~59),H代表 小时(0~23),D代表天(1~31),m代表月(1~12),d代表一星期内的天 (0~6,0为星期天)。cmd表示要运行的程序,*代表每分钟都执行 • 示例 : • * * * * * sh /opt/lampp/test.sh 表示每分钟执行一次test.sh这个脚本 • */5 * * * * sh /opt/lampp/test.sh 表示每5分钟执行一次test.sh这个脚本 • 30 21 * * * /usr/local/apache/bin/apachectl restart 表示每晚的21:30重启apache
       
       crontab -l:查看当前有哪些定时任务
 
15、查看端口号
netstat :查看端口号
netstat  nlpt|grep 8080:查看8080端口号是否被占用,查看使用8080端口号进行的进程id
 
16、shell脚本:多个命令写在一起 ,其他内容查看ppt
       注意:shell里定义变量不能有空格
       取进程id:ps -ef|grep jmeter|grep -v grep|awk'{print $2}'  
       awk'{print $2}' 取第二列的数据,存为变量才能用
      
       结束进程脚本
       写入脚本内容为:(保存为.sh)
      #!/bin/bash     #需要什么解释器来执行,liunx默认的解释器就是bash,如果不写也能执行
       count=`ps -ef|grep jmeter|grep -v grep|awk'{print $2}'|wc -1`
       pid=`ps -ef|grep jmeter|grep -v grep|awk'{print $2}'`
       if [ $count -gt 0 ]   #count大于0
         then
           kill -9 $pid
           echo "jmeter stoped"
      else
          echo "jmeter-server not running.."
 
        启动脚本:
        count=`ps -ef|grep jmeter|grep -v grep|awk'{print $2}'|wc -1`
        if [ $count -gt 0 ]   #count大于0
            then
            echo "jmeter-server is running。。"
        else
           nphup /root/apache-jmeter-2.11/bin/jmeter-server &
 
          重启脚本:
          结束脚本的绝对路径
          启动脚本的绝对路径
 
         bash:解释器   
         bash  文件名.sh :指定用bash运行这个脚本,可以写在脚本里,也可以放在外面
 
17、获取到当前时间字符串
       date +%Y%m%d%H%M%S
 
--------------------------------下面是作业----------------------------
 
每天23:59分备份lampp的access_log文件,备份的文件名以当时的时间命名 201212241852_access.log到/tmp/logs    备份完要清空原来的
 
首先在tmp文件夹下创建logs文件夹:mkdir logs
logs文件夹下创建一个backup.sh文件:touch backup.sh   创建脚本这里有个小插曲,下面会提到
写入相应内容:

#!/bin/sh
rm -rf /tmp/logs/*
cp /opt/lampp/logs/access_log /tmp/logs/`date +%Y%m%d%H%M%S`_access_log

然后先执行一下脚本

这里我遇到了第一个问题:脚本无法tab键补全,发现脚本权限有问题,这时直接

chmod 777 backup.sh   #直接赋予最高权限

继续执行脚本,又报错:-bash: ./backup.sh: /bin/sh^M: bad interpreter: No such file or directory

这里就是上面提到的小插曲,由于我开始在在windows下创建的脚本进行的编辑,所以提示这个错误

百度查询后找到方法:vi backup  后  输入::set ff   出现结果:fileformat=dos  这是脚本无法执行的原因,因为他是dos格式的,为了省点事儿,直接删除脚本重新在linux下命令创建脚本,写入内容,问题解决

以上,脚本里的内容就创建完成
 
下面编写定时任务:
crontab -e   打开定时任务编辑器
写入如下内容:

59 23 * * * sh /root/backup.sh

保存退出

进入backup目录下查看运行结果,文件删除和创建正常,虽然不知道是否达到老师的要求,但是确实是按照我编写的脚本运行了。

--------------------------------------以上就是linux课程学习的内容-------------------------------

linux初学体会的更多相关文章

  1. linux初学 :linux 常用命令(二)

    压缩和解压命令 gzip/guzip   zip/unzip   tar gzip和gunzip一般可用参数是-r,例: gzip test.txt 压缩文件 gzip -r test 压缩所有tes ...

  2. Linux初学笔记---关于进程管理等

    菜鸟初学: 1. 查看进程用的命令: ps 具体用法 ps -A ro ps -e 显示所有进程 ps -u root 显示root 用户的进程 ps -u root -N 显示非root用户的进程 ...

  3. Linux初学:(二)Shell环境与命令基础

    博客园(FOREVER_ENJOY):http://www.cnblogs.com/zyx1314/ 本文版权归作者所有:欢迎转载!请注明文章作者和原文连接 Shell是什么? 1. Shell作为应 ...

  4. Linux初学:(一)Linux概述

    Linux各个目录的结构介绍 Linux系统以目录的方式来组织和管理系统中的所有文件.Linux系统通过目录将系统中的所有的文件分级.分层组织在一起,形成了Linux文件系统的树形结构层次.以根目录“ ...

  5. Linux初学---->WinSCP+Putty

    十二是个初学者,就觉得有意思.所以学下Linux.如果有啥不对的情路过大牛多多指点.心中也开始学着写博客,因为觉得博客对于学习技术不仅是个记录,还是对学的东西一个复习,一个反思,一个交流.另如果有好的 ...

  6. Linux初学 - SSH

    SSH:SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议.SSH 是目前较可靠 ...

  7. linux初学 :简易的shell脚本

    什么是shell Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的 Shell有两种执行命令的方式: 交互式(Interacti ...

  8. linux初学 :linux 常用命令(一)

    首先,是关机/重启命令,仅在虚拟机时使用,实际工作中用不到 reboot 一般不跟参数使用,输入指令即可重启 shutdown 一般需要跟参数,例: shutdown -r 延时多少分钟重启,一般使用 ...

  9. linux初学(CentOS)之注意事项(一)

    linux严格区分大小写(命令,文件名,用户名等) linux所有内容以文件形式保存,包括硬件 硬盘文件是/dev/sd[a-p](a,p为盘符名) 光盘文件是/dev/sr0等 linux不靠扩展名 ...

随机推荐

  1. 【HAOI2010】工厂选址题解

    题目描述 某地区有m座煤矿,其中第i号矿每年产量为ai吨,现有火力发电厂一个,每年需用煤b吨,每年运行的固定费用(包括折旧费,不包括煤的运费)为h元,每吨原煤从第i号矿运到原有发电厂的运费为Ci0(i ...

  2. Centos6 Ngnix和fastcgi搭建

    一.下载Nginx 依赖pcre,zlib,openssl 下载解压包,解压后进入 ./configue make make install 默认安装到/usr/local/ngnix 可执行文件在/ ...

  3. select、poll和epoll比较

    select select能监控的描述符个数由内核中的FD_SETSIZE限制,仅为1024,这也是select最大的缺点,因为现在的服务器并发量远远不止1024.即使能重新编译内核改变FD_SETS ...

  4. 十六、详述 IntelliJ IDEA 创建 Maven 项目及设置 java 源目录的方法

    Maven 是一个优秀的项目管理工具,它为我们提供了一个构建完整的生命周期框架.现在,就让我们一起看看如何利用 IntelliJ IDEA 快速的创建 Maven 项目吧! 如上图所示,点击Creat ...

  5. C# 6.0 的?.运算符

    What is it? Here’s the scenario Consider getting the grandchild of a parent object like this: var g1 ...

  6. GoBelieve IM 服务端编译

    #部署im1. 安装go编译环境参考链接:https://golang.org/doc/install 2. 下载im_service代码 cd $GOPATH/src/github.com/GoBe ...

  7. iOS小知识点

    1.子视图超出frame的部分不显示  view.clipsToBounds 设置为YES;   UIScrollview的clipsToBounds默认就是YES 2.UIImage 有一个属性叫s ...

  8. mybatis——学习笔记

    配置文件 <properties resource="dbconfig.properties"></properties> 1. properties 引入 ...

  9. 最优贸易(tarjan,spfa)

    题目描述 C国有n个大城市和m 条道路,每条道路连接这 n个城市中的某两个城市.任意两个城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道 ...

  10. cut 的用法

    cut 文件内容查看 显示行中的指定部分,删除文件中指定字段 显示文件的内容,类似于下的type命令. 说明 该命令有两项功能,其一是用来显示文件的内容,它依次读取由参数file所指明的文件,将它们的 ...