Liunx环境搭建
windows 系统利用网上环境准备好VM虚拟机;
MAC的下载VMfusiton 11 安装完成后,下载Centos 7的ISO镜像,网上很多。目前最新版为Centos 7。Windows和OS大同小异,就不展开描述了。os具体操作方法如下:
mac 装Centos7的镜像安装流程
1.装好虚拟机后,选择创建自定义虚拟机,不要选择直接安装ISO !
2.接着第二步就是选择Linux操作系统,选择 Centos 7 x64 现在已经没有32位的Centos 7了 各位小伙伴请注意。
3.固件和虚拟硬盘不做要求,各位的电脑大小都不一样,建议虚拟硬盘为200G,然后自己分盘,处理器内核为2核,内存为2G。然后其他都可以默认就行
4.对了,我们系统还没有装上的,只是配置了简单的虚拟机。现在,把我们下载好的Centos 7 x64 选择光盘启动。然后确认,打开虚拟机。
5. 虚拟机打开后 Centos 7 x64 的安装界面和以前不一样,是统一的一次配置,稍后附上图。值得提一下的是分盘和做网络配置的时候,分盘 /boot 要给 1G以上;根目录/ 要大一点;接下来自己命名一个测试盘 /date 可以给大一点, /swap 给4G
6. 分好盘,就到设置网络。打开网络接口
7. 所有完成之后,就可以Begind install 了
8. 安装过程中会出现两个框,双击进去,第一个是设置ROOT账户密码; 第二个是设置普通账户,如图所示:
9. 安装完成之后,用ROOT账户登录,使用
ip a
查看本机en333 IP
如图:
10.因为MAC有自带的终端,所以不需要下载Xshell (windows系统上通过远程管理Linux系统的工具),具体使用方法:mac上调出终端
然后在终端上输入:
ssh root@(加上在虚拟机上看到的IP)
即可连上!
Linux简单命令
halt = poweroff = shutdown 关机
shutdown 扩展有
shutdown -r = reboort
shutdown -h 3 = 3分钟后关机
shutdown -c =取消关机
whoami 显示当前登录有效用户
who 系统当前所有的登录会话
w 系统当前所有登录会话所做的操作
命令 screen
用与远程操作查看,两人看相同的操作界面 (同一用户,同一主机)同步操作,就是说同一用户两台电脑看到的操作是一样的,也可以进行操作。
关于-bash: screen 未找到命令 nano
Centos如果装了最小系统的话,很多命令是没有安装上的,就需要手动在光盘上通过 df 命令查看是否有光盘。如果安装了图形界面的小伙伴,就可以用ROOT用户登录,光盘会自动挂载。
/dev /sr0 代表光盘已经挂载上了
如果没有出现/dev /sr0 ,或者不是图形界面的,就需要手动挂载
以下操作进行手动挂载
mount /dev/sr0 /mnt
解释:mnt相当于mount 用于挂载
挂载上去就进入mnt目录,然后输入 ls /mnt/Packages/
Packages里面都是要安装的文件,都是RPM后缀
然后输入rpm -ivh /mnt/Packages/screen-4.1.0-0.25.20120314git3c2946.el7.x86_64.rpm 每个挂载的功能名都可以Tab键补齐
挂载完成 !
Screen用法
screen -S yourname -> 新建一个叫yourname的session //注意S为大写
在另一台虚拟机上可以输入 -ls 查看会话,是否有youname这个session
screen -ls -> 列出当前所有的session
screen -x yourname -> 同步上yourname这个session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
当软件崩溃的时候,你做的东西不会保留在进程,用screen可以保留下来,查看Linux运行的所有文件列表: ps aux 保留下来之后可以用 -r 回到Session.
screen -r yourname -> 结束当前session并回到yourname这个session
exit->永久退出
ctrl+a,d 键 挂起,不等它完成就可以做其他命令
Echo命令
echo(选项)(参数)选项
echo 显示所打的
-e:激活转义字符。使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\ 插入\字符;
echo -e “\e[2;31m this is red text\e[0m” 输出字体为红色
echo -e ‘\a’ 发出警告声
另外 ’ ’ 代表强引用、 " " 代表弱引用
echo 活学活用 批量创建文件夹 touch{1…10}.txt
mkdir 要想连续创建目录就得加 -p
例子:mkdir -p 1/2/3 这样就在1的目录下创建2,在 2 下创建 3
rm 命令
rm -f -> 强制删除 //删除不了文件夹
rm -r -> 删除递归文件夹
rm也是可以使用通配符的 !
例子:rm -f *.txt -> 把txt结尾的文件全删掉
例子:rm -rf * -> 把文件全删掉
通配符有 * -> 表示全部 ; ?->表示一个字符; {}\ - 都表示一个范围
cp 命令
用法 cp 源文件 目标文件
History 命令
!n(序号)-> 可以重复利用历史id
!:0 -> 执行上一条命令而不加参数
!-5 ->倒数第5条执行
ctrl+r 可以搜索历史 -g 表示退出
history -c ->清空历史
寻求帮助
whatis
-bash: manbb: 未找到命令
mandb 创建数据库来使用whatis
使用方法:whatis (rm)
多看第三方应用官方文档
文件管理
-:普通文件
d: 目录文件
b: 块设备
c: 字符设备
l: 符号链接文件
p: 管道文件pipe
s: 套接字文件socket
pipe 管道文件 只能单向连接
sooker 双向文件
cd命令
改变当前工作目录
cd 回去家目录
cd …返回上一级
cd - 回去上一个操作
cd ~回根目录
ls命令
列出当前目录的文件和子目录
ls -a 列出所有目录、子目录、文件和隐藏文件
ls -R 列出从当前目录开始的所有的子目录、文件并且一层层往下显示
ls -F 列出文件、目录名并显示出文件类型
ls -t 以修改时间为时间倒序来列出文件、子目录
ls -l 以长列表格式显示文件、目录的详细信息
ls-i 单独编号
ln-s 创建软连接
ls -S 按从大到小排序
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母
[:upper:]: 任意大写字母
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:图形字符
[:xdigit:]:十六进制字符
例子:ll f[[:upper:]].txt -> 全大写的文件
stat [文件]->读时间
Atime:访问时间
btime: 修改时间
ctime:改动时间
touch命令
创建文件
一个大于号可以创建一个文件,不过会覆盖文件
两个大于号可以创建一个文件夹
cp命令
拷贝文件
cp [-i] source_file destination_file
cp [-i] source_file(s) destination_directory
-i选项作用:当目标文件存在,会询问是否覆盖,没有-i选项则不询问直接覆盖
cp wj.txt wj1.txt : 拷贝wj到wj1
拷贝目录
cp -r source_directory(s) destination_directory(s)
cp -r dir1 dir2 :dir1拷贝到dir2目录下
cp -r dir3 dir4 dir5 :dir3,dir4拷贝到dir5目录下
cp移动 复制文件 复制文件夹例子 cp -rf /boot /data/bootbar // 复制boot到data并新键bootbar
-a 可以直接复制并不改文件夹原来属性 包含有-r
cp -av 组合可以看到复制过程
mv命令
可以移动或者重命名
mv [-i] source_file target_file 重命名源文件为目标文件
mv [-i] source_file target_directory 移动文件到目标目录
mv wj.txt wj1.txt :在本目录下将wj重命名为wj1
mv wj1.txt dir1:将本目录下的wj1移动到dir1目录下(若dir1不存在,则是对源文件进行改名:如 mv userinfo dir6)
例子:把DATA目录下的ROOT目录下的keke文件拷贝到根目录
cp /data/root/keke ./
mv同理
快速把盘符撑满:cp /dev/zero /boot/
如何释放空间?
清空之后 再删除
》/boot/zero
rm - fr /boot/zero
这是最保险的,不至于删除了文件,而空间不释放
如何释放Inode?
当inode 满的时候也会提示no space
用rm -rf 删除 活用 *
硬链接和软连接的区别
1.硬链接
若一个 inode 号对应多个文件名,则称这些文件为硬链接。换言之 ,硬链接就是同一个文件使用了多个别名。只能在同一个文件系统来链接文件,源文件和目标文件同一个文件,当有多个硬链接文件时,删除其中一个则是删除了一个文件名而已,硬链接数少1个,即连接号会少一个。
ln=link
创建硬链接
ln f1 f1.link //inode是一样的
由于硬链接是有着相同 inode 号仅文件名不同的文件,因此硬链接存在以下几点特性:
1)文件有相同的 inode 及 data block;
2)只能对已存在的文件进行创建;
3)不能交叉文件系统进行硬链接的创建;
4)不能对目录进行创建,只可对文件创建;
5)删除一个硬链接文件并不影响其他有相同 inode 号的文件。
2.软链接(符号连接)
若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块。
可在不同的文件系统来链接文件,源文件和目标文件是不同文件,有不同的大小,是2个文件, 目标文件的内容是源文件的inode号指向源文件,像windows中的快捷方式一样。
建立了软连接后,软连接文件的大小是指向的目标文件的文件名的大小;
1)软链接与硬链接不同,软链接创建与使用没有类似硬链接的诸限制 ;
2)软链接有自己的文件属性及权限等;
3)可对不存在的文件或目录创建软链接;
4)软链接可交叉文件系统;
5)软链接可对文件或目录创建;
6)创建软链接时,链接计数 i_nlink 不会增加;
7)删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被 指向路径文件被重新创建,死链接可恢复为正常的软链接)。
硬链接:删的只是文件,没删数据,不允许跨分区,文件夹不允许
软连接:ls -s f1 f11 跨区的话要:ln -s /data/yu /root/ke
重定向
例子:hostname > /data/log //原文件有数据会覆盖原文件
双大于号则不会
输入也可以重定向
例子:bc < bc.log
I/O重定向就是为了改变默认输入、输出的位置::表示标准输出覆盖重定向;
:表示标准输出追加重定向;
2>:表示错误输出覆盖重定向;
2>>:表示错误输出追加重定向;
&>:表示合并标准输出和错误输出覆盖重定向;
&>>:表示合并标准输出和错误输出追加重定向;
2>&1:表示意义同&>即合并标准输出和错误输出覆盖重定向;
<:输入重定向;
<<:多行输入,终止词;
例子:cat > f1.log <<EOF
多行重定向
set -C命令:禁止覆盖重定向;
|:强制覆盖重定向(与set -C相反);
set +C命令:解除禁止覆盖重定向的设置;
管道符(|)作用是把前一个命令的执行结果当做后一个命令的输入。
管道符只能处理标准输入
例如:echo 2*4 | bc
who | tr ‘a-b’ ‘A-B’ | tr -d ‘0-9’ //把字母全部转成大写,0到9的数字删掉
tr命令是把字符集1转换为字符集2
用户和组管理命令
- useradd //创建用户
useradd [options] LOGIN -u UID
-o 配合-u 选项,不检查UID的唯一性
-g GID:指明用户所属基本组,可为组名,也可以GID -c “COMMENT”:用户的注释信息
-d HOME_DIR: 以指定的路径(不存在)为家目录
-s SHELL: 指明用户的默认shell程序
可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,…]:为用户指明附加组,组须事先存在 -N 不创建私用组做主组,使用users组做主组
-r: 创建系统用户 CentOS 6: ID<500,CentOS 7: ID<1000
-m 创建家目录,用于系统用户
-M 不创建家目录,用于非系统用户
例子:在系统上添加一个用户名称为apache的用户,默认shell为/sbin/nolgoin且不创建家目录
useradd -s /sbin/nolgoin -M apache
- usermod//修改用户
usermod [OPTION] login -u UID: 新UID
-g GID: 新主组
-G GROUP1[,GROUP2,…[,GROUPN]]]:新附加组,原来的附加组将会被覆盖; 若保留原有,则要同时使用-a选项
-s SHELL:新的默认SHELL
-c ‘COMMENT’:新的注释信息
-d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使 用-m选项
-l login_name: 新的名字;
-L: lock指定用户,在/etc/shadow 密码栏的增加 !
-U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉 -e YYYY-MM-DD: 指明用户账号过期日期
-f INACTIVE: 设定非活动期限
- userdel//删除~
userdel -r 删除家目录
组账号维护命令:
- groupadd
- groupmod
- gropdel
SU 切换用户登录
su - 完全登录切换
su 非登录切换
passwd [OPTIONS] UserName: 修改指定用户的密码
常用选项:
-d:删除指定用户密码
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-f: 强制操作
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-i inactivedays:非活动期限
–stdin:从标准输入接收用户密码
例子:
echo “PASSWORD” | passwd --stdin wang
chown 命令
更改某个文件或目录的属主和属组,可用于授权;
例子:chown ower [] 更改所有者
例如root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。
chgrp:修改所在组
chmod命令
- u=所有者
- g=所属组
- o=other
- 三种权限
- r: Readable w: Writable x: eXcutable
例子:u没有权限,其他人有读写权限
chmod u-rw,o=rw f1
或者 chmod 600 f1
SUID权限设置
就是给所属组加权限,任何人去运行这个读取都能成为管理员
例子:chmod u+s nano //可以用nano打开任何文本文件
取消权限 chmod u-s nano
目录上的SGID权限
代表不能随便删除
例子 chmod g+s chmod
取消 chmod g-s chmod
Sticky权限设置
对testdir目录设置sticky权限,实现只有文件的所有者或root才能删除该目录下的文件
例子 chmod o+t testdir
取消 chmod o-t testdir
文件查看命令: cat,tac,rev
cat [OPTION]… [FILE]…
-E: 显示行结束符$
-n: 对显示出的每一行进行编号
-A:显示所有控制符
-b:非空行编号
-s:压缩连续的空行成一行
tac :反着输出
rev:里面的数字反着输出
显示文本前或后行内容
head [OPTION]… [FILE]… -c #: 指定获取前#字节
-n #: 指定获取前#行
-#: 指定行数
例子:head -2 显示前两行
传给管道 ip a | head -2
tail [OPTION]… [FILE]…
-c #: 指定获取后#字节
-n #: 指定获取后#行
-#:
-f: 跟踪显示文件fd新追加的内容,常用日志监控
相当于 --follow=descriptor
例子:tail -f 1.txt
-F: 跟踪文件名,相当于—follow=name --retry
tr 命令 [选项]… 集合1 [集合2]
选项说明:
-c, -C, –complement 用集合1中的字符串替换,要求字符集为ASCII。
-d, –delete 删除集合1中的字符而不是转换
-s, –squeeze-repeats 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
-t, –truncate-set1 先删除第一字符集较第二字符集多出的字符
文件是以空格分开的要改动权限的文件列表,支持通配符。
-R 递归式地改动指定目录及其下的所有子目录和文件的拥有者。
-v 显示chown命令所做的工作。
cut 常用于 管道命令的结果选取
cut [选项]… [文件]…
常用选项
-d, –delimiter=分界符 使用指定分界符代替制表符作为区域分界
-f, –fields=LIST -d结果选取第几段
-c, –characters=列表 只选中指定的这些字符
例子:
ll | cut -c 1-10 //显示查询结果的 1-10个字符
ll | cut -d ’ ’ -f 1//显示用空格切割后的 第一个元素
cat passwd | head -1 | cut -d ‘:’ -f6 //截取/etc/passwd文件第一行,以冒号为分隔符,抽取第6个字段
paste 合并两个文件同行号
paste [OPTION]… [FILE]…
-d 分隔符:指定分隔符,默认用TAB
-s : 所有行合成一行显示
例子:paste f1 f2
paste -s f1 f2
wc命令
功能为统计指定文件中的字节数、字数、行数, 并将统计结果显示输出。
语法:wc [选项] 文件…
该命令各选项含义如下:
- c 统计字节数。
- l 统计行数。
- w 统计字数。
这些选项可以组合使用。
输出列的顺序和数目不受选项的顺序和数目的影响。总是按下述顺序显示并且每项最多一列。
行数、字数、字节数、文件名
如果命令行中没有文件名,则输出中不出现文件名。
例如:
$ wc - lcw file1 file2
4 33 file1
7 52 file2
11 11 85 total
wc 有四个参数可选,分别是l,c,m,w
wc -l filename 报告行数
wc -c filename 报告字节数
wc -m filename 报告字符数
wc -w filename 报告单词数
例子:ls -l|wc -l 用来统计当前目录下的文件数
cat /etc/passwd|wc -l 统计用户数
文本排序sort
把整理过的文本显示在STDOUT,不改变原始文件 sort [options] file(s)
常用选项
-r 执行反方向(由上至下)整理
-R 随机排序
-n 执行按数字大小整理
-f 选项忽略(fold)字符串中的字符大小写
-u 选项(独特,unique)删除输出中的重复行
-t c选项使用c做为字段界定
-k X 选项按照使用c字符分隔的X列来整理能够使用多次
例子:cut -d: -f3 /etc/passwd|sort -n //
uniq命令
从输入中删除前后相接的重复的行
uniq [OPTION]… [FILE]…
-c: 显示每行重复出现的次数
-d: 仅显示重复过的行
-u: 仅显示不曾重复的行
注:连续且完全相同方为重复 常和sort 命令一起配合使用:
例子:sort userlist.txt | uniq -c
cut -d: -f3 |sort -n |uniq -c |sort -nr |hear
inux文本处理三剑客
grep:文本过滤(模式:pattern)工具
grep, egrep, fgrep(不支持正则表达式搜索)
sed:stream editor,文本编辑工具
awk:Linux上的实现gawk,文本报告生成器
grep命令 文本过滤
例子: grep root /etc/passwd //挑选root出来
-m # 匹配#次后停止
-v显示不被pattern匹配到的行
-I 忽略字符大小写
-n显示匹配的行号
-c统计匹配的行数
-o 仅显示匹配到的字符串 静默模式
-A #after ,后#行
输出任何信息 after, 后#行
-w 匹配整个单词
-E 使用ERE
-F 使用ERE 相当于fgrep,不支持正则表达式