本文由笔者基于linux centos 7的root用户测试
目录
基本文件操作
其他
基本文件操作
使用ls /查看目录(而不是ls查看文件)
pwd查看当前工作目录
使用cd切换目录 ..表上一层目录 ./表示当前目录
只写 cd 会来到当前用户的登录目录(在/etc/passwd里可以看见所有用户的登录目录在哪)
cd - 来到这个目录前自己在哪个目录 (只能返回一级,根据 $OLDPWD 环境变量回去)
- 写文件
vim filename(直接开始编辑)
vi filename(进入vi之后使用i进入编辑模式)
或者
nano filename(nano也是linux中的一个文本编辑器)
在vi/vim下写完之后 Esc进入命令模式(停止编辑) 输入:wq保存并退出(vi中的!具有强制的意思 比如:q!就是不保存强制退出)
在命令模式下输入:set -nu以在编辑器中显示行号
touch filename 可以创建一个空文件 touch命令也用于修改文件时间戳 使用date可以查看当前时间
- 读文件
cat -n filename 其中-n为可选参数,表显示行号
也可以用上述三个文本编辑器读
- 文件的移动
复制 cp /test1/file1 /test3/file2(把test1中的file1复制到test3中并更名为file2,-r为可选参数表递归复制,用于目录的复制)
删除 rm /test/file1(-f:强制删除;-i:交互模式,在删除前询问用户是否操作;-r:递归删除,常用在目录的删除)
移动 mv /test1/file1 /test3/file2(把test1中的file1移动到test3中并更名为file2,其中源文件可以是多个,-i表示若目标文件存在则询问是否覆盖)
注:mv有也可用作文件的重命名 比如 mv ./aa ./bb把当前目录下的aa文件重命名为bb
- 文件的查找
查找命令用whereis ;查找可执行程序用which ;通用的查找是 find ,用起来比较费 io
按名字:
查找目录:find /(查找范围) -name '查找关键字' -type d
查找文件:find /(查找范围) -name 查找关键字 -print‘’
find命令的参数很多,这篇文章写的很详细,我这里写出一些常用的用法
-name 查找名字
-o 或者
-path 匹配路径
-delete 放在find命令的最后表示查找并删除
-ok<执行指令>:在执行指令之前会先询问用户,若回答“y”或“Y”,则继续执行
e.g.
find . # 列出当前目录及子目录下所有文件和文件夹
find /home -name "*.txt" # 在/home
目录下查找以.txt结尾的文件名
find /home -iname "*.txt" # 同上,但忽略大小写
find . -name "*.txt" -o -name "*.pdf" # 当前目录及子目录下查找所有以.txt和.pdf结尾的文件
find /usr/ -path "*local*" # 以正则表达式*local*匹配文件路径或者文件
find $HOME/. -name "*.txt" -ok rm {} \; # 找出目录dongmie1999下所有名为aaaaa的文件并删除,其中aaaaa可以是一个正则表达式
注:
正则表达式中
[a-z] lower-case [A-Z] upper-case [0-9] digital number
[a-z] : a; b ;c...
[a-zA-Z] : all ascII Character [a-z][A-Z] : aD , cD , [0-9][a-z][A-D] : 8sA,9hB
? 代表一个字符
* 代表任意形式、任意长度的字符
否定参数
find /home ! -name "*.txt" # 找出/home下不是以.txt结尾的文件
按大小:
$ find ./ -size +20k # find the file larger than 20k
$ find ./ -size -20k # find the file smaller than 20k
注:对任何命令可以使用 xx(命令名)-- help查看帮助
例如
linux中的常用shell——bash
shell可以理解为是一种用户控制电脑的命令,通常指的是linux中的命令行。bash是linux中一种常用的、用C编写的shell,bash 也是大多数Linux 系统默认的 Shell。其他shell还有c shell,k shell等。
- 查看当前的shell:
echo $SHELL
- 写第一个shell
新建一个.sh文件(拓展名不影响使用,只是方便查找和使用):
vi shell_test.sh(不存在的话则默认新建一个)
键入以下内容
第一行#!后的内容表示shell 的类型, 即默认使用何种shell打开,这里使用bash运行
- 运行shell
1、作为可执行程序
将上面的代码保存为 test.sh,并 cd 到相应目录:
chmod +x ./test.sh #使脚本具有执行权限
./test.sh #执行脚本
注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。
2、作为解释器参数
这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,如:
/bin/sh test.sh
/bin/php test.php
这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。
linux的文件权限
linux的文件访问将用户分为当前用户、用户组和其他用户
使用ls -l查看当前文件夹下文件的文件权限
ls -l 相当于ll
rwx分别对应读、写、可执行
linux中的SUID,SGID
见我的另一篇博客
chmod命令
使用 chmod 改变访问模式,该命令接受8进制数字和模式字符串两种参数形式。
符号意义及说明如下:
- 用户类型
a all 针对所有用户
o other 针对其他用户
g group 针对组用户
u user 针对拥有者
- 操作类型
- 取消权限
+ 增加权限
= 精确设置权限
- 权限类型
r read 读权限
w write 写权限
x eXecute 执行权限
X 对已具有执行权限的目录和文件设定执行权限,但不包括无格式文件。
s SUID 或 SGID 属性
t sticky 属性。
linux中文件颜色的含义
绿色文件---------- 可执行文件
红色文件-----------压缩文件或者包文件
蓝色文件----------目录
白色文件----------普通,如文本文件,配置文件,源码文件等
浅蓝色文件----------链接文件,主要是使用ln命令建立的文件
红色闪烁----------表示链接的文件有问题
黄色文件----------表示设备文件
灰色文件----------表示其它文件
如果没有颜色就用 ls -F 用 '/' 显示目录和 '*' 可执行文件
linux的inode和硬链接、软链接
linux的文件包括文件内容(具体的字符)和文件信息(读写权限、大小等),这个文件信息就是inode。每个inode在系统中是唯一的,inode相同说明是同一个文件,inode不同则认为是不同的文件。
- 关于inode
stat filename 查看该文件的inode信息
ls -i 列出当前目录下所有文件的inode(不包括隐藏文件,使用-ai查看所有文件的inode)
ls -i filename 查看该文件的inode号码
ls -li filename 查看该文件的inode号码以及读写权限、该inode有几个硬链接等信息
- 硬链接(Hard Link)和软链接/符号链接(Symbolic Link)
硬链接:
ln ./file1 hard 对当前目录下的file1文件创建一个名为hard的硬链接
- 不同的文件名指向同一个inode。比如一个inode号码是1234,这个inode有两个硬链接,一个叫做f1,一个叫做f2,也就是说f1和f2指向同一个inode,这种连接方式称为硬链接,可以说是文件的“别名”。
- 只有所有的硬链接都被删除的时候这个文件才是彻底被删除了。
- 硬链接不可跨文件系统,也就是不能远程访问。
软链接:
ln -s ./file1 soft 对当前目录下的文件file1创建名为soft的软链接
- 创建的软链接拥有一个新的inode,也就是软链接是一个新的文件,但是这个文件指向源文件。这种连接方式类似于Windows中的快捷方式。同样地,通过软链接访问文件进行修改,源文件也会被修改。ls的时候软链接显示是蓝绿色,硬链接是白色。
- 删除软链接并不会影响源文件。
- 软链接可跨文件系统,也就是可以远程访问。
注:了解更多linux系统的数据结构http://blog.chinaunix.net/uid-14518381-id-3957854.html
数据库的安装与使用
使用yum安装mariadb:yum install mariadb-server
开启数据库服务:systemctl start mariadb
本地登录数据库:mysql
注:mariadb与mysql完全兼容,故详细的数据库操作不在此赘述
这个可以方便记忆linux下的命令linux命令英文缩写的含义(方便记忆)
crond命令
crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
- crond配置
服务操作说明:
/bin/systemctl start crond.service #启动服务
/bin/systemctl stop crond.service #关闭服务
/bin/systemctl restart crond.service #重启服务
/bin/systemctl reload crond.service #重载配置
查看crontab服务状态:
service crond status
查看crontab服务是否已设置为开机启动,执行命令:
ntsysv #按Tab键切换到下一个按钮
加入开机自动启动:
chkconfig –level 35 crond on
- crond用法
其他
shell的注释用#
多行注释可以在首尾加上!EOF!
ifconfig查看本机ip
linux命令对大小写敏感