linux初学体会

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

上周六算是第二次听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   打开定时任务编辑器

写入如下内容:

*/1 * * * * sh /root/backup.sh

保存退出

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

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

时间: 2024-10-11 22:31:12

linux初学体会的相关文章

入职体验--linux学习体会

本是计划先写一系列关于入职前学习的基础的东西,不过,入职一个多月,感悟比较深刻,还是先穿插一篇新入职的体会吧. 入职体验--linux学习 新入职以来,由于公司的产品算是起步阶段,很多东西还不成型,很多东西都需要调研,要命的是,天天看各种官网.全英文的官网.这对于我来说,是一个小小的挑战和进步,百度惯了的人,面对看不懂的英文官网,真的需要勇气呢.除此之外,体会最深的就是linux的基本功了. 经过长达半个月的各种调查,我还是没有得到公司想要的东西,这点让我感到比较受挫,也认识到自己上升与进步的空

拜师鸟哥之linux学习体会(3)——主机规划与磁盘分区

反正现在也睡不着,比赛还有一段时间才开始,那就熬夜再写点心得体会吧,主要针对第三章主机规划与磁盘分区. 一开始我也不太清楚,linux的操作不是只需要掌握一些重要的指令就行了吗?但是后来在项目中要移植一个linux系统到arm芯片上,才知道必须要掌握整个linux系统,就像我们需要掌握windows系统后才能对其进行操作. 1.    linux中所有的信息.数据等都是以文件的形式记录下来的,更加通俗的说,每个装置都被当成一个档案来进行访问,例如IDE接口的硬盘文件名是/dev/hda等.数据的

拜师鸟哥之linux学习体会(2)——Linux是什么

鉴于明天是年三十,可能没空开电脑,所以趁着晚上(现在也是第二天了)写下对第二章linux是什么的体会.用过linux的人都知道它是一个操作系统,并且有逐步取代windows的趋势.那么linux到底是什么呢?这就不得不提一个人——托瓦兹(脱袜子),linux的核心原型就是由他在1991年提出来的.具体的历史就不在这里讲了. 1.    linux其实就是一个操作系统最底层的核心及其提供的核心工具.目前市场上有很多版本的linux distribution,都可以从网络上下载得到.例如red ha

拜师鸟哥之linux学习体会(1)——计算器概论

之前一段时间看了鸟哥的linux私房菜,觉得写得很好,是一本很好的初识linux系统的书籍.接下来的每一天我都会对这本书的每一章的重点知识进行叙述,也算是对学习这本书的一个体会吧.今天讲一下概述部分,鉴于linux是一个操作系统,所以有必要先介绍下计算机方面的知识. 1.    计算机主要由以下几部分组成:输入单元.输出单元.CPU内部的控制单元.算术逻辑单元和主存储器.可以通过下图来描述. 主要介绍下CPU部分,CPU有两种类别:精简指令集RISC和复杂指令集CISC. 2.    本章的一个

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

压缩和解压命令 gzip/guzip   zip/unzip   tar gzip和gunzip一般可用参数是-r,例: gzip test.txt 压缩文件 gzip -r test 压缩所有test下的子文件 gunzip test.gz 解压文件 zip和unzip可用参数较多,例: zip test 不跟参数直接使用 zip -r test 递归压缩test下所有文件 unzip test 不跟参数直接使用 unzip -n 解压时不覆盖已存在的文件 unzip -o 解压时覆盖已存在的

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

菜鸟初学: 1. 查看进程用的命令: ps 具体用法 ps -A ro ps -e 显示所有进程 ps -u root 显示root 用户的进程 ps -u root -N 显示非root用户的进程 ps -ejH 使用ps列出进程树 ps -eLf 显示线程信息 pgrep docker 查找进程 pstree 显示进程的树状关系. top 显示系统的动态视图 2. 安装htop 和 atop 来更好的监控性能 安装方法,说先安装epel库: yum install epel-release

Linux初学

1.grep命令 该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等,它的简单语法为 grep [-acinv] [--color=auto] '查找字符串' filename 它的常用参数如下: -a :将binary文件以text文件的方式查找数据 -c :计算找到'查找字符串'的次数 -i :忽略大小写的区别,即把大小写视为相同 -v :反向选择,即显示出没有'查找字符串'内容的那一行 # 例如: # 

拜师鸟哥之linux学习体会(8)——档案与文件系统的压缩与打包

1.    对文件的另一个操作是压缩文件.压缩文件算是linux与windows少有的相似之处.一般常用的压缩文件的扩展名大多是.tar(tar程序打包的数据),.tar.gz(tar程序打包的数据,经过gzip压缩),.tgz,.gz(gzip压缩的文件),.Z(compress程序压缩的文件),.bz2(bzip2压缩的文件).其中gzip与bzip2最常用,而compress已经过时了.另外单纯的tar功能仅仅是打包而已,也就是将很多档案集结为一个档案,事实上他并没有压缩的功能. 2.  

拜师鸟哥之linux学习体会(9)——vim程序编辑器

1.    在linux下也是可以编程的哦,采用的是vim程序编辑器,如果你学会使用vim并能看懂一个vim程序,那就很了不得了.在介绍vim之前,我们先学习下他的前身vi.vi具有三种模式:一般模式.编辑模式和指令列命令模式.三者之间是这样转换的: 2.    一般打开一个vim程序就进入一般模式,之后输入o,O,a,A,i,I,r,R中的任何一个就进入编辑模式,之后左下方会出现INSERT或REPLACE.若要回到一般模式,就必须按下Esc来退出编辑模式.在一般模式下,输入:/?中的任意一个