LINUX基础学习完了,经过一周的学习也学到了很多东西,于是再把笔记好好整理了一遍复习了一遍,包括老师课上讲的,自己课外看的,和大家分享下吧~
命令行编辑的几个辅助操作
快捷键Ctrl+alt+回车:全屏/退出
快捷键Ctrl+alt+shift+F2:进入linux非图形界面
Alt+F7:退出LINUX非图形界面
touch 用法 -a 仅修改访问时间 -c仅修改文件时间 -d 欲修改的时间 -m mtime修改 -t 格式YYMMDDHHMM
例:cp a.txt b
*cp是copy的简写,用来复制文件。在工作目录下,将a.txt复制到b目录下*
mv 为文件或目录更名
例mv a.txt c.txt将a.txt移动成为c.txt (相当于重命名rename)
rm 删除文件或目录
rm a.txt
删除a.txt
rm -r /home/vamei
删除从/home/vamei向下的整个子文件系统。-r表示recursive, 是指重复删除的操作,/home/vamei文件夹为空,然后删除/home/vamei文件夹本身。
rm -rf / 它会删除整个文件树。f的目的是告诉rm放心干,不用再确认了…… )
mkdir创建一个新的目录
mkdir /home/vamei/good
rmdir 删除一个空目录
用途:用于查找文件或目录
格式:find [查找范围] [查找条件]
常用查找条件
-name:按文件名称查找
-size:按文件大小查找
-user:按文件属主查找
-type:按文件类型查找
-print : 打印查找结果
history的命令历史
保存用户曾经执行过的命令操作
历史保存文件~/.bash_history中
查看历史命令
history
目录 文件
文件权限前的第一个字母用来标识文件类型:
-:一般文件
d:目录文件
b:块设备文件
c:字符设备文件
l:链接文件
p:人工管道
文件权限系统,将操作文件的用户都分成三类
文件的拥有者(u)
文件所属组的成员(g)
其他用户(o)
读(r)4 :用户是否有权力读文件的内容
写(w)2 :用户是否有权利改变文件的内容
执行(x)1 :用户是否有权利执行文件
添加用户帐号
useradd命令
格式:useradd [选项]... 用户名
常用命令选项
-u:指定 UID 标记号
-d:指定宿主目录,缺省为 /home/用户名
-e:指定帐号失效时间
-g:指定用户的基本组名(或UID号)
-G:指定用户的附加组名(或GID号)
-M:不为用户建立并初始化宿主目录
-s:指定用户的登录Shell
用户帐号的初始配置文件
~/.bash_profile:用户每次登录时执行
~/.bashrc:每次进入新的Bash环境时执行
~/.bash_logout:用户每次退出登录时执行
修改用户帐号的属性
usermod命令
格式:usermod [选项]... 用户名
常用命令选项
-l:更改用户帐号的登录名称
-L:锁定用户账户
-U:解锁用户账户
以下选项与useradd命令中的含义相同
-u、-d、-e、-g、-G、-s
删除用户帐号
格式:userdel [-r] 用户名
添加 -r 选项时,表示连用户的宿主目录一并删除
useradd 增加用户
userdel 删除用户
usermod 修改用户
groupadd 增加组
groupdel 删除组
groupmod 修改组
passwd 设置密码
chpasswd 用文件配置修改密码
更改文件的所有权
改变文件的所有权命令chown
改变用户分组命令chgrp
改变文件属性命令chmod
修改密码的有效期
chage命令
格式:chage [选项]... 用户帐号名
常用命令选项
-m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M 密码保持有效的最大天数。
-W 用户密码到期前,提前收到警告信息的天数。
-E 帐号到期的日期。过了这天,此帐号将不可用。
-d 上一次更改的日期
-i 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
设置文件系统的自动挂载
/etc/fstab配置文件
包含了需要开机后自动挂载的文件系统记录
[root@localhost ~]# vim /etc/fstab
设备位置 挂载点 文件系统类型 开机是否检测 优先级
磁盘错误 (默认为0)
(1:检测 0:不检测)
/dev/VolGroup00/LogVol00 / ext4 defaults 0 0
UUID=硬盘的UUID号 /boot
(设备位置建议使用UUID号)
Linux 定时任务
命令: at
用于在制定的时间点一次性的执行命令.
打开at服务:
service atd start
at 23:45
at> shutdown -h now 此处输入要执行的命令
完成按ctrl + d 结束
文件内容操作命令—— grep
用途:在文件中查找并显示包含指定字符串的行
格式:grep [选项]... 查找条件 目标文件
常用命令选项
-i:查找时忽略大小写
-v:反转查找,输出与查找条件不相符的行
查找条件设置
要查找的字符串以双引号括起来
“^……”表示以……开头,“……$”表示以……结尾
“^$”表示空行
基本的正则表达式
d | 文字:字母 “d” | dog |
* | 修饰符:前一个字符出现零次或多次 | hel*o |
. | 通配符:任意单个字符 | test.txt |
[] | 通配符:集合中的任意单个字符 | file[1234] |
[^] | 通配符:不在集合中的任意单个字符 | file[^0-9] |
^ | 定位点:行首 | ^test |
$ | 定位点:行尾 | test$ |
.* | .(任一字符)与*(零或以上)的组合 | ^test.*123 |
\ | 将下一个字符视为文字 | test\.$ |
\< | 锚定单词的开始 | \<love lovea lover |
\> | 锚定单词的结束 | love\> alove glove |
归档及压缩命令 —— tar
tar命令
用途:制作归档文件、释放归档文件
格式:tar [选项]... 归档文件名 源文件或目录
tar [选项]... 归档文件名 [-C 目标目录]
常用命令选项
-c:创建 .tar 格式的包文件
-x:解开.tar格式的包文件
-v:输出详细信息
-f:表示使用归档文件
-p:打包时保留原始文件及目录的权限
-t:列表查看包内的文件
-C:解包时指定释放的目标文件夹
-z:调用gzip程序进行压缩或解压
-j:调用bzip2程序进行压缩或解压
制作压缩包文件
tar jcf test.tar.bz2 /etc/httpd/
释放压缩包文件
tar jxf test.tar.bz2 -C /
系统监视
uname:显示系统信息
hostname:显示主机名
last:列出最近的用户登录
lastlog:列出每一个用户的最近登录情况
free:显示内存使用状况
top:系统监视器
查询进程的指令:
ps [option]
pstree可以用来以树状的方式表现进程的父子关系
top是一个常用的系统监视工具。
规划硬盘中的分区
fdisk命令
用途:在交互式的操作环境中管理磁盘分区
格式:fdisk [磁盘设备]
fdisk -cu /dev/sdb
交互模式中的常用指令
m:查看操作指令的帮助信息
p:列表查看分区信息
n:新建分区
d:删除分区
t:变更分区类型
w:保存分区设置并退出
q:放弃分区设置并退出
在分区中创建文件系统
将新硬盘分好区以后,还需要对分区进行格式化(即创建文件系统),并挂载到Linux系统中的指定目录下,然后才能用于存储文件、目录等数据
mkfs命令
用途:Make Filesystem,创建文件系统(格式化)
格式:mkfs -t 文件系统类型 分区设备
-t 的参数如下
ext4 ext3 ...
查看RHEL支持的分区类型,可以输入 mkfs. 再两次tab查看.
mkfs.cramfs mkfs.ext3 mkfs.ext4dev mkfs.vfat
mkfs.ext2 mkfs.ext4 mkfs.msdos
去掉 mkfs.就是 -t 的参数
free命令 查看内存
功能说明:显示内存状态。
补充说明:free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
参 数:
-b 以Byte为单位显示内存使用情况。
-k 以KB为单位显示内存使用情况。
-m 以MB为单位显示内存使用情况。
-o 不显示缓冲区调节列。
-s<间隔秒数> 持续观察内存使用状况。
-t 显示内存总和列。
-V 显示版本信息。
光盘制作iso镜像
cp /dev/cdrom /aaa.iso
挂载光盘镜像
mount -o loop ISO镜像文件 挂载点目录
ping查看网络连通性
traceroute测试当前主机到目标主机之间经过的所有网络节点.
hostname显示当前主机名称.
nslookup可以进行域名的查询.
ip配置命令
ifconfig eth0 192.268.0.1
设置网关
route add default gw 192.168.0.154
主机名设置命令
hostname server2.example.com
以上命令即时生效, 重启后丢失
VIm编辑器
vim配置文件 /etc/vimrc
在该配置文件中编辑
:set nu显示行号
:set ts=3缩进宽度
:set mouse=a用鼠标滚动查看
重启也会有效
VIm中指令模式下按G切换到最后一行,nG切换到第n行,1G切换到第一行
H 将光标移动到屏幕的最上行
:wq保存并退出
yy复制
p粘贴
u撤销一次
vim命令就不多说啦,还是比较好撑握的
ssh服务
主要软件包:openssh-server、openssh-clients
服务名:sshd
服务端主程序:/usr/sbin/sshd
客户端主程序:/usr/bin/ssh
服务端配置文件:/etc/ssh/sshd_config
客户端配置文件:/etc/ssh/ssh_config
Samba服务
Samba服务器的主要程序
smbd:提供对服务器中文件、打印资源的共享访问
nmbd:提供基于NetBIOS主机名称的解析
安装
yum install samba
启动服务
service smb start
Samba的配置文件
/etc/samba/smb.conf
创建samba用户
从系统用户创建samba用户
smbpasswd管理命令,常用的选项:
-a:添加指定的Samba帐号
-d:禁用指定的Samba帐号
-e:启用指定的Samba帐号
-x:删除指定的Samba帐号
-h:显示帮助信息
不指定选项时可以修改指定Samba帐号的密码
配置共享目录项
[name] 共享目录名
comment:对共享目录的注释、说明信息
path:共享目录在服务器中对应的实际路径
browseable:该共享目录在“网上邻居”中是否可见
guest ok:是否允许所有人访问,等效于“public”
writable:是否可写,与read only的作用相反 Samba服务设置的读取、写入权限,优先级要低于文件系统中设置的权限
如果远程登录可以看到目录无法打开是由于SELinux拒绝.
输入 chcon -t samba_share_t /path 解决
详细参照samba配置文件
NFS的基本概念
NFS是系统间进行文件共享的一种网络协议
在NFS的应用结构中有服务器和客户机两种角色
NFS客户端通过挂载NFS文件系统的方式访问NFS服务器中输出的共享目录
在同一台主机中即可以是NFS服务器也可以作为NFS客户机
软件包: nfs-utils
NFS服务器的配置文件
/etc/exports
“exports”文件用于配置NFS服务器中输出的共享目录
/home/share *(sync,ro)
nfs共享目录名 客户端主机地址(设置选项)
查询某一主机的共享目录
showmount -e 192.168.0.111
nfs服务进程名: nfs
查询服务器的状态
为了保证NFS服务器能够正常工作,系统中需要运行portmap和nfs两个服务程序
# service nfs status
启动服务器
# service nfs start
停止服务器运行
# service nfs stop
Linux 防火墙
setup用于打防火墙设置来关闭或打开
由init进程调用执行
完成设置网络、主机名、加载文件系统等初始化工作
/etc/rc.d/rc脚本文件
由init进程调用执行
根据指定的运行级别, 加载或终止相应的系统服务
/etc/rc.local脚本文件
由rc脚本调用执行
保存用户定义的需开机后自动执行的命令
默认的7种运行级别
0:关机状态
1:单用户模式
2:字符界面的多用户模式(不支持网络)
3:字符界面的完整多用户模式
4:未分配使用
5:图形界面的多用户模式
6:重新启动
Bash 编程
Shell 变量
引用和转义
弱引用 “” 保留扩展(输出的是值)
强引用 ‘’ 禁用扩展(把其中内容原封不动的输出)
转义 \
循环
for i in item1 item2;
do
cmd1; cmd2;
done
条件分支(判断)
if cmd;
then
cmd1;
cmd2;
elif
cmd3;
fi
(3个以下的条件用if ,3个以上的条件用case)
value1)
instruction
;;
value2)
instruction
;;
*)
default
;;
esac
for 变量名 in单词表
do
命令表
done
输出重定项
例ls 1>ls.txt
0标准输入
1标准输出
2标准错误
输入重定项
wc -l <smb.conf
wc -l 统计有多少行
wc -c 统计有多少字符
wc -w 统计有多少单词
管道“|”
cat smb.conf | grep "root"
将左边的指令做为输入源再给右边的指令
命令别名设定
alias unalias
alias rm='rm -i' 定义
unalias -a rm 删除
yum 源安装 (本地源)
实现步骤
1.cd/etc/yum.repos.d 配置文件位置
2.屏蔽网络源 网络源名称(CentOs-Base.repo) 可以更名也可以删除
3.gedit CentOs-Media.repo 编辑文件
4.设置文本中从光盘挂载改为file:///mnt/cdrom
再把enabled=0改为enabled=1 ,gpgchech=0
5.挂载光盘 mount /dev/cdrom /mnt/cdrom
6.yum search 软件名 (查找)
7.yum install 完整软件名 (安装)
8.卸载光盘 umount /mnt/cdrom
注:本地源改为网络源需先还原CentOs-Base.repo文件,打开CentOs-Base.repo修改enabled=0即可。
以上先归纳到这里,关于shell里面的一些内容,gcc,make 下一篇文章会用举例的方式来说明