linux 中常用的命令
- 显示当前目录 pwd
- 改变当前目录 cd eg:
cd /home/fzy
- 列出当前目录的所有内容 ls eg:
ls /home/fzy
- 查看当前文本文件 cat(全部显示) more(分页显示) eg:
cat fzy.txt
- 创建文件夹 mkdir eg:
mkdir fzy
- 删除一个空文件夹 rmdir eg:
rmdir fzy #注意必须是空文件夹
- 创建一个空文件 touch eg:
touch fzy.txt
- 文件移动命令 cp eg
cp /home/fzy /home/yu
- 文件复制命令 mv eg:
mv /home/fzy /home/yu
- 文件删除命令 rm eg:
rm -rf /home/yu#删除当前目录下的全部文件
linux下文件的权限(重点)
八进制 | 二进制 | 文字权限 |
---|---|---|
0 | 000 | |
1 | 001 | –x |
2 | 010 | -w- |
3 | 011 | -wx |
4 | 100 | r– |
5 | 101 | r-x |
6 | 110 | rw- |
7 | 111 | rwx |
在实际开发只需要记住 x代表1 w代表2 r代表4 即可
在linux中为3种人准备了权限
1. 文件所有者(u) user
2. 文件属组用户(g) group
3. 其他人(o) other
chown 修改文件的所有权 (给他换一个主人)
sudo chown fzy yu.txt #将这个yu.txt文件的所有者修改为fzy这个用户
chown 提供了-R参数用于改变一个目录及其下所有文件的所有权
sudo chown -R fzy fzy/ #将fzy这个文件夹及其子目录交给fzy这个用户
chmod 修改文件的权限(相当于让被人看你的东西)
sudo chmod u+x yu.txt #给文件的所有者添加执行权限
sudo chmod a-x yu.txt #删除全部用户的执行权限
sudo chmod u=rw,go=r yu.txt #属主用户有读写权限 ,其他用户只有读权限
常见的文件类型
文件类型 | 符号 | 颜色 |
---|---|---|
普通文件 | - | 白色 |
压缩文件 | 红色 | |
可执行文件 | 草绿色 | |
目录 | d | 蓝色 |
字符设备文件 | c | 黄色 |
块设备文件 | b | 黄色 |
本地域套接口 | s | 粉红色 |
管道 | p | 青黄色 |
链接文件 | l | 淡蓝色 |
文件链接命令 ln
作用: 为某一个文件在另外一个位置建立一个不同的链接,ln命令会保持每一处链接文件的同步性,无论修改哪一个文件其他都会改变
- 软连接:
ln -s 源文件 目标文件
不会占用磁盘空间 - 硬链接:
ln 源文件 目标文件
在磁盘上建立一个相同的文件
重定向和管道
- 1.输出重定向
date > date_out #将当前时间输出到date_out这个文件中
date >> date_out #将当前时间追加到date_out这个文件中
- 2.输入重定向
cat < hello #将hello文件的内容输出到屏幕
cat << end #当输入end后结束输入
- 3.管道(前一个命令输出作为后一个命令的输入)
cat /home/fzy/yu.txt | wc #统计这个文件的字数
Linux下软件包的安装
1.rpm
①安装: rpm -ivh 软件包名
-i 安装软件
-t 测试安装,不是真的安装
-p 显示安装进度
-f 忽略任何错误
-U 升级安装
-v 检测套件是否正确安装
②卸载:rpm –e 软件名
不过要注意的是,后面使用的是软件名,而不是软件包名。例如,要安装software-1.2.3-1.i386.rpm这个包时,应执行:rpm –ivh software-1.2.3-1.i386.rpm 而当卸载时,则应执行:rpm –e software。
③查询: rpm -qa #查询安装的所有包
2.apt
apt-get命令一般需要root权限执行,所以一般跟着sudo命令 例 :
sudo apt-get install packagename——安装一个新软件包(参见下文的aptitude)
sudo apt-get remove packagename——卸载一个已安装的软件包(保留配置文件)
sudo apt-get –purge remove packagename——卸载一个已安装的软件包(删除配置文件)
sudo dpkg –force-all –purge packagename ——有些软件很难卸载,而且还阻止了别的软件的应用,就可以用这个,不过有点冒险。
sudo apt-get autoremove——因为apt会把已装或已卸的软件都备份在硬盘上,所以如果需要空间的话,可以用这个命令来删除你已经删掉的软件。
sudo apt-get autoclean——定期运行这个命令来清除那些已经卸载的软件包的.deb文件。通过这种方式,可以释放大量的磁盘空间。
sudo apt-get clean——这个命令会把安装的软件的备份也删除,不过这样不会影响软件的使用的。
sudo apt-get upgrade——更新所有已安装的软件包
sudo apt-get dist-upgrade——将系统软件包升级到新版本
sudo apt-cache showpkg pkgs——显示软件包信息。
sudo apt-cache pkgnames——打印软件包列表中所有软件包的名称
3.软件安装中的常见错误
①依赖性 –nodeps rpm -ivh nodeps 软件包名
②重复 replacepkgs rpm -ivh replacepkgs 软件包名
③软件冲突 force rpm -ivh force 软件包名
虽然这样可以把软件安装上去,但是软件不一定安装成功
Linux下文件系统挂载
==============挂载U盘==============
1. mkdir /home/fzy ##创建一个文件夹
2. fdisk -l ##插入U盘后查看是否有新硬盘添加上来
3. mount -t vfat /dev/sdb /home/fzy ##vfat是指的fat的格式的U盘
4. cd /home/fzy ##查看文件是否挂载成功
5. umount /dev/sdb ##卸载挂载
==============挂载光驱==============
1. mkdir /home/fzy ##创建一个文件夹
2. fdisk -l ##插入U盘后查看是否有新硬盘添加上来
3. mount -t iso9660 /dev/sr0 /home/fzy ## iso9660 是光盘文件的格式
4. cd /home/fzy ##查看文件是否挂载成功
5. umount /dev/sr0 ##卸载挂载
==============挂载硬盘==============
1. mkdir /home/fzy ##创建一个文件夹用户挂载
2. fdisk -l ##插入U盘后查看是否有新硬盘添加上来
3. mount -t ext3/dev/sda3 /home/fzy ## ext3是硬盘文件的格式
4. cd /home/fzy ##查看文件是否挂载成功
5. umount /dev/sda3 ##卸载挂载
一般情况下可以使用mount -t 不是必需的, 可以使用 mount (可以自动识别文件的类型)
Linux下文件打包和压缩
1.gzip
压缩: gzip fzy.tar
解压缩 gzip-d fzy.tar.gz
查看压缩结果 gzip -l fzy.tar.gz
2.bizp2
压缩: bzip2 fzy.tar
解压缩 bzip2 -d fzy.tar.bz2
3.tar 打包工具
tar -cvf fzy.tar fzy/ ##将文件夹下所有的文件进行打包
tar -xvf fzy.tar ##解开fzy.tar这个包
tar -czvf fzy.tar.gz fzy/ ##将文件下的的所有文件进行打包压缩
tar -cjvf fzy.tar.bz2 fzy/ ##将文件下的的所有文件进行打包压缩
tar -xzf fzy.tar.gz ##解压缩并解开包
tar -xjf fzy.tar.bz2##解压缩并解开包
Linux下系统周期性文件
Linux下的任务调度分为两类,系统任务调度和用户任务调度。
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。
用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。
minute hour day month week command
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
例如:在上午8点到11点的第3和第15分钟执行
命令:3,15 8-11 * * * command
列出当前的执行的定时任务 crontab -l
修改当前的执行的定时任务 crontab -e
删除当前的执行的定时任务 crontab -r
Linux下用户管理
①添加用户
useradd 用户名
②删除用户
userdel 用户名
常用的选项是-r,它的作用是把用户的主目录一起删除。
③修改用户
usermod 用户名
④修改用户密码
passwd 用户名
- -l 锁定口令,即禁用账号。
- -u 口令解锁。
- -d 使账号无口令。
- -f 强迫用户下次登录时修改口令。
注意:普通用户可以修改自己的口令,root用户可以修改所有人的口令
/etc/passwd 存储基本信息
/etc/shadow 存储用户口令
Linux下进程管理
概念:进程就是操作系统正在运行的程序,它是操作系统资源管理的最小单位
ps -aux
##查看所有进程
kill -9 [ID号]
##杀死进程
kill -15 [ID号]
##终止软件
NFS服务器配置(Linux系统之间文件共享)
NFS 是Network File System的缩写,即网络文件系统
/etc/exports NFS的主要配置文件
格式:输出目录 [客户端1选项(访问权限,用户映射,其他)]
输出目录:是指NFS系统中需要共享给客户机使用的目录;
客户端:是指网络中可以访问这个NFS输出目录的计算机
客户端常用的指定方式
• 指定ip地址的主机:192.168.0.200
• 指定子网中的所有主机:192.168.0.0/24 192.168.0.0/255.255.255.0
• 指定域名的主机:david.bsmart.cn
• 指定域中的所有主机:*.bsmart.cn
• 所有主机:*
访问权限选项
• 设置输出目录只读:ro
• 设置输出目录读写:rw
用户映射选项
• all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
• no_all_squash:与all_squash取反(默认设置);
• root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
• no_root_squash:与rootsquash取反;
• anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
• anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
其它选项
• secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
• insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
• sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
• async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
• wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
• no_wdelay:若有写操作则立即执行,应与sync配合使用;
• subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
• no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
nfs 服务器的启动
1. service nfs start/stop/restart 启动/停止/重启
2. service nfs status 服务器状态查询
实例
/home/fzy 192.168.1.0/24(rw) ##192.168.1这个网段的用户可以对fzy文件夹读写操作
1.服务器端使用showmount –e
查询自己共享的nfs文件
2.服务器端使用showmount –a
显示连接上的客户端的目录信息
3.客户端使用showmount -e NFS服务器IP
查询服务器共享的文件
4. mount NFS服务器IP:共享目录 本地挂载点目录
进行文件挂载操作
5. chmod 777 -R /home/fzy/
##修改文件夹的权限,客户端就可以写文件了
6. umount /tmp/fzy/
##卸载nfs共享目录
Samba服务器配置(Linux和Windows之间文件共享)
Samba是SMB的一种实现方法,主要用来实现Linux系统的文件和打印服务。Linux用户通过配置使用Samba服务器可以实现与Windows用户的资源共享
/etc/samba/smb.conf 主要配置文件
1.用vi打开 smb.conf 配置文件 vi /etc/samba/smb.conf
,在末尾添加
[global] #全局参数
workgroup=workgrop
security=user
Host allow=192.168.1.1 #只允许这一台主机使用
Guest allount=nobody #来宾帐号
[homes] #访问根目录权限
comment = Home Directories #描述信息
browseable=yes
[share] #共享的文件夹名称
comment = Shared Folder require password #描述信息
path = /home/share #共享文件夹的路径
browseable = yes #是否在window我的电脑中显示
public = yes #是否在window我的电脑中显示
writable = yes #是否可以写
guest ok=yes #设置匿名用户访问
security 有4个等级share user server domain
- Share:所有用户无须密码帐号
- user:须帐号和密码需要samba服务器
- Server:由域服务器控制
- domain:由另一台域服务器控制器检查帐号密码
2.保存后重新启动samba服务器:sudo /etc/init.d/samba restart
3.打开windows 在文件夹框 输入 \\ip地址\share
,按提示输入用户名密码即可
Linux下FTP服务器的配置
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。
1.检测机器上是否安装ftp服务器 rpm –qa | grep vsftpd
2. rpm -ivh vsftpd-1.1.3-8.i386.rpm
安装FTP服务器
3. 在/etc/vsftpd/路径下会存在以下三个配置文件
vsftpd.conf: 主配置文件
ftpusers: 指定的用户不能访问FTP服务器,这里的用户包括root在内的一些重要用户
user_list: 指定的用户是否可以访问ftp服务器,通过在vsftpd.conf文件中进行配置
anonymous_enable=YES #允许匿名用户登录
local_enable=YES #允许本地用户登录ftp服务器
write_enable=YES #允许用户对服务器执行写入操作
local_umask=022 #设置服务器上本地用户创建文件的权限掩码
dirmessage_enable=YES #启用目录提示消息
xferlog_enable=YES #启用日志文件功能,记录于/var/log/xferlog
connect_from_port_20=YES #主动模式下,是否启用默认的20端口进行数据传输
xferlog_std_format=YES #启用标准的日志格式
listen=NO #vsftpd不是以独立的服务运行,要受到xinetd服务的管控,功能上会受到限制
pam_service_name=vsftpd #虚拟用户使用PAM认证方式
userlist_enable=yes #是否启用userlist_file文件
tcp_wrappers=YES #vsftpd服务器检查/etc/hosts.allow和/etc/hosts.deny中的设置,来决定请求连接的主机,是否允许访问该FTP服务器
allow_writeable_chroot=YES #去除用户主目录的写权限
4.启动FTP服务器 service vsftpd start ##开启ftp服务
5. 客户端访问FTP服务器的方式:
①客户端在浏览器输入:ftp://ip地址
②ftp客户端软件,比如FileZilla,输入ftp服务器IP,用户名,密码,端口:21
③命令行终端:ftp 用户名@ftp服务器IP,或 ftp 127.0.0.1
Linux下shell编程
1.用vi编辑器创建一个 fzy.exe vi fzy.exe
#!/bin/sh
#注释print hello world in the console window
a = "hello world"
echo $a
2.修改权限 chmod u+x fzy.exe
3.执行这个脚本 ./fzy.exe