从零开始学Linux[二]:常用操作:用户组、进程、网络、ssh、定时任务、Screen命令
2016-03-10 11:03 牛仔裤的夏天 阅读(659) 评论(0) 编辑 收藏 举报第一节,主要介绍一些简单命令,这节介绍一些日常操作。
1.创建用户组和用户
sudo groupadd workgroup
sudo useradd -G workgroup lucy
sudo passwd lucy 回车输入口令
sudo useradd -m john 添加用户的同时指定主目录
sudo useradd tom 添加用户时不添加主目录
(login out 后,选择tom,输入密码 由于没有主目录,登陆失败,按Ctrl+Alt+F1(或F2)进入1号或2号控制台,输入tom,输入密码,可 正常登陆。按Alt+F7回到终端)
history 历史命令
history 10 最近的十条命令
users查看所有用户
sudo userdel lewis
sudo userdel -r tom 删除用户同时删除主目录
sudo usermod -l mike -d /home/mike -e 12/30/10 tom 将tom用户更改为mike
sudo id zhang 查看用户信息
id 查看当前登陆用户的信息
sudo cat /etc/sudoers 指定用户可以执行的特权命令 文件内容如下:
……
root ALL=(ALL:ALL) ALL //root用户可以在任何机器上以任何身份来执行任何命令
%admin ALL=(ALL) ALL //admin用户组的中户可以以任何身份执行任何命令(安装时指定的用户名属于admin组)
cd /etc :
ls passwd 除用户信息及口令外的信息保存于此
ls shadow 用户信息及用户口令保存在此
cat passwd 中 lucy:x:1001:1002::home/lucy:/bin/sh 用户、已设置密码、用户id、用户组id、主目录、登陆shell
cat shadow 中 密码用md5加密
cat group 中 lucy:x:1002: 用户、密码、用户组id、当前组的组成员
2.软件包管理
dpkg -l | grep qq 查找名称包含qq的软件包
sudo dpkg -r linuxqq 删除qq应用
dpkg -S openssh 查看openssh安装时带来哪些软件
dpkg --remove openssh 删除openssh相关的软件包
3.磁盘管理
sudo mkdir /mnt/mycdrom 创建挂载介质目录
sudo mount /dev/cdrom /mnt/mycdrom 挂载光盘到mnt下的mycdrom目录
sudo umount /dev/cdrom 卸载光盘(,先将目录改为光盘上一级或更上级)
格式:mount [-参数] [设备名称] [挂载点]
mount [-t vfstype] [-o options] device dir
1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型常用类型有:
光盘或光盘镜像:iso9660
DOS fat16文件系统:msdos
Windows 9x fat32文件系统:vfat
Windows NT ntfs文件系统:ntfs
Mount Windows文件网络共享:smbfs
UNIX(LINUX) 文件网络共享:nfs
2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有:
loop:用来把一个文件当成硬盘分区挂接上系统
ro:采用只读方式挂接设备
rw:采用读写方式挂接设备
iocharset:指定访问文件系统所用字符集
3.device 要挂接(mount)的设备。
4.dir设备在系统上的挂接点(mount point)。
cat -n /etc/fstab 查看配置文件
df查看挂载信息
df -t ext3 查看以ext3格式挂载的磁盘
fsck /dev/sdb 修复文件系统
sudo mkfs -t ext3 /dev/sdb1 格式化硬盘(在硬盘上建立文件系统)
sudo mkfs -t ext3 /dev/sdb1 -c 检测坏的块
gzip mvhello 压缩mvhello文件为mvhello.gz
sudo gunzip mvhello.gz 解压缩mvhello.gz文件 (gzip -d)
gzip -l mvhello.gz 查看压缩率
gzip -t mvhello.gz 检测压缩文件的完整性(是完整的,无信息)
gzip -tv mvhello.gz 检测压缩文件的完整性(完整时仍然输出信息)
tar -cvf example.tar ./ 将当前文件打包到example.tar中 cvf(c创建tar文件、v输出详细打包过程、f打包文件的名称)
tar xvf example.tar 解压包
tar -cwvf example2.tar 压缩给提示
tar -czvf ex3.tar.gz 将归档文件打包
tar -xzf ex3.tar.gz 解压缩文件再解开打包文件
ls /dev | grep sd 查看所有以sd开头的设备名
sudo fdisk /dev/sdb 进入fdisk命令行状态
4.进程管理
vi badpro.sh
输入:#!/bin/bash
while echo "i'm making file!"
do
mkdir adir
cd adir
touch afile
sleep 2s
done
:w:q
chmod u+x badpro.sh
执行:./badpro.sh &
ps -e |grep bad //kill "id"
ps aux 进程和相关的所有信息
top 动态显示进程
kill -l 各种信号
ps aux | grep nginx | grep -v grep | awk '{print $2}' | xargs kill -9 批量杀掉某个程序启的进程
5.前后台进程切换
1.启动时 + & //放到后台启动
2.已经在前台运行的程序
ctrl + z //放到后台暂停
bg %1 //将指定的job程序放到后台运行,1是作业号,可以通过jobs指令查看
3.将后台job切换到前台
fg %1 //将指定job程序放到前台运行
6.网络配置
ifconfig 显示当前系统网络信息
sudo pppoeconf 进行宽带连接
sudo pon dsl-provider 打开连接?
sudo poff dsl-provider 断开连接
ifconfig 本机网络地址、IP协议等等信息
sudo ifconfig eth0 192.168.1.200 netmask 255.255.255.0 up 设置第一个网卡的IP及网络掩码
sudo ifconfig eth0 down 关闭该网络设备
netstat -r 查看本机的路由信息
netstat -anp | grep port 查看端口是否被占用
sudo route add default gw 192.168.1.123 添加路由
sudo route add -net 10.62.74.0/24 gw 192.168.1.1 前一个地址的包全部转发的第二个地址
sudo route add -host 10.62.74.4 gw 192.168.1.1 前一个地址的包全部转发到第二个地址
sudo route add -host 10.62.74.4 gw 10.71.84.51 dev eth0
sudo route del default 删除系统中默认的路由表
cd /etc/ ----
cat hosts ---- 查出主机名对应的IP地址(DNS服务器)
sudo vi hosts
7.浏览网页
firefox
firefox & 后台打开
firefox www.baidu.com
sudo apt-get install lynx 安装lynx浏览器 (终端浏览器)
lynx www.google.com 打开google网站
8.远程登录
sudo apt-get install ssh 安装ssh
sudo apt-get install vnc4-common vnc4server 图形化的登录
ssh -l wesnorth 192.168.1.101 远程登录地址(默认监听22端口) (exit退出)
ssh -l liu -p 202 10.71.84.145 远程登录端口为202
ssh -X -l horseman 192.168.1.101 通过ssh连接查看远程服务器的图形化界面
1.远程主机 ssh-keygen 以rsa生成密钥文件 1)默认保存在用户主目录下的.ssh隐藏目录之中 2)输入密码掩码
2.主机 chmod 700 .ssh 取消其他用户对该目录的权限
3.远程主机 scp .ssh/id_rsa.pub horseman@192.168.1.101:/home/horseman/.ssh/authorized_keys
4.主机 ssh -l horseman 192.168.1.101 (登陆过程不要求输入密码 自动登陆)
PuTTY 软件 可以在window连接linux (运行在ssh上)
SSH无密登录机制:
9.定时任务
查看当前用户的定时任务 crontab -l
编辑当前用户的定时任务 crontab -e
删除当前用户的定时任务 crontab -r
定时任务时间格式如下:
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab文件的一些例子:
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启apache
0 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启apache
10.screen命令
常用screen参数:
screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session
在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始。
C-a n -> Next,切换到下一个 window
C-a p -> Previous,切换到前一个 window
C-a d -> 退出当前终端,返回加载screen前的shell命令状态
C-a w -> 显示所有窗口列表
exit :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)