Linux学习笔记

linux的介绍

Linux的文件目录结构

0.Linux中一切皆文件
1.Linux目录和Windows目录有着很大的不同,Linux目录类似一个树,最顶层是其根目录(没有什么c盘,d盘)
2.根目录下面有几个常用目录

  • /bin 二进制可执行命令
  • /dev 设备特殊文件
  • /etc 系统管理和配置文件
  • /etc/rc.d 启动的配置文件和脚本
  • home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
  • /lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
  • /sbin 超级管理命令,这里存放的是系统管理员使用的管理程序
  • /tmp 公共的临时文件存储点
  • /root 系统管理员的主目录
  • /mnt 系统提供这个目录是让用户临时挂载其他的文件系统
  • /lost+found这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
  • /proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
  • /var 某些大文件的溢出区,比方说各种服务的日志文件
  • /usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录,其中包含:
    /usr/x11R6 存放x window的目录
          /usr/bin 众多的应用程序
          /usr/sbin 超级用户的一些管理程序
          /usr/doc linux文档
          /usr/include linux下开发和编译应用程序所需要的头文件
          /usr/lib 常用的动态链接库和软件包的配置文件
          /usr/man 帮助文档
          /usr/src 源代码,linux内核的源代码就放在/usr/src/linux里
          /usr/local/bin 本地增加的命令
          /usr/local/lib 本地增加的库根文件系统
    

3.Linux的一些内容意思
当显示一个目录的内容时,会显示以下形式,其中每个字段意思不一样
drwxr-xr-x. 2 root root 6 8月 1 19:39 a
-rw——-. 1 root root 1274 7月 30 00:09 anaconda-ks.cfg
-rw-r–r–. 1 root root 186 8月 1 16:22 a.txt

第一位表示文件类型:d表示文件,-表示目录,|表示链接文件
第二位表示当前用户是否可读:r代表可读,
第三位表示当前用户是否可写:w代表写,-代表不行
第四位表示当前用户是否可执行它:x可以,-不行
5-7位代表当前用户所在的组的其他用户对该文件的权限
8-10位代表其他非本组用户:

第一个root表示组
第二个root表示用户

之后依次是文件大小(kB),时间,文件名

目录文件操作

  • 注:通过上下键可以将上面/下面的命令复制到当前输入行,在输入命令时,如果太长,按一下 tab 键,会自动补齐:使用:clear //清空当前屏幕

1.pwd:print working directory缩写,显示当前工作的目录名

2.cd:change directory缩写,切换目录
格式: cd [/根目录下的子目录] //进入该目录
常用例子:
cd ~ //波浪线 ~ 表示当前用户的目录,例如用户是root,就进入root,用户是张三,就是张三的
cd / //根目录
cd - //减号,上一次访问的目录
cd .. //上一级目录
cd //缺省,进入当前用户目录

3.ls:list的缩写,列出当前进入的目录内容
格式:ls [参数1][参数2] [/文件或目录]
参数有:
-a或–all 列出所有文件和目录,包括隐藏文件,特殊目录
-l 使用详细格式列表列出
-t 用文件和目录的更改时间排序(正序)
-r 指定反向排序,配合-t使用
–help 在线帮助
常用:ls -l //因为太常用了,可以简化为:ll
例子:ls -altr //以详细格式列出全部内容,并反向排序
ll ./b //显示当前目录下的 b 目录下的内容

4.mkdir:make directory缩写,创建目录
格式:mkdir [参数] 新目录名
参数有:
-p:parent缩写,如果父目录不存在先生成父目录
-v:显示命令执行过程的详细信息
例子:
(1).mkdir newfile //如果不指定路径,就在当前工作目录下创建新目录 newfile
(2).mkdir /root/src/mylib //绝对路径,其中 root 和 root/src 必须存在,否则出错
(3).mkdir -pv a/b/c //在当前工作目录下先创建 a 目录,再在 a 目录下创建 b ,再在 b 目录下建 c

5.cp:copy缩写,复制文件或目录
格式:cp [参数] [源文件或目录] [目标文件或目录]
参数:
-r或–recursive 递归处理,将指定目录下的文件和子目录一并处理
-b 如果要覆盖文件时,会将被覆盖文件进行配份
例:
cp -r ./abc ./xxx //如果没参数r,就不能里面有子目录或文件

6.mv:move缩写,移动或 更名 现有的目录或文件
格式:mv [参数] [源文件或目录] [目标文件或目录]
参数:
-f或–force: 强制覆盖不用询问,即当目的目录有重名文件,直接覆盖
例子:
mv a.txt ./abc/a.txt
mv ./a.txt ./b.txt //重命名
7.rm:remove缩写,删除文件或目录
格式:rm [参数] [–help] [–version] [文件或目录]
参数:
-f或–force: 强制删除,不用询问
-r或–recursive: 递归处理,将指定目录下的文件和子目录一并删除
例子:
rm -f ./a.txt

8.find:查找文件或目录
格式:fine [目录] [参数] [查找范式即要查找的含有的字符串]
参数:-name:指定要查找的东西的名字,可使用正则
例子:
find ./ -name ‘a*’ //在当前目录下查找名字开头有 a 的文件和目录
9.touch:创建文件
例:
touch ./ a.txt //在当前目录下创建a.txt

文档查看操作

1.cat:catenate缩写,显示文本文件内容
格式:cat 文件名.后缀 //会将文本文件全部显示出来(没有分页),因此一般用于只有几行的文件
2.more:分页显示文本文件内容,还支持直接跳转行功能
格式:more 文件名.后缀
执行这个命令后会显示第一页内容,之后按:
Enter键 是向下n行,需要设置,默认是一行
空格键/Ctrl+F 是向下滚动一屏
B/Ctrl+B 返回上一屏
q 退出more,回到接收命令状态

3.less:分页显示文本文件内容,但操作更详细
格式:less [参数] 文件名.后缀
参数:
-m 显示类似more命令的百分比
-N 大写N,显示每行的行号
执行这个命令后会显示第一页内容,之后按:
Enter键 向下一行
Y 后退一行
空格键 是向下滚动一屏
B 返回上一屏
D 前进半页
U 后退半页
/+字符串 向下搜索
?+字符串 向上搜索
v 进入vim编辑器
q 退出more,回到接收命令状态

5.tail:从文件尾开始显示
格式:tail [-行数] 文件名.后缀
其中行数是显示最后的几行
例子:
tail -10 ./a.log //查看日志最后十行

6.grep:Global Regular Expression Print缩写,全局正则表达式版本,功能是用于过滤/搜索特定的字符,可用正则表达式来配合搜索
可以配合文本显示来使用,故称“管道”
格式1:grep [参数] pattern [文件路径]
格式2:其他命令 | grep [参数] pattern(过滤条件) //其他命令的输出是grep的输入,因此称为管道
参数有:
-i或–ignore-case 表示忽略大小写
例子:
grep -i mysql /root/install.log //表示搜索含mysql的内容
cat /root/install.log | grep -i mysql //与上述功能一样
ps -ef /root/ | grep -i install //将系统所有进程输出,并过滤不含install的进程去掉

文档编辑操作(vi/vim命令)

1.基本操作
输入“vim 文件名”进入“一般模式” //相当于打开记事本了
按下“i”从一般模式进入“插入模式” //相当于用鼠标点一下文本框,接着可以输入了
按下“esc”从插入模式退出到“一般模式”
在“一般模式下”,输入“ :wq “,退编辑并保存
例子:
vim ./a.txt —>按 i —>编辑—>esc—>:wq—>完成

2.vi可以分为三种模式,分布是:一般模式(command mode),插入模式(insert mode),低行模式(last line mode)
一般模式(command mode):
该模式下,可以控制屏幕光标的移动,对字符或行进行删除,移动和复制某区段以及进入插入/低行模式
插入模式(insert mode):
只有该模式下,才可以编辑
低行模式(last line mode):
该模式下,将文件保持或退出vi,也可以设置编辑环境或查找字符或列出行号等
3.在输入 ”vim 文件名“ 后,按不同的键有不同的操作
(1)插入操作(从一般模式进入插入模式,即在一般模式下按一下键)
i:在光标前插入
shift+i:在光标当前行开头开始插入,相当于Windows的”Home“键
a:在光标后插入
shift+a:在光标当前行末尾开始插入,相当于Windows的”End“键
o:在当前光标的下一行插入
shift+o:在当前光标的上一行插入
(2)复制或粘贴(在一般模式下的操作)
yy:复制光标所在的整一行,类似于Windows的Shift+home或shift+end
数字+yy:复制光标所在之后的 n 行,n 由数字决定
p:粘贴在光标所在位置的新一行
(3)定位(在一般模式下的操作)
gg:定位到文本第一行开头,类似于Windows的Ctrl+Home
shift+g:定位到文本最后一行开头类似于Windows的Ctrl+End
(4)删除(在一般模式下的操作)
dd:删除光标所在行
数字+yy:删除光标所在之后的 n 行,n 由数字决定
(5)退出vim
:q :表示退出vi(没做修改时)
:q! :强制退出不保存
:w :保存不退出
:wq :保存后退出

系统命令

1.ps:process Status缩写,显示系统所有进程信息的一个快照
格式:ps [参数]
参数有:
-e:显示所有进程,类似于ls的-a
-f:显示进程UID,PPIP,STIME栏位
例子:
ps -ef
2.kill:杀死进程命令,
格式:kill [参数] 进程ID
参数有:
-9:强制退出
例子:
kill -9 进程ID //可用通过ps命令查看进程ID
3.ifconfig:显示网络链接信息,类似于Windows的ipconfig
4.ping:测试网络是否联通
格式:ping IP号码

备份压缩/解压命令

1.tar:功能是文件备份压缩/解压
格式:tar [参数] [操作后放的位置和新名] 要解压缩的(路径)文件名.后缀
参数有:
-c:create缩写,建立一个压缩文件
-x:extract缩写,解压一个压缩文件
-z:是否使用gzip压缩
-v:verbose缩写,压缩的过程显示文件
-f:使新文档名,在f后面直接接文档名
解压组合:-zxvf //谐音记忆:注销vf
压缩组合:-zcvf //谐音记忆:注册vf
例子:
tar -zcvf /root/b.tar /root/a //将a目录压缩到root下,并命名为b,因为用了-f参数
tar -zxvf ./b.tar //将b.tar解压到原目录

关机重启命令

1.reboot:重启系统
2.halt:立即关机

文件权限控制命令

权限的一些概念:用户/组/权限
用户:Linux是一个多用户多任务的系统,root是最大权限的用户,其他用户是在home目录下保存
组:类似于数据库的角色机制,为一类相同权限的用户弄一个组
linux的用户分为四种类型:当前用户(2-4位),当前用户所属的组(5-7位),不是该组其他用户(8-10位),所有用户(2-10位)
例:
输入 ls -l 命令显示的内容为:drwxr-xr-x. 2 root root 6 8月 1 19:39 a

1.chmod:change mode缩写,变更文件或目录的权限
格式:chmod [参数] [<权限范围>和<符号> 或 <权限代号>] 文件或目录名
参数有:
-r或-recursive 递归处理,将指定目录下的文件和子目录一并处理

    权限范围表示法:
        u:user即原来拥有该文件或目录的用户(一般是当前用户)(2-4位)
        g:group即原来拥有该文件或目录的所属组群(5-7位)
        o:other除了该文件或目录的拥有者和组外的其他所有用户(8-10位)
        a:all即所有用户(2-10位)
    符号表示法:
        +:表示添加权限
        -:表示取消权限
    权限代号表示法:
        r:读取权限,数字代为 4 
        w:写权限,数字代为 2
        x:执行或切换权限,数字代为 1
        -:不具有任何权限,数字代为 0

例子:
    chmod u-rwx ./a.txt     //给取消当前用户对a.txt的读写执行权限
    chmod 157 ./a.txt       //给当前用户对a.txt的执行权限(数字1),改组其他用户读/执行权限(数字5=4+1),其他用户全部权限

命令总结和帮助

1.Linux命令分为两种:内部命令和外部命令
内部命令:属于Shell解析器的一部分,属于系统自带的
如:cd,pwd,help
外部命令:安装外部软件时,使用外部软件的命令。或者独立于Shell解析器的文件程序命令
如:ls,mkdir,cp

2.内部命令查看帮助文档:help+命令,如:help cd
3.外命令查看帮助文档:man+命令,如:man ls
4.一般先用 man 来查,没有再用 help

安装依赖包:其他软件所必须的运行环境

(以centos为例,Ubuntu的把yum改为apt即可)

1.JDK依赖包:
命令:yum install glibc.i686

2.MYSQL依赖包:
命令:yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6
命令:yum update libstdc++-4.4.7-4.el6.x86_64
命令:yum -y install libncurses.so.5 libtinfo.so.5

3.redis依赖程序
命令:yum install gcc-c++

查看安装的软件和卸载软件

1.rpm -qa //查看所有安装的软件,加上管道可以查特定的软件,如:rpm -qa | grep java 查看是否安装了jdk
2.卸载删除软件
rpm -e –nodeps 软件详细名 //一般通过 rpm -qa 先看一下名字
例:
rpm -e –nodeps java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.i686 //卸载jdk1.6

安装外部软件(如:tomcat,mysql,Redis)

1.先装好依赖
2.在/usr/local/src/目录下创建安装目录,可使用mkdir(usr是Linux安装程序的默认目录,相当于Windows的programfile
3.将安装包使用FileZill软件上传到linux中创建的目录(FileZill软件连接Linux的端口是 22)
4.进入创建的目录,使用例:cd /usr/local/src/java
5.若安装包是压缩文件,使用:tar -zxvf 安装包名 ,来解压一下就是安装了,之后可以重命名一下
6.配置环境变量(如果需要的话),使用命令:
(1)vim/etc/profile,然后将配置信息在该文件末尾添上
jdk配置信息:

            #set java environment
            JAVA_HOME=/usr/local/src/java/jdk1.7.0_71
            CLASSPATH=.:$JAVA_HOME/lib.tools.jar
            PATH=$JAVA_HOME/bin:$PATH
            export JAVA_HOME CLASSPATH PATH
(2)保存退出
(3)运行命令:source /etc/profile  ,使配置信息生效
(4)输入java或rpm -qa查看是否成功

例子:1.安装Tomcat
1、创建web目录:mkdir /usr/local/src/tomcat
2、(虚拟机系统才需要)上传apache-tomcat-7.0.57.tar.gz
3、解压:tar -zxvf apache-tomcat-7.0.57.tar.gz
4、重命名:mv apache-tomcat-7.0.57 tomcat
5、启动tomcat:命令如下
cd itcast-usermanage/bin/
./startup.sh 或者 sh startup.sh
6、查看日志:tail -f ../logs/catalina.out
7、查看启动效果: http://192.168.0.160:8080/ ,结果发现访问不了,这可能是因为Linux没有开 放8080端口,可以通过命令:/etc/init.d/iptables status 查看开发了那些端口
8、打开 8080 端口,命令如下:
/sbin/iptables -I INPUT -p tcp –dp ort 8080 -j ACCEPT //打开8080端口
/etc/rc.d/init.d/iptables save //保存,是开放生效

例子:2.安装mysql
1、mkdir /usr/local/src/mysql
2、cd /usr/local/src/mysql
3、tar -xvf MySQL-5.6.22-1.el6.i686.rpm-bundle.tar
4、安装server:rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm
//有可能出错,没依赖,安装:yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6
5、安装client:rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm
//有可能出错,没依赖,安装:yum -y install libncurses.so.5 libtinfo.so.5
6、查询mysq服务运行状态,执行命令:service mysql status 查看是否启动了mysql
7、如果服务未启动。启动mysql服务:service mysql star

-------------本文结束感谢您的阅读-------------