已迁移
除了上面的liveCD外,系统本身启动引导的时候,在当前系统名称上按e,进入编辑模式(有些系统会进入二级菜单,其中有一项是kernal菜单,对它按e后进入编辑模式),找到倒数第二行(大部分系统都是),内容大概是 linux /boot/vmlinuzxxxxxxx root=xxxxxxxx ro xxxx或者 linux16 /vmlinuxxxxxx root=xxxxxxx ro xxxx 把这一行的 ro(ro single) 删除后改为 rw single init=/bin/bash 按 f10 或者ctrl+x(有些系统按b,仔细看窗口最下面说明)保存后会自动引导进入单用户模式。 进入后可以重置密码,passwd 重置完后执行 exec /sbin/init进入正常系统或者 exec /sbin/reboot 重启进正常系统
返回目录
ifconfig 可用ip addr代替
yum install net-tools ether 后面是mac地址 rx 是收包 tx 是发包返回目录
date -R查时区,北京时间为+800东八区 cp -l /usr/share/zoneinfo/Asia/Shanghai /etc/localtime hwclock -r 查看当前硬件时间 hwclock -w 写入系统时间到bios hwclock -s 把bios时间写入系统 apt install ntp apt install ntpdate ntpdate -u time.nist.gov ntpdate -u time-b.nist.gov 同步时间 hwclock -w 写入硬件 如果ntpdate报错,可以尝试rdate yum install rdate rdate -s time.nist.gov rdate -s time-b.nist.gov返回目录
想省事用nmtui
/etc/sysconfig/network-scripts/ifcfg-xxxx DEVICE=eth0 设置的是哪张网卡 设置netmask=掩码 或者设置prefix=24掩码 设置ipaddr0=ip ipaddr1=ip 设置gateway=网关 设置bootproto=static 固定ip 设置onboot=yes 开机启动网卡 设置DNS1=223.5.5.5 设置DNS2=223.6.6.6 UUID最好不要设置,直接注释掉。 (未测试)创建ADSL连接 rpm -qa |grep rp-pppoe rpm -ivh rp-pppoe* route del default(删除默认路由) adsl-setup (设置连接) adsl-start (连接测试) adsl-status (查看状态)返回目录 wget 可用curl -o代替(最小化安装好像没有wget)
$cd /etc/yum.repos.d/ $mkdir /etc/yum.repos.d/bak ; mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak $wget http://mirrors.aliyun.com/repo/Centos-7.repo $mv Centos-7.repo /etc/yum.repos.d/CentOS-Base.repo $yum install epel-release $wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo返回目录
千万别图省事,直接删除防火墙,有些系统删除防火墙会顺带删除你的网卡 $systemctl disable firewalld 关防火墙 /etc/selinux/config SELINUX=disabled (默认enforcing) $setenforce 0 $getenforce 关闭并查看selinux返回目录
输入 env可查看当前用户环境变量 export可临时更改环境变量
~/.bash_profile>~/.bash_login>~/.profile 用户登录时候执行一次,默认profile会调用bashrc ~/.bashrc(每次打开ssh窗口都执行一次) 自己电脑可以直接设置/etc/profile和/etc/bash.bashrc(bashrc) etc/profile (尽量别动这个,动~/.profile)全局变量,可以用来修改**所有用户**的基础环境变量 可在这里增加环境变量找到以下行 export PATH 改为 export PATH=/xxxx/xxxx:$PATH etc/bash.bashrc(centos7是bashrc 初始化bash配置文件,这个可以动一动) export HISTTIMEFORMAT="%Y.%m.%d %T: " 设置history alias vi=vim alias ll='ls -l' alias la='ls -A' alias grep=grep --color=auto PS1="\u@\h:\w" 默认的是 \u 用户名 \h \H hostname \w 绝对路径 \W 相对路径 \t \T \@ 24/12/ampm时间格式 \d 日期 \s shell \v \V 版本号 \n 换行 \r 回车 \\ 反斜杠返回目录
/etc/ssh/ssh_config /etc/ssh/sshd_config 配置文件以#为注释,用vim打开会非常明显,vi打开的话眼神要求比较高
$ssh -p 5000 user@192.168.1.200 user用户 ssh 访问192.168.1.200的5000端口 etc/ssh/sshd_config(注意还有个叫ssh_config的是客户端配置文件,通常我们更改的是服务端端口sshd_config,以方便远程连接) 更改Port 更改GSSAPIAuthertication no(通过减少验证xxx 让部分连接ssh慢的情况缓解) #PermitRootLogin yes (此项可以禁止root直接登录) #ClientAliveInterval 60 每隔60秒发送一次活动请求 #ClientAliveCountMax 3(次没响应断开远程ssh连接) 客户端端口需要配置 /etc/ssh/ssh_config ServerAliveInterval 20 发送活动请求信号,否则也会断开。返回目录
apt-get install openssh-server 临时 $hostname <新名字> 永久(重启后生效) redhat /etc/sysconfig/network debian /etc/hostname 注意:/etc/hosts 里127.0.0.1不是定义本机hostname的功能,不要轻易改动本条的“localhost”返回目录
useradd passwd
$useradd -g 组 -G 附加组 -d 指定家目录 username 之后用passwd设置密码即可使用 例:useradd -g LHC -G temp01 -d /home/lhc lihaicheng 或者useradd lihaicheng 它的组名是lihaicheng 没有附加组 家目录默认就是 /home/lihaicheng/ 用户名是lihaicheng $passwd username $passwd - -S:查询用户密码的状态,也就是 /etc/shadow 文件中此用户密码的内容。仅 root 用户可用; -l:暂时锁定用户,该选项会在 /etc/shadow 文件中指定用户的加密密码串前添加 "!",使密码失效。仅 root 用户可用; -u:解锁用户,和 -l 选项相对应,也是只能 root 用户使用; --stdin:可以将通过管道符输出的数据作为用户的密码。主要在批量添加用户时使用; -n 天数:设置该用户修改密码后,多长时间不能再次修改密码,也就是修改 /etc/shadow 文件中各行密码的第 4 个字段; -x 天数:设置该用户的密码有效期,对应 /etc/shadow 文件中各行密码的第 5 个字段; -w 天数:设置用户密码过期前的警告天数,对于 /etc/shadow 文件中各行密码的第 6 个字段; -i 日期:设置用户密码失效日期,对应 /etc/shadow 文件中各行密码的第 7 个字段。返回目录
fstab mount
/etc/fstab 第一列是硬盘ID或者硬盘名(UUID用blkid命令查看或者ll /dev/disk/by-uuid/) 第二列硬盘挂载点 第三列文件系统类型 第四列参数包括 auto: 系统自动挂载,fstab默认就是这个选项 defaults: rw, suid, dev, exec, auto, nouser, and async. noauto 开机不自动挂载 nouser 只有超级用户可以挂载 ro 按只读权限挂载 rw 按可读可写权限挂载 user 任何用户都可以挂载 请注意光驱和软驱只有在装有介质时才可以进行挂载,因此它是noauto 第五列dump备份选项 0不备份 1备份 第六列挂载检查顺序 0不检查 1是根目录 正常检查从2开始 特例 一个目录挂载另一个目录 /home/mnt1000/nextcloud /opt/docker none bind 0 0 文件系统none 挂载参数bind $mount mount /dev/sda /mnt 实现dev/sda的内容覆盖了目录/mnt 挂载samba### mount -t cifs //192.168.1.201/lhc /mnt -o username=xxx,password=xxxx,port=12345,dir_mode=0777,file_mode=0777,rw 其中参数包括用户名,密码,服务端口,文件夹权限,文件权限,读写权限。 /etc/fstab里设置 //192.168.1.201/lhc /mnt cifs auto,username=username,password=xxxxx 0 0 #需要安装cifs-utils,而且username和password后面的内容不能用引号 覆盖挂载 mount --bind /目录1 /目录2 实现都访问目录1的目的,目录2被屏蔽了 umount /目录2可以解除挂载 umount 磁盘名或挂载点 卸载磁盘返回目录
fdisk parted
partprobe 更新分区表用 fdisk 只能创建mbr分区,且磁盘不大于2T $fdisk -l 列出所有硬盘信息 $fdisk /dev/sdc 进入fdisk操作界面 m列出所有功能,基本都能看懂 d删除分区 n新建功能 t转换分区类型,通常在linux新建分区后会指定为linux类型代码83,需要手动指定为hpfs/ntfs/exfat类型,代码为7 parted 可以创建gpt分区,理论上磁盘空间不限 $parted /dev/sdc 进入parted操作界面 print list 查看所有硬盘信息 print 查看当前硬盘信息 mklabel或者mktable 创建一个磁盘分区表 gpt msdos mkpart 创建分区 primary 主分区 extended 扩展分区 logical 逻辑分区 例: mkpart primary xfs 0% 100% 是把这个磁盘格式化出一个主分区并格式化成xfs(从0-100全部空间) mkpart 也可以不写参数,之后会有提示符输入分区类型,分区开始和分区结束 mkfs 格式化分区(貌似在我的centos7上此条不好使,据说这玩意就支持到ext2,真丢脸) 例: mkfs 1 ext2 rm 删除分区 mkfs $mkfs.xfs /dev/sdc1 格式化sdc1为xfs格式 $mkfs.vfat -F 32 /dev/sdc1 格式化成fat32 $mkfs.ext4 -m 0.05 /dev/sdc1 格式化成ext4 inode数量为默认的5%这样做可以加快格式化速度(inode数量决定了这个分区文件数量上限,一般谁也会把整个文件用小于1k的东西填满) $mkfs.ntfs -f /dev/sdb1 格式化成ntfs -f快速格式化,否则很慢返回目录
网页连接
一般格式 命令 选项 参数 大多数命令可以用--help 寻求简单帮助 help中[]是可选内容 括号后的...是可以有多个的意思 竖线 | 表示他们之间只能存在其中一个 <>表示变量数据例如文件名,时间数字等 exit和ctrl+D都能退出shell tab可以补全文件名,两次tab可以列出文件名 history可以查看历史命令,!+数字 可以再次执行该命令 ,!+命令可以执行最近一个完整命令语句 ctrl a 回到开头 ctrl e 回到末尾 ctrl u 光标到头部内容删除 ctrl k 光标到尾部内容删除 ctrl 方向键 一次移动一个单词 ctrl r 搜索history中的该命令apt-get install curl
查询本公网ip
df 显示文件系统中磁盘空间使用情况 df -h 人性化显示磁盘空间使用情况
返回目录 显示目标目录和其子目录已使用空间 du -s 显示目标文件总大小 du -h 人性化显示 通常用法为 du -sh *
显示内存使用情况
查询网络连接状态 netstat -lantup 基本能显示所有需要的网路状态 -a (all)显示所有选项,默认不显示LISTEN相关 -t (tcp)仅显示tcp相关选项 -u (udp)仅显示udp相关选项 -n 拒绝显示别名,能显示数字的全部转化成数字。 -l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名 -r 显示路由信息,路由表 -e 显示扩展信息,例如uid等 -s 按各个协议进行统计 -c 每隔一个固定时间,执行该netstat命令。
ps -e 显示所有进程 ps -f 全格式显示 ps -a 显示所有用户的所有进程 ps -u 按用户名和使用时间排序显示 ps -x 无终端的进程也显示 通常用ps -ef 和ps -aux
树状结构显示进程间关系
类似于任务管理器
uname -a 查看操作系统信息
类似于win任务管理器里性能页面cpu负载
查看哪些用户登录了本系统 [lhc@old ~]$ who lhc pts/0 2019-09-02 11:21 (210.74.107.191) 如果想踢掉一个用户lhc,执行,权限不够请切root pkill -kill -t pts/0 或者 fuser -k /dev/pts/0
fuser安装 yum install psmisc
例如 watch -n 1 -d netstat -ant -n:指定指令执行的间隔时间(秒); -d:高亮显示指令输出信息不同之处; -t:不显示标题。
返回目录
$cp -av /源文件 ... /目标目录或文件名 a带属性拷贝 v显示过程 $cp -l 复制快捷方式scp -P port path/filename user@hostname&ip:path/filename scp -P port user@hostname&ip:path/filename path/filename scp -prv相当于cp -av 因为不存在软硬连接问题,所以不需要-d参数 类似于cp,可以远程copy
scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root 输入账号密码就可以了,类似于ssh远程连接https://www.cnblogs.com/senior-engineer/p/6211247.html 返回目录
推荐固态硬盘bs=64k烧录系统最快,其他未测试 新开窗口root下输入watch -n 5 pkill -USR1 ^dd$ 可以查看进度 $dd if=/dev/hdb of=/dev/hdd 复制磁盘 $dd if=/dev/hdb of=/root/image 备份磁盘到镜像 $dd if=/root/image of=/dev/hdb 还原镜像到磁盘 $dd if=/dev/hdb | gzip > /root/image.gz 压缩备份磁盘镜像 $gzip -dc /root/image.gz | dd of=/dev/hdb 还原压缩镜像到磁盘 $dd if=/dev/hda of=/root/image count=1 bs=512 备份磁盘镜像为iso $dd if=/dev/cdrom(hdc) of=/root/cd.iso 光盘提取到镜像 $dd if=/dev/urandom of=/dev/hda1 抹除磁盘信息 $dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file 测试磁盘写速度 $dd if=/root/1Gb.file bs=64k | dd of=/dev/null 测试磁盘读速度 创建swap 第一步:创建一个大小为256M的文件: #dd if=/dev/zero of=/swapfile bs=1024 count=262144 第二步:把这个文件变成swap文件: #mkswap /swapfile 第三步:启用这个swap文件: #swapon /swapfile 第四步:编辑/etc/fstab文件,使在每次开机时自动加载swap文件: /swapfile swap swap default 0 0返回目录 修改/dev/sdb1下的/etc/fstab(用blkid查UUID) $grub2-install /dev/sdb (假如挂载盘为sdb) $grub-mkconfig $update-grub
kill -9 强制杀死进程
返回目录
没什么好说的 一般不带参数 $mv 源文件 目标文件shutdown -r 重启 shutdown -h 关机 halt 等同于shutdown -h reboot 等同于 shutdown -r
返回目录
$tar -zcvpf linuxbak.gz / --exclude=linuxbak.gz --exclude=/proc --exclude=/lost+found --exclude=/tmp --exclude=/sys --exclude= /mnt --exclude=/run $tar -xvpzf linuxbak.gz -C / $mkdir /proc $mkdir /tmp $mkdir /sys $mkdir /lost+found $mkdir /mnt $mkdir /run -c :建立一个压缩文件的参数指令(create 的意思); -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 注意:在参数中,c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。 -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩? -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程! -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数! -p :使用原文件的原来属性(属性不会依据使用者而变) -P :(大写)可以使用绝对路径来压缩! -N :(大写)比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中! -u:更新压缩包内容。 -C:(大写)目的目录,即切换到指定的目录 --exclude FILE:在压缩的过程中,不要将 FILE 打包!返回目录
grep awk sed
返回目录
https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html
默认分隔符为空格和tab,所有参数命令都以'括起来 $0代表所有列,$1代表第一列 以此类推 当有判断语句时,默认输出$0 例如$1>5 /root*/等内容 {}内语句用';'分割,参数用','分割,通常来说只用一个print语句,不用分割. $ps -ef | awk '{print $1}' 打印出ps -ef 里第一列 也就是进程名列 $cat /etc/passwd |awk -F ':' '{print $2"and" $3}' 指定分隔符为冒号:,也可以写成 -F:(F和:中间不加空格),并打印出第二列和第三列,中间插入字符串 and $cat /etc/passwd|awk -F: '/root/{print $1"\t"$2}' 大括号外可以接一些判断语句等,//中的内容代表搜索,支持正则表达式搜索 $cat /etc/passwd | awk -F: 'BEGIN {print "name,shell"}{print $1","$7} END{print"blue,/bin/nosh"}' BEGIN 和END参数 可以在列表首行和末行添加内容,理解为页眉页脚吧 内置参数 ARGC 命令行参数个数 ARGV 命令行参数排列 ENVIRON 支持队列中系统环境变量的使用 FILENAME awk浏览的文件名(当通过管道符来使用时此项为-) FNR 浏览文件的记录数 FS 设置输入域分隔符,等价于命令行 -F选项 NF 浏览记录的域的个数 NR 已读的记录数 OFS 输出域分隔符 ORS 输出记录分隔符 RS 控制记录分隔符 $ls -l |awk 'BEGIN{count=0}{count++;print count,"-and-"$0}' 在BEGIN中自定义一个变量,用++方法统计行数 $ls -l |awk 'BEGIN{size=0}{size+=$5}END{print size/1024"KB"}' 统计文件夹中文件总大小(此方法不统计文件夹内大小,只统计第一级目录下文件大小,文件夹按照一个块大小4096计算)返回目录
(https://www.cnblogs.com/edwardlost/archive/2010/09/17/1829145.html)
$ls -l |sed -n '/1.txt/p' -n 表示不打印输入行 // 表示搜索 p 表示打印结果 $ls -l |sed '1,3d' $ls -l |sed '/1.txt/d' $ls -l |sed '$d' 各种删除行,1-3行,包含1.txt行,最后一行 $ls -l |sed '1,20s/^My/Your/gp' $ls -l |sed '1,5s*1.txt*0000*gp' $ls -l |sed '1,5sA1.txtA0000Agp' s/ 表示用Your替换My ^ 表示句首 $表示句尾 /g 表示整句,如果不加则只替换一行中的第一个 s/后面可以接各种符号当做分隔符,不包括回车和\ 可以是字母,数字,符号(为了统一,最好还是使用/) $ls -l |sed -e '1,3d' -e '1,5s/1.txt/0000/g' -e 可以执行多条sed语句,其中1,5s总是按照原文件的行号计算的 第一个语句的结果会传影响第二条语句 $ls -l |sed '/1.txt/r 2.txt' /r 表示读取2.txt 插入到1.txt行后,如果有多个结果每行后都插入一遍 $ls -l |sed '/1.txt/w 2.txt' /w 把sed结果写入2.txt文件中 可以理解成命令-n 后接一个>2.txt $ls -l |sed '/1.txt/a\ aaaaaa\ bbbbbb' a\ 在所选行后追加行,多行时用\结尾以输入下一行,最后一行用'结尾即可,如多选则都追加一 i\ 同理,替换行和插入行 c\ 与他们不同在于所选行如果是连续行则只算一行,例如1,5c则不会连续写入5遍,但是当使用/xx/筛选时不论是否连续都挨个替换 $ls -l|sed 'y/4096/xxxx/' y/ 按照一对一关系把字符全部替换,不用接/g,不建议使用,通常替换用s/比较保险,它也具有s/的特性,可以用各种符合替换/返回目录
xargs -I {} ls {} 参数是i的大写字母作用是把输入内容按行放入后面命令的括号位置 但是当ls输出一行多个内容的时候,它却是一个一个内容放入的,机制很奇怪,貌似是自动识别两个字符之间的关系,保险的办法是用-n1取代它 $ls |xargs -n1 cat 按换行符制表符空格区分个数,一个一个输出给后面的命令 假如a.txt b.txt c.txt结果如下 root@user-PC:~/Downloads# ls|xargs -n1 cat aaa bbb ccc返回目录
想起啥写啥
$pwd 显示当前路径 $cd 进入目录,cd ~回家,cd ..向上,cd -后退 $touch 更新一个文件的访问时间,也可以用来创建一个文件 $mkdir 新建文件夹 $chmod 修改文件权限 $date 显示时间命令 可以用+后接%x指定格式 date "+%Y-%m-%d %H:%M:%S" 年-月-日 时:分:秒 $wget 下载接网址 $ls -l 列出详细信息 ls命令 第一列是文件权限 第二列文件的话指硬连接数量(inode数)第二列是文件夹的话指文件夹下文件数量 $ls -lt 按照更新时间排序 $ls -lS 按照大小排序 加上 rh是反向和humen 即 ls -ltrh 按更新时间从小到大 ls -lSrh 按大小从小到大 首先使用 ls -i /boot/group/group.conf查找出inode节点,然后使用: find / 2> /dev/null -inum 131092(查找inode节点号) 根据切点信息 找出所有硬链接文件 $tr命令 tr [a-z] [A-Z]通常用来大小写转换返回目录
yum install epel-release yum install dnf dnf repolist 显示可用的dnf软件库 dnf repolist all 显示所有dnf软件库 dnf list 列出所有本机软件库中的可用软件包 dnf list installed 列出已安装的软件包 dnf list available 列出所有可用软件包(包括本机没有的软件库) dnf search xxx 在软件库中搜索软件包名称 dnf provides /bin/bash 查找一个软件的提供者 例子中查找的是/bin/bash dnf info xxx 查看软件包详情 dnf install xxx 安装 dnf update xxx 升级软件 dnf check-update 检查系统中安装的软件包是否有更新 dnf update 升级所有可用软件包 dnf upgrade 按照yum的说法,是只升级软件,不升级内核和配置 dnf remove xxx dnf erase xxx 删除xxx dnf autoremove 删除孤立无用软件包 dnf clean all 清除dnf缓存文件 dnf help clean 获得dnf clean命令的帮助 dnf help 获得所有dnf命令的帮助 dnf history 相当于linux的history dnf grouplist 列出dnf的所有软件包组 dnf groupinstall 'xxxxx' 安装软件包组 dnf groupupdate 'xxxxx' 升级一个软件包组 dnf groupremove 'xxxxxx' 删除一个软件包组 dnf distro-sync 更新所有软件包到最新稳定版 dnf reinstall xxx 重新安装xxx dnf downgrade xxxx 回滚版本返回目录
samba ftp nfs
yum install samba samba-client / apt-get install samba ; apt-get install smbfs
/etc/samba/smb.cnf pdbedit -L (查看系统中samba用户) smbpasswd -a user (系统中现有用户,smb的密码和系统密码分别设置) smbpasswd -x user (删除一个samba用户) mkdir /home/share (配置文件中[lhc]中path=后面的路径) chmod 777 /home/share mount -t cifs //192.168.1.201/lhc /mnt -o username=xxx,password=xxxx,port=12345 #需要安装cifs-utils smb ports=1234 #指定服务端口 [最简配置] [global] [lhc] #共享目录 path=/home/share #指定可以连接的用户用逗号分隔,或者用@user指定整个用户组还有%s不知道啥意思 valid users=user,lhc #指定谁可以写入内容,其他用户只读 write list=user [扩展内容]据说有200多条选项,惹不起惹不起 # See smb.conf.example for a more detailed config file or # read the smb.conf manpage. # Run 'testparm' to verify the config is correct after # you modified it. [global] #此设置中,security为必选项,其他不重要 security = user #这里指定samba的安全等级。关于安全等级有四种: share:用户不需要账户及密码即可登录samba服务器 user:由提供服务的samba服务器负责检查账户及密码(默认) server:检查账户及密码的工作由另一台windows或samba服务器负责 domain:指定windows域控制服务器来验证用户的账户及密码。 interfaces = 192.168.0.250 #通过哪个网卡共享smb,可以是ip也可以是网卡名,例如 eth0 workgroup = 2607 #工作组设定,如果设定错,不影响通过\\ip连接smb,但是设定对了的话,你的队友可以在网上邻居里找到smb服务器。 security = user #加密方式, passdb backend = smbpasswd #smb的账号密码存储在哪个数据库,理论上应该写tdbsam?? #printing = cups #打印机类型,不知道咋设置 #printcap name = cups #打印机配置文件位置,设置错不影响其他设置,一般设置成/etc/printcap #load printers = no #载入打印机 #cups options = raw #raw设定可以允许你在其他机器上启用打印机驱动? 没看懂这是个什么锤子,反正打印机相关的 netbios name = erliulingqi #设定一个smb服务器名字,不是hostname ,最多15字符,不要跟workgroup同名 log file = /var/log/samba/%m.log #日志路径 max log size = 50 #单个日志大小,单位KB #[homes] #此设置中,path,valid users,writable(read only)为必填项,因为没有path和valid users 所以这个是废的,下面的[share]能用 #comment = 2607 #共享描述 #valid users = %S, %D%w%S #browseable = No #read only = No #inherit acls = Yes #是否继承访问控制列表??? [share] comment = share all path = /home/wow/ #共享路径 valid users = wow #可以登陆的用户名逗号分隔多个用户 #public = yes #此选项只有[global]下的security = share才有效 是否共享,如果为是,则不用输入用户名密码 可以直接访问 browseable = yes #网上邻居是否能看见你 writable = yes #如果writable = no 可以指定用户可写 write list = wow 像这样 #是否允许写入,和read only同功能,比read only高一级,可以无视read only printable = no #是否开启打印机共享 create mask = 0777 #新建文件权限 directory mask = 0777 #新建目录权限 force group = nogroup #哪些组的用户可以访问此共享,nogroup是所有人的意思 force user = nobody #同上 available = yes #激活此共享 #---------------------- #下面是打印机选项,老子没打印机,抱住自己哭::>_<:: #------------------------- #[printers] # comment = All Printers # path = /var/tmp # printable = Yes # create mask = 0600 # browseable = No # #[print$] # comment = Printer Drivers # path = /var/lib/samba/drivers # write list = @printadmin root # force group = @printadmin # create mask = 0664 # directory mask = 0775yum install vsftpd / apt-get install vsftpd (https://www.cnblogs.com/acpp/archive/2010/02/08/1666054.html)
ftp简单配置
返回目录 ftp简单操作方法 ftp ip 连接后输入账号密码 get filename 下载 mget filename* 多个文件下载 cd dirname 进入目录 bye 退出 put/send 发送文件到服务器 !接命令,可以执行本地命令 部分系统前加l可执行本地命令 例如 lls lcd等
vsftp默认配置 #/etc/vsftpd.conf *************************** 最简配置 *************************** #基本设置 listen=YES listen_ipv6=NO file_open_mode=0666 listen_port=21 pasv_enable=yes pasv_max_port=25 pasv_min_port=23 connect_from_port_20=NO write_enable=yes #本地用户访问设置 local_enable=YES local_umask=022 local_root=/opt/ftp #匿名用户访问设置 anonymous_enable=yes anon_umask=022 anon_upload_enable=yes anon_mkdir_write_enable=yes anon_other_write_enable=yes anon_root=/opt/anonftp #此文件夹属性设置a-w否则可能会报错,在文件夹内设置777文件夹操作,原因是新版ftp不允许某些根目录有写权限。 #扩展内容,包括匿名访问,访问用户限制等 userlist_enable=no dirmessage_enable=YES use_localtime=YES ************************************ connect_from_port_20=no #是否开启主动模式,除非局域网,否则no file_open_mode=0666 #文件权限(配合掩码)0777有问题,我使用put上传文本后被清空,不清楚原因 local_umask=022 #写入内容权限掩码 local_enable=yes #允许本地用户连接 write_enable=yes #允许写入操作 listen=yes #ipv4监听,还有一个listen_ipv6是ipv6版本,此两项默认都为no,必须开启一个才能正常启动服务 local_root=/opt/ftp #进入后的目录,如不指定则为根目录,登录账号不可对此目录有写权限,否则不能连接。 listen_port=60021 #监听端口 pasv_enable=yes pasv_max_port=60025 pasv_min_port=60023 #是否开启被动模式,被动模式数据端口范围 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ #userlist_enable=YES/NO(NO) #userlist_deny=YES/NO(YES) userlist_file=/etc/vsftpd/user_list #当userlist_enable打开时,本文件内用户不能访问ftp,当userlist_deny=no时,只有本文件内用户可以访问 #/etc/ftpusers chroot_local_user=yes #是否限制用户活动范围为local_root目录 ****************************** 匿名设置 ****************************** 重要anonymous_enable=YES/NO(YES) #匿名访问,此用户用户名ftp ,密码空,访问路径/var/ftp/ 不可离开家目录,只读 重要anon_umask=022 #匿名用户文件掩码 必须是write_enable=YES/NO(YES) #本地用户登陆后是否可写(跟匿名用户无关) 重要anon_mkdir_write_enable=YES/NO(NO) #匿名用户新建目录权限,前置条件是write_enable=YES,上级目录有写权限 重要anon_upload_enable=YES/NO(NO) #匿名用户上传文件权限(不包括文件夹),前置条件是write_enable=YES,上级目录有写权限 重要anon_other_write_enable=YES/NO(NO) #匿名用户修改和删除权限。前置条件是write_enable=YES,上级目录有写权限。 #这条和以上三条互相不冲突,即使没有上传权限也不影响改名和删除权限。 anon_root=/var/ftp #匿名登陆家目录,此目录设置权限为a-w否则某些版本ftp报错 chown_uploads=YES/NO(NO) #匿名用户上传文件(非目录)是否更改属主 no_anon_password=YES/NO(NO) #/etc/ftpusers 默认此文件下的用户不能登ftp #匿名登录是否显示密码框? ftp_username=ftp #匿名登录默认用户名(默认是anonymous) ——————————————————————————————————————— anon_world_readable_only=YES/NO(YES) #匿名用户下载可阅读文档?那和匿名用户默认能下载有啥区别? deny_email_enable=YES/NO(NO) #若是启动这项功能,则必须提供一个档案/etc/vsftpd/banner_emails,内容为email address。若是使用匿名登入,则会要求输入email address,若输入的email address 在此档案内,则不允许进入。默认值为NO anon_max_rate=0 #最大传输速度,默认为0,不限速,单位是Byte,不可指定单位。 ****************************** 本地用户设置 ****************************** local_enable=YES/NO(YES) #是否允许本地用户访问,访问路径为该用户家目录,可离开家目录访问该用户在系统中有权限访问的目录,并可根据系统权限进行上传下载。 chroot_local_user=YES/NO (NO) #是否拒绝用户访问家目录上级目录 chroot_list_enable=YES/NO (NO) #是否允许chroot权限的例外 chroot_list_file=/etc/vsftpd.chroot_list #chroot权限例外名单 write_enable=YES/NO(YES) #登录用户是否可写 local_umask=077 #登录用户上传文件掩码,默认077建议022 ******************************* 全局用户设置 ******************************* file_open_mode=0666 #登录用户上传文件默认权限,由此减去local_umask或者anon_umask可得文件权限为600 **用户权限** userlist_enable=YES/NO(NO) #访问名单启用 userlist_deny=YES/NO(YES) #列表拒绝,当yes时,列表内被拒绝;当no时列表外被拒绝。 userlist_file=/etc/vsftpd.user_list #userlist文件路径,内容每行为一个用户名,如果找不到文件,则拒绝所有连接。 /etc/ftpusers #此文件内的用户名也不可登录ftp,且在配置文件中没有开关,更改之前ftpusers和userlist_file内容是一样的。 **数据连接** ascii_upload_enable=YES/NO(NO) ascii_download_enable=YES/NO(NO) #ftp默认使用二进制方式传递数据,启用此选项改为ascii方式。 local_max_rate=0 #最大传输速度,默认为0,不限速,单位是Byte,不可指定单位。 accept_timeout=60 connect_timeout=60 data_connection_timeout=120 idle_session_timeout=300 #简单理解为被动连接、主动连接、数据传输、无操作挂机超时时间,单位都是秒。 listen_port=21 #默认监听端口21,可以改,外网映射端口千万别忘了映射这货。 connect_from_port_20=YES/NO(NO,有争议) #port模式下指定20为数据传输端口(主动模式)。 ftp_data_port=20 #port模式下指定20为数据传输端口(主动模式),前置条件connect_form_port_20=YES。 pasv_enable=YES/NO(YES) #是否启用被动模式。 pasv_max_port=0 pasv_min_port=0 #指定被动模式下端口范围,利用此功能可以映射到外网建立ftp连接。 listen=YES/NO(YES) #是否独立监听进程,尽量选是,因为部分功能只在独立进程下有效。 max_clients=0 #最大连接数 max_per_ip=0 #单个ip最大连接数 listen_address=(none) #默认监听所有ip,指定ip后只有该ip可以连接ftp。 **日志** xferlog_enable= YES/NO(YES) xferlog_file=/var/log/vsftpd.log #上传下载日志 log_ftp_protocol=YES|NO(NO) #启用此项所有ftp请求和响应都被记录。 **欢迎语** dirmessage_enable=YES/NO(YES) #欢迎语设置,默认开启,当用户进入每个目录时都会检测是否存在.message这个文件,如果有,则在屏幕显示其内容作为欢迎语 message_file=.message #可以通过此选项更改欢迎语文件名 banner_file=/etc/vsftpd/banner #登录欢迎语,当登录ftp时显示该文件内容,文件可在此选项中指定路径,如果没找到该文件则不显示登录欢迎语。 ftpd_banner=Welcome to BOB's FTP server #同上一个选项一样,也是登录欢迎语,此选项为字符串形式欢迎语。 **************************************** **************************************** **手动设置** -----------匿名用户设置------------------ chown_username=username(自己改名) #匿名用户上传文件(非目录)的属主名,前置条件chown_uploads=YES anon_umask=077 #匿名用户上传文件权限掩码,即077时上传文件权限为700 banned_email_file=/etc/vsftpd/banner_emails #email文件路径,前置条件deny_email_enable=YES --------------本地用户设置--------------- local_root=/home/username #默认用户登录目录为自己的家目录,可用此项更改本地用户登录ftp目录 user_config_dir=/etc/vsftpd/userconf #单独定义用户配置,当一个用户登后,会到指定目录中找到与用户名相同的文件,读取其中配置,该文件内容会覆盖默认配置,但是部分选项不能定制,例如listen_address, banner_file, max_per_ip, max_clients, xferlog_file等。返回目录
yum install nfs-utils yum install rpcbind apt-get install nfs-kernel-server apt-get install nfs-common /etc/exports 末行加入 /home/song/nfs *(rw,sync,no_root_squash,no_subtree_check) 新建目录/home/soong/nfs $chmod 755 /home/song/nfs $systemctl restart nfs NFS v4.2以后不需要rpcbind支持 $systemctl enable rpcbind $systemctl enable nfs / nfs-server $firewall-cmd --zone=public --permanent --add-service=rpc-bind $firewall-cmd --zone=public --permanent --add-service=mountd $firewall-cmd --zone=public --permanent --add-service=nfs返回目录
应对报错 ERROR: xxxx request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) https://www.daocloud.io/mirror curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io 应对TLS handshake timeout /etc/docker/daemon.json 内容改为 {"registry-mirrors": ["https://fzhifedh.mirror.aliyuncs.com"]} 安装docker ubuntu wget -qO- https://get.docker.com/ | sh /etc/docker/daemon.json { "registry-mirrors": ["http://hub-mirror.c.163.com"]} systemctl start docker centOS yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache fast yum -y install docker-ce centos和ubuntu安装docker-compose sudo apt install -y python3 python3-pip sudo pip3 install -U pip sudo pip3 install docker-compose docker-compose -f nextcloud.yml up -d 创建docker,参照nextcloud.yml配置文件 docker-compose stop 停止容器 docker-compose start 启动容器 docker-compose down 删除容器和镜像 $docker image ls $docker ps 查看运行中的容器 $docker ps -a 查看所有容器 $docker rm 删除容器(名字或者id) $docker rmi 删除镜像(只能ID) $docker save image > name.tar 保存镜像到一个tar包以供迁移到其他计算机 $docker load name.tar 把tar包载入到docker系统里变成一个镜像 $docker pull 网址 拉取一个docker镜像 $docker run -p 本地端口:容器端口 -it -e XXX="xxx"-v 本地路径:容器路径 --name 容器名 -d 镜像名 命令 -p 端口映射 -it 交互模式运行容器 -e设置容器环境变量 --name 命名容器 -d后台运行 -v 路径映射 一般新建seafile用-p映射端口 --name 命名容器 -d 后台 $docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2 commit 提交 -m="描述内容" -a="作者" 容器ID(docker ps可得) 镜像名:版本 (镜像名必须小写) $docker exec -it 容器名 命令(/bin/bash) 执行容器中的命令,一般执行/bin/bash 就行了 /var/lib/docker/containers/容器ID 容器的配置文件包含两个json文件 docker update --restart=on-failure:2 容器ID --restart参数有3个可选值 : no,on-failure,always返回目录
$docker run -d --name seafile -v /opt/seafile-data:/shared -p 80:80 seafileltd/seafile:latest $docker exec -it seafile bash /opt/seafile/seafile-server-latest/reset-admin.sh增加管理员 访问本地80口即可连接 网页设置页面主要是是SERVICE_URL和FILE_SERVER_ROOT如果不是默认80都要带端口号返回目录
docker-compose.yml#关于nextcloud的配置文件 version: "3" services: db: image: mariadb restart: always volumes: - /opt/docker/nextcloud/db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_PASSWORD=nextcloud - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud app: image: nextcloud restart: always ports: - 80:80 links: - db volumes: - /opt/docker/nextcloud/www:/var/www/html 在该配置文件下执行 docker-compose up -d 创建一个容器组实现nextcloud xxxx/www/config/config.php 下加入其他访问方式 例如加入一个域名访问1-2607.xyz 'trusted_domains' => array ( 0 => '174.137.48.107:60004', 1 => '1-2607.xyz:60004', ), 进入界面后输入账号密码,数据库选择mysql 数据库选项输入内容为 nextcloud nextcloud nextcloud db返回目录
yum install mlocate apt install mlocate locate [ -参数] <filename> -b, --basename 仅匹配路径名的基名称(我理解是只显示文件名匹配,不显示路径匹配) -c, --count 只输出找到的数量 -d, --database DBPATH 使用DBPATH指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db -e, --existing 仅打印当前现有文件的条目 -L, --follow 当文件存在时跟随蔓延的符号链接 (默认) -h, --help 显示帮助 -i, --ignore-case 忽略大小写 -l, --limit, -n LIMIT LIMIT 限制为 LIMIT项目的输出 (或 计数) -m, --mmap 忽略向后兼容性-P, --nofollow, -H 当检查文件时不跟随蔓延的符号 -0, --null null 输出时以 NUL 分隔项目 -S, --statistics 不搜索项目,显示有关每个已用数据库的统计信息 -q, --quiet 安静模式,不会显示任何错误讯息 -r, --regexp REGEXP 使用基本正则表达式 --regex 使用扩展正则表达式 -s, --stdio 忽略向后兼容性 -V, --version 显示版本信息 -w, --wholename 匹配整个路径名(默认)返回目录
tree -L 2 只看两级目录 tree -d 只看目录 tree -sh 查看目录和文件大小(human方式)返回目录
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
返回目录
yum install httpd apt-get install apache2
配置文件 /etc/httpd/conf/httpd.conf ServerRoot 服务目录 ServerAdmin 管理员邮箱 User 运行服务的用户 Group 运行服务的用户组 ServerName 网站服务器的域名 DocumentRoot 网站数据目录 Listen 监听的IP地址与端口号 DirectoryIndex 默认的索引页页面 ErrorLog 错误日志文件 CustomLog 访问日志文件 Timeout 网页超时时间,默认为300秒 网站目录 /var/www/html 访问日志 /var/log/httpd/access_log 错误日志 /var/log/httpd/error_log返回目录
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
wget http://nginx.org/download/nginx-1.6.2.tar.gz
./configure make && makeinstall
返回目录
yum install mariadb mariadb-server mariadb-libs mariadb-devel
apt-get install mysql-server mysql-client
apt-get install mariadb-server mariadb-client
返回目录
apt-get install php7.1 php7.1-common php7.1-fpm php7.1-dev
apt-get install php7.1-mbstring php7.1-xml