目录
虚拟化工具VMWare
Linux基本命令
清理屏幕
clear
创建用户
useradd 名称
设置密码 passwd 密码
切换用户
root用户切换到普通用户,不需要输入密码,反之需要
$ su - 名称
显示当前用户所在的目录,查看当前工作路径
$ pwd
主机名称
查看主机名称
$ hostname
设置主机名称
hostname 名称 但是重启会还原,要永久性改变主机名称,再输入 cat /etc/sysconfig/network
关机
halt
重启
reboot 或者init 6
文件类型、权限和归属
查看文件 ls
-a 显示所有文件,包括隐藏文件;
-l 详细信息显示;
-d 仅显示目录名,而不显示目录下的内容列表;
-h 人性化显示(hommization);
-i 查看任意一个文件的i节点(类似于身份证唯一信息);
-t 用文件和目录的更改时间排序;可以用第一个显示的文件判断最近修改的文件
cd /home 进入'/home'目录
cd .. 返回上一级目录
cd ../.. 返回上两级目录
文件类型
文件 -
目录(类似WIN7下的文件夹)d
连接(类似WIN7下的快捷方式)l
文件权限
可读r
可写w
可执行(脚步,比如shell脚本)x
-表示没有任何权限
权限的数字表示方法:二进制数字之和的方式进行表示
r 2^2 w 2^1 x 2^0
文件的归属
拥有者 u
属于组 g
其他人 o
权限命令chmod、文件所属用户和组改变权限命令
man cmdName 查看某个命令的意思和用法
Tab键可以补全命令行
如何设置文件对不同用户的权限
需要使用root用户
#chmod 命令
chmod g-w 文件名
chmod o-r 文件名 对于同组用户来说,仅仅可读,对于其他用户不可读不可写
还可以通过数字形式实现以上需求
chmod 664 文件名
文件拷贝
$ cp 文件名
改变文件拥有者和所属组
chown 新的拥有者 文件目录
chgrp 新的组 目录
针对一个目录设置权限,目录中有许多文件需要权限设置
-R 递归
chmod -R 664 目录
针对目录改变拥有者和所属组
chown -R 新的拥有者 目录
文件的两种创建方式、VI常用快捷键和文件常用操作
文件创建
第一种
使用touch命令创建文件
touch test.data
使用vi/vim方式编辑文件
vi/vim test.data 开始编辑 然后点ESC按键,输入:wq保存
第二种
输入vi test.txt创建并且进入编辑状态 点ESC按键,输入:wq保存
对文件内容进行追加
ehco '追加的内容' >> test.txt 可以实现追加内容到文件
编辑文件内容快捷键
vi test.txt进入编辑状态 点ESC进入查看模式
dd:表示删除光标所在的行
ZZ:表示保存文件内容 也可以 :wq 保存
x:表示将光标处的字符删除
o: 在光标的下一行进行插入
首先需要知道vi编辑器有3种基本工作模式,分别是:命令模式、文本输入模式、和末行模式。
第一:命令行模式:该模式是进入vi编辑器后的默认模式。任何时候,不管用户处于何种模式,按下ESC键即可进入命令模式。在该模式下,用户可以输入vi命令,用户管理自己的文档。此时从键盘上输入的任何字符都被当作编辑命令来解释。若输入的字符是合法的vi命令,则vi在接受用户命令之后完成相应的动作。但需要注意的是,所输入的命令并不回显在屏幕上。若输入的字符不是vi命令,vi会响铃报警。
第二:文本输入模式:在命令模式下输入命令i、附加命令a、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被vi当作文件内容保护起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按ESC键即可。
第三:末行模式:末行模式也称ex转义模式。在命令模式下,用户按“:”键即可进入末行模式下,此时vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的说明符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令在执行完后,vi自动回到命令模式。如果要从命令模式转换到编辑模式,可以键入a或者i。如果需要从文本模式返回,则按ESC即可。在命令模式下输入“:”即可切换到末行模式,然后输入命令。
末行模式下:q! 【 内容被修改 不保存】 q【内容没有修改 不保存】 wq【退出并保存】
(2)如果你不想保存直接退出有可以在命令模式下使用“ctrl+z”快捷键或者按住“shift”键,输入两个z即可退出。
(转载自https://www.cnblogs.com/longchuqianyuan/p/11163933.html)
查看文件内容的几种常见方式
cat 文件目录 查看文件全部内容,适用于文件内容少
more 翻页查看
tail -200 文件目录 看最后两百行
head 看文件开头,查看处理文件的格式,内容模板样式
文件的拷贝、移动、重命名和删除
文件的拷贝、移动和重命名
拷贝一个文件到一个目录
$ cp 文件名称 目录名称
拷贝一个文件到另一个文件
$ cp 文件名称 另一个文件名称(新文件)
拷贝一个目录到另一个目录
$ cp -r 目录1 目录2
创建目录
$ mkdir 目录名称
多级目录创建
$ mkdir -p 多级目录
移动
mv 文件/目录1 文件/目录2
重命名
mv 文件/目录1 文件/目录2 如果在12在同一个目录就是重命名,不在就是移动
文件的删除
$ rmdir test-dir
rmdir 注意删除的目录必须是空目录
$ rm -rf src 使用的时候,src最好是绝对路径(准确的路径目录),确定好再删除
文件的链接
类似于快捷方式
软连接 和 硬连接区别在于删除链接时是否删除源文件
创建软连接
$ ln -s 目录文件 链接名称
创建硬连接
$ ln 目录文件 链接名称 硬连接就相当于拷贝一个文件
文件搜索
find ~/ -name 文件名称 从当前目录下搜索文件名称
find / - name 文件名称 从根目录下搜索文件名称
文件名称如果记不清,可以写abc\* \*是转义字符,表示abc开头的文件
Linux系统管理
查看进程 ps
杀死进程 kill pid号
磁盘管理命令和内存查看命令
$ uname 系统版本
$ uname -r 内存版本
$ cat /proc/cpuinfo cpu信息
$ cat /proc/meminfo 内存信息
$ date $ date -R 查看时间
$ cal 年份 日历
date -s 2015-09-30
date -s 14:42:50 设置日期和时间
df -lh 磁盘信息
du -sh 目录 目录下面空间大小
fdisk -l 磁盘信息
fsck 目录 修复磁盘,自动修复
mount 查看挂载磁盘信息
mount 目录 挂载磁盘目录
umount 目录 卸载目录
free -m 看系统内存使用情况
top 各个进程内存的使用情况 M:详细信息
Linux下软件的安装方式
第一种方式 RPM命令
检查某个软件是否安装,比如说java
# rpm -qa|grep java
卸载已安装软件
# rpm -e --nodeps 软件名称
安装软件
# rpm -ivh 软件名称.rpm
第二种方式 tar 源码编译 不推荐
zip 软件
解压
$ unzip xxx.zip
压缩
$ zip 压缩后的名称.zip 待压缩的文件名称
tar软件
解压
到当前目录 $ tar -zxvf xxx.tar.gz
到指定目录 $ tar -zxvf xxx.tar.gz -C 目录
压缩
$ tar -zcvf zzz.tar.gz 目录
第三种方式 yum
需要配置源,软件包依赖关系,以及各软件包安装顺序
设置普通用户的sudo权限和启动关闭系统防火墙
不需要输入密码进入用户,直接在命令前输入sudo就可以执行
$ su 切换到root用户
# vi /etc/sudoers
在第一行添加如下内容
用户名 ALL=(root)NOPASSWD:ALL
查看防火墙是否关闭
$ sudo service iptables status
关闭防火墙
$ sudo service iptables stop
启动防火墙
$ sudo service iptables start
永久性设置防火墙关闭/开启
$ sudo chkconfig iptables off|on
再次开启http
$ sudo chkconfig httpd on
防火墙和SELINUX都需要禁用
Linux自带定时调度Crontab
针对用户
每个用户都可以调度自己的任务
crontab基本定义
* * * * * command
Shell编程基础
变量的声明、引用和作用域
shell程序:以文本文件形式存放批量Linux命令集合
第一行
指定用哪个程序编译和执行脚本
#!/bin/bash 或者#!bin/sh
shell脚本中除了第一行的# 其他#都表示注释行
变量名必须字母或者下划线开头,后面跟字母数字下划线 区分大小写
x=123
echo ${x}
>>>123
echo x
>>>x
变量类型:本地变量只能在创建它的shell程序中可用,环境变量也叫全局变量,大写,都可以用
变量赋值:等号两边不能有空格,如果要赋空值,在等号后面跟一个换行符
显示变量的值:echo $variable echo ${variable}
清除变量:unset variable
显示所有变量:set
位置参量的使用和命令执行状态码
位置参量是特殊的内置变量,通常被shell脚本用来从命令行接受参数,或被函数用来保存传递它的参数
执行脚本时,用户通过命令行向脚本传递信息,跟在脚本后面的用空格隔开每个字符串都是位置参量
脚本中使用这些参数,通过位置参量引用,$1表示第一个参数,$2表示第二个参数,但是第十个开始要${10}
例如:
echo "hello $1"
执行脚本时,$ ./test.sh world
>>>hello world
$0 当前脚本名称
$# 位置参数个数
$* 以单字符串显示所有的位置参量
$$ 脚本运行的当前进程号
$! 最后一个后台运行的进程号
$? 显示前面最后一个命令的退出状态 0表示没有错误
如果位置参量中有空格,需要使用双引号
退出码
任何命令进行时都会返回一个退出状态,查看命令:echo $?
应用中通常在关键步骤后判定,确定关键步骤执行正常,
程序控制返回码 exit N 为0成功,无错误 不为0,失败,某处有错误
if [ $? != 0];then
exit 1
数组、date和cal命令讲解
数组
数组定义 arr=(a b c)
echo ${arr[0]}
>>>a
echo ${#arr[*]}
>>>3 数组里面有三个数
arr[0]=d 改变数组第一个值
date命令
#!/bin/bash
date1=$(date)
echo ${date1}
>>>得到时间
cal命令
cal 2016
cal 09 2016
判断表达式和if语句
关于文件的判断
test -e filename 判断该名称是否存在
-f 是否存在该名称且为档案
-d 是否存在该名称且为目录
-r 是否存在名称且可读
-w ....可写
-x ...可执行
关于两个整数之间的判断
-eq 两个数相等 test n1 -eq n2
-ne 不相等
-gt n1大于n2
-lt 小于
-ge 大于等于
-le 小于等于
判断字符串数据
test -z string 判断字符串是否为0,为空字符串为true
test -n string 是否非0
test str1 = str2
test str1 != str2
也可以用判断符合[] 进行判断
[ -z "$abc" ]; echo '==' 如果abc这个文件为空(等于0)就打印==
[ -z "$abc" ] 左右中括号里面各有一个空格,z后面不要有空格
if判断
if [ 条件判断式 ];then
当条件判断成立时,执行的指令
fi
点+空格+“脚本名称” 执行这个脚本
多重复杂判断
if [ 条件判断式 ];then
当条件判断成立时,执行的指令
elif [ 条件判断式 ];then
当条件判断成立时,执行的指令
else
当条件判断成立时,执行的指令
fi
for循环和while循环
for循环
for var in 1 2 3 4 5
do
echo ${var} 打印每个值
done
num=10
s=0
for ((i=0;i<${num};i=i+1))
do
s=$((${s}+${i}))
done
echo ${s}
while循环
while [ 条件判断式 ]
do
程序段落
done
另一种方式
until [ 条件判断式 ]
do
程序段落
done
逐行读取文件
cat ${文件名} | while read line
do
echo ${line}
done