linux基础培训教程
头一段时间总结的教程,用于给芳芳做培训,以免被别人一问三不知。
一、简介
改变文件的群组:chgrp users install.log
改变文件的owner:chown root install.log chown mail:mail log2012.log(用户:组)
改变文件的权限:chmod 777 install.log
newgrp othergroup
n流行的OS
n32/64位
n多用户、多任务、安全性高、免费、开源
n用于服务器领域:Web Server、Mail Server等
n常见发行版:一般分为桌面版和服务器版
比如redhat产品线:
桌面版Fedora、服务器版RHEL
其他常见ubuntu、centos、suse、debian等
二、安装和开关机
双系统一定要安装grub,在grub中设置windows的启动项
熟悉man的使用,查询命名的含义
sync:把内存的数据写入到硬盘中
n重启、关机(r重启;h关机)
shutdown –r +1 (1分钟后)
init 6
shutdown –r now (立刻)
init 0(关机)
n查n看当前runlevel直接输入runlevel
0 Halt the system
1 Single user mode
2 Basic multi user mode
3 Multi user mode
5 Multi user mode with GUI
6 Reboot the system
3 Multi user mode
5 Multi user mode with GUI
6 Reboot the system
三、文件和目录
绝对路径和相对路径
显示所有文件(包括隐藏) ll –a /path
-rw-r--r-- 1 root root 46432 Aug 20 2012 install.log
上述含义为install.log为文件;own权限为可读可写、group权限为读、other权限为可读;对应的i-node有1个文件名相关联;owner为root;group为root;大小为46432个byte;最后修改时间为Aug 20 2012
上述含义为install.log为文件;own权限为可读可写、group权限为读、other权限为可读;对应的i-node有1个文件名相关联;owner为root;group为root;大小为46432个byte;最后修改时间为Aug 20 2012
cd一个目录至少需要该目录的r+x权限
改变文件的群组:chgrp users install.log
改变文件的owner:chown root install.log chown mail:mail log2012.log(用户:组)
改变文件的权限:chmod 777 install.log
chmod u=rwx,go=rx .bashrc
chmod a+w .bashrc
chmod u-x .bashrc
chmod u-x .bashrc
一共分为(u user, g group, o other, a all)
umask和umask -S:创建文件和目录的默认owner、group、other的权限
chattr +a filename增加文件append only属性
chattr +i attrtest(i属性无法删除、修改、更名等等)
chattr -a filename 去除文件append only属性
chattr -a filename 去除文件append only属性
lsattr是显示文件的属性
查看文件类型用 file /etc/hosts
/etc/hosts: ASCII English text
查找shell命令所在的路径用which
[root@adshadoop76 ~]# which service
/sbin/service
/sbin/service
内置的命令用[root@adshadoop76 ~]# type cd
cd is a shell builtin查找shell命令和文件用whereis(注意,它不但可以查找非内置的shell命令所在路径,而且能够找出文件所在路径)
[root@adshadoop76 ~]# whereis resolv.conf
resolv: /etc/resolv.conf /usr/include/resolv.h
resolv: /etc/resolv.conf /usr/include/resolv.h
四、文件系统和磁盘
档案系统通常会将这两部份的资料分别存放在不同的区块
档案权限(rwx)与档案属性(拥有者、群组、时间参数等)放置到inode 中,至于实际资料则放置到data block 区块中。
superblock:记录此filesystem 的整体资讯,包括inode/block 的总量、使用量、剩余量, 以及档案系统的格式与相关资讯等;
· superblock:记录此filesystem 的整体资讯,包括inode/block 的总量、使用量、剩余量, 以及档案系统的格式与相关资讯等;
· inode:记录档案的属性,一个档案占用一个inode,同时记录此档案的资料所在的block 号码;
· block:实际记录档案的内容,若档案太大时,会占用多个block 。
· inode:记录档案的属性,一个档案占用一个inode,同时记录此档案的资料所在的block 号码;
· block:实际记录档案的内容,若档案太大时,会占用多个block 。
一个block分为1K、2K、4K这三种大小,一个block只能存放一个文件的内容,超出一个block的容量,就需要多个block进行存储,所以,当文件很小,block选择很大,则导致浪费;当文件很大,block设置很小,则导致inode中记录多个block区块编号,读取速度就很慢。
一个inode大小为128bytes,有记录到block的指向
查看磁盘文件系统信息用如下方式:
1、df -lh查询挂载点
/dev/sda1 99M 13M 82M 14% /boot
2、dumpe2fs /dev/sda1
查看本机使用的文件系统:
more /etc/fstab
[root@adshadoop76 ~]# more /etc/fstab
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
[root@adshadoop76 ~]# df -lhT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
ext3 69G 65G 0 100% /
/dev/sda1 ext3 99M 13M 82M 14% /boot
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
ext3 69G 65G 0 100% /
/dev/sda1 ext3 99M 13M 82M 14% /boot
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
统计某个目录下面所有目录的大小
[root@adshadoop76 ~]# du -sh /usr/*
148M /usr/bin
8.0K /usr/etc
8.0K /usr/games
231M /usr/include
2.1M /usr/kerberos
548M /usr/lib
976M /usr/lib64
41M /usr/libexec
552M /usr/local
37M /usr/sbin
1.7G /usr/share
64M /usr/src
4.0K /usr/tmp
24K /usr/X11R6
148M /usr/bin
8.0K /usr/etc
8.0K /usr/games
231M /usr/include
2.1M /usr/kerberos
548M /usr/lib
976M /usr/lib64
41M /usr/libexec
552M /usr/local
37M /usr/sbin
1.7G /usr/share
64M /usr/src
4.0K /usr/tmp
24K /usr/X11R6
hard link 只是在某个目录下新增一笔档名连结到某inode 号码的关连记录而已。
所以删除硬链接不影响原来的被硬链接文件的属性(inode)和文件内容(block),但是修改时会影响源文件的inode和block信息
ln /etc/profile .
在当前目录下创建profile的硬链接
symbolic link 产生新的inode,指向原来被连接的文件,文件类型为l
ln -s /etc/profile .
在当前目录下创建profile的symbolic link
四、账号和权限
/etc/passwd、/etc/shadow/和/etc/group分别维护用户名、密码和所属群组
创建一个用户(自动创建同名群组)
useradd yuxiaoyue
useradd yuxiaoyue
把用户加入到其他组
usermod –G othergroup yuxiaoyue
gpasswd -d yuxiaoyue othergroup从组中删除
usermod –G othergroup yuxiaoyue
gpasswd -d yuxiaoyue othergroup从组中删除
n查看自己的群组
groups
groups
groups输入后显示的第一个群组就是有效群组,在创建档案touch test之后,test的群组显示就是此有效群组
用户改变自己的有效群组newgrp othergroup
退出设定后的有效群组shell环境,回到初始环境
exit
exit
新增一个系统用户(uid小于500且没有home目录)useradd –r yuxiaoyue
useradd的时候指定shell为/sbin/nologin表示此用户无法登录系统
创建用户时,home目录数据默认来源于/etc/skel
修改密码有2种
root登录 passwd username
username登录 直接passwd
有个用户老捣蛋,root使该用户失效(有效)
passwd –l username
passwd –u username
创建用户时,home目录数据默认来源于/etc/skel
修改密码有2种
root登录 passwd username
username登录 直接passwd
有个用户老捣蛋,root使该用户失效(有效)
passwd –l username
passwd –u username
删除某个用户userdel –r username,-r是包括删除/home/username目录,删除前,最好检查一下和username相关的档案(owner和group权限)
find / -user ads
查询系统登陆者
finger
find / -user ads
查询系统登陆者
finger
五、vi编辑器
vi file进入 (一般模式)
dd删除一行;x删除单个字符
按“i”进行编辑(编辑模式)
按“ESC”,输入“:wq”(命令模式)
不想保存,输入“q!”
六、压缩和解压
2种压缩方式gzip和bzip2
压缩:tar -jcv -f filename.tar.bz2 dir
查询:tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C newdir(指定参数C可以解压到新的目录)
如果是gzip压缩,j替换成z
用unzip解压zip格式包
压缩:tar -jcv -f filename.tar.bz2 dir
查询:tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C newdir(指定参数C可以解压到新的目录)
如果是gzip压缩,j替换成z
用unzip解压zip格式包
七、软件安装
源码安装
1、解压;
1、解压;
2、./configure;
3、make;
4、make install
软件作者通常制作好configure脚本,用来生成makefile
默认安装在/usr/local/中,可以使用--prefix=/path定制
4、make install
软件作者通常制作好configure脚本,用来生成makefile
默认安装在/usr/local/中,可以使用--prefix=/path定制
[root@www ntp*]# ./configure --help | more <==查询可用的参数有哪些
--prefix=PREFIX install architecture-independent files in PREFIX
--enable-all-clocks + include all suitable non-PARSE clocks:
--enable-parse-clocks - include all suitable PARSE clocks:
--prefix=PREFIX install architecture-independent files in PREFIX
--enable-all-clocks + include all suitable non-PARSE clocks:
--enable-parse-clocks - include all suitable PARSE clocks:
rpm方式
软件信息被写入到/var/lib/rpm/中
安装:rpm -ivh package_name
注意prefix选项 --prefix NEWPATH
yum常用命令行命令
安装:yum install foo-x.x.x.rpm
删除:yum remove foo-x.x.x.rpm或者yum erase foo-x.x.x.rpm
升级:yum upgrade foo或者yum update foo
查询:yum info foo
搜索(以包含foo字段为例):yum search foo
显示依赖关系:yum deplist foo
软件信息被写入到/var/lib/rpm/中
安装:rpm -ivh package_name
注意prefix选项 --prefix NEWPATH
yum常用命令行命令
安装:yum install foo-x.x.x.rpm
删除:yum remove foo-x.x.x.rpm或者yum erase foo-x.x.x.rpm
升级:yum upgrade foo或者yum update foo
查询:yum info foo
搜索(以包含foo字段为例):yum search foo
显示依赖关系:yum deplist foo
软件签名验证
检查软件的MD5和sha1
md5sum MySQL-5.6.14-1.el6.i686.rpm-bundle.tar
2684a0be1a51f41bf1334f4be2ebfb7a
sha1sum MySQL-5.6.14-1.el6.i686.rpm-bundle.tar
0d5600b31cb9fc9b437cf4b3bbbc1bea0a695bc1
然后拿此数字和软件提供的字符串对比,一致表示没有篡改
检查软件的MD5和sha1
md5sum MySQL-5.6.14-1.el6.i686.rpm-bundle.tar
2684a0be1a51f41bf1334f4be2ebfb7a
sha1sum MySQL-5.6.14-1.el6.i686.rpm-bundle.tar
0d5600b31cb9fc9b437cf4b3bbbc1bea0a695bc1
然后拿此数字和软件提供的字符串对比,一致表示没有篡改
八、SHELL相关
变量
读取变量
echo $PATH
设置变量
PATH=$PATH:/home/yuxiaoyue/shell
MYVAR=“Test $PATH” //输出Test xxx(xxx代表PATH真实内容)
MYVAR=‘Test $PATH’ //输出Test $PATH
MYVAR=`uname -a`等价MYVAR=$(uname -a)
echo $PATH
设置变量
PATH=$PATH:/home/yuxiaoyue/shell
MYVAR=“Test $PATH” //输出Test xxx(xxx代表PATH真实内容)
MYVAR=‘Test $PATH’ //输出Test $PATH
MYVAR=`uname -a`等价MYVAR=$(uname -a)
取消变量unset MYVAR
转义符号\:如name=vbird\’s\ name
普通变量追加:name=“$name”appendcontent
输入bash,会启动一个新的bash环境,变量无法共享
把变量导出为环境变量
export MYVAR,这样子shell环境也能读取
列出所有的环境变量使用env、export
列出所有变量(含用户定义和环境变量)用set
export一个普通变量后,它就成为了一个环境变量
转义符号\:如name=vbird\’s\ name
普通变量追加:name=“$name”appendcontent
输入bash,会启动一个新的bash环境,变量无法共享
把变量导出为环境变量
export MYVAR,这样子shell环境也能读取
列出所有的环境变量使用env、export
列出所有变量(含用户定义和环境变量)用set
export一个普通变量后,它就成为了一个环境变量
管线命令
『| 』仅能处理经由前面一个指令传来的正确信息,也就是standard output 的信息,对于stdandard
error 并没有直接处理的能力。,例如less, more, head, tail 等都是可以接受standard
input 的管线命令啦
cut用法
echo $PATH | cut –d ‘:’ –f 2-5
取出path环境变量中第2-5个冒号分隔的内容
export | cut -c 12-
取出每行的从第12个字符后面的所有字符
cut 主要的用途在于将『同一行里面的数据进行分解!』,处理多空格相连的数据时不太适用
『| 』仅能处理经由前面一个指令传来的正确信息,也就是standard output 的信息,对于stdandard
error 并没有直接处理的能力。,例如less, more, head, tail 等都是可以接受standard
input 的管线命令啦
cut用法
echo $PATH | cut –d ‘:’ –f 2-5
取出path环境变量中第2-5个冒号分隔的内容
export | cut -c 12-
取出每行的从第12个字符后面的所有字符
cut 主要的用途在于将『同一行里面的数据进行分解!』,处理多空格相连的数据时不太适用
type、which
在PATH中查找输入的bash命令,找出路径和类型
反斜杠\回车,实现多行输入一个完整的命令
grep
last | grep –v ‘root’ 显示非’root’的登录用户历史
/etc/profile可以修改path环境变量
ll | grep ^d可查看子目录,ll –d只列出所在目录
iostat vmstat netstat的分析
netstat –tnlp | grep 80
netstat -tlup | grep rsync
tcp 0 0 192.168.201.110:rsync *:* LISTEN 4618/xinetd
tcp 0 0 www.vbird.tsai:rsync *:* LISTEN 4618/xinetd
表示xinetd启动的rsync服务
在PATH中查找输入的bash命令,找出路径和类型
反斜杠\回车,实现多行输入一个完整的命令
grep
last | grep –v ‘root’ 显示非’root’的登录用户历史
/etc/profile可以修改path环境变量
ll | grep ^d可查看子目录,ll –d只列出所在目录
iostat vmstat netstat的分析
netstat –tnlp | grep 80
netstat -tlup | grep rsync
tcp 0 0 192.168.201.110:rsync *:* LISTEN 4618/xinetd
tcp 0 0 www.vbird.tsai:rsync *:* LISTEN 4618/xinetd
表示xinetd启动的rsync服务
FAQ
为啥文件有内容,但是在ll中查看大小为0
因为它位于内存中,如/proc、/selinux等
如何以文字模式开机操作
改一下/etc/inittab试试看
如何启动自己的shell或者服务
vi /etc/rc.d/rc.local试试看
/etc/init.d/下面都是系统开机初始化的服务sh脚本,等同于service httpd start和chkconfig httpd on
/etc/init.d/httpd start == service httpd start
==chkconfig httpd on
因为它位于内存中,如/proc、/selinux等
如何以文字模式开机操作
改一下/etc/inittab试试看
如何启动自己的shell或者服务
vi /etc/rc.d/rc.local试试看
/etc/init.d/下面都是系统开机初始化的服务sh脚本,等同于service httpd start和chkconfig httpd on
/etc/init.d/httpd start == service httpd start
==chkconfig httpd on
常见命令
date
cal
bc
cd
pwd
mkdir
rm
ls和ll
cp
mv
cat -n和nl
more
less
head -n 20
taif -fn 400
od
相关推荐
bluecarrot 2020-11-23
Attend 2020-11-17
ZHAICAN 2020-11-16
codedecode 2020-11-14
zhangbingb 2020-11-12
ykmail 2020-11-11
futurezone 2020-11-06
rikeyone 2020-11-04
橄榄 2020-11-04
WenCoo 2020-10-31
liuyuchen 2020-10-27
ROES 2020-10-24
Gexrior 2020-10-22
ZHAICAN 2020-10-20
风语者 2020-10-16
zhongguomin 2020-10-16
净无邪 2020-10-15