菜鸟学Linux-常用命令小记

ftp://192.168.0.1/biji
第一天基本命令
ls -l install.log
-:rw-r--r--: 1: root: root: 39410: 11-03 13:44: install.log
文件类型:权限:硬连接数:拥有者:所属组:文件大小:最有一次修改日期和时间:文件名


- 普通文件
d 目录文件
l 链接文件
b 块设备文件
c 字符文件
p 管道文件
s 套节字文件


ls -l 长格式 -a 显示所有文件  -A 除了.和..所有文件  -h 按最大单位显示
   -d 显示目录信息 -t 按时间排序 -r 反向排序 -R 递归显示


帮助命令
1.ls --help
2.type ls 
alias la='ls -la'
unalias la
3.info ls
4.man


man 1 用户命令
man 2 系统调用
man 3 库调用
man 4 特殊文明
man 5 配置文件
man 6 游戏
man 7 杂项
man 8 系统命令
man 9 内核参考


man -f passwd 查询关键字在那些章节有相应说明
makewhatis 维护man
man -k passwd 模糊查询


/目录下的目录作用
/bin /usr/bin/ /usr/local/bin/ 普通用户可以执行的命令
/sbin/ /usr/sbin/ /usr/local/sbin/ 管理员可以执行的命令
/root 管理员家目录
/home 普通用户家目录
/etc 配置文件目录
/var   服务器数据目录
/usr   应用程序目录
/tmp 临时文件目录
/dev 块设备目录
/boot 引导程序目录(内核 启动文件 引导程序)
/lib /usr/lib /usr/local/lib 存放库文件和系统的模块
/sys 伪文件系统
/proc  伪文件系统(内核参数 进程在内存的信息) 
/mnt 其他挂载点
/opt 第三方软件目录
/net autofs
/misc autofs
/tftpboot  tftp服务器的主目录
/selinux  selinux安全组件使用
/media   媒介目录
/srv 服务器数据目录


cd / .. ../.. . ~或者直接回车 -返回上次工作的目录


查看文件内容的命令
1.more install.log
2.less install.log
3.head -n 50 install.log
  head -50 install.log
4.tail -n 50 install.log
  tail -50 install.log
  tail -f /var/log/messages 动态监控日志文件
  service gpm restart 重新启动鼠标
5.cat install.log
  cat -n install.log 所有行号
  cat -b install.log 只显示有效行行号
 | 管道符
cat -n install.log | less


创建文件 
touch aa.txt
touch cc.txt tt.txt
touch abc{1..10}.txt
touch a{b,c}{1..5}.txt


创建目录
mkdir abcd 
mkdir abcde abcdf
mkdir abc{1..10}
mkdir a{b,c}{1..5}
mkdir -p xx/pp
mkdir -p -v xx/pp   -p 递归  -v 显示创建过程


拷贝剪切
拷贝
cp /root/install.log /tmp/
cp /root/install.log /tmp/test 拷贝过程中重命名
cp -r /root/Desktop/ /tmp/
剪切
mv 
mv /root/tt.txt /tmp/
mv /root/tt.txt /tmp/aa.txt
mv /root/abcd/ /tmp
mv ac3.txt uuu.txt


删除
rmdir 删除空目录
rm aa.txt
rm -f uuu.txt
rm -rf xx/
rm -rf *
rm -rf *.txt
rm -rf ab*


练习:
1.创建以下目录结构(一条命令完成)(并且验证)
       /aa
            /  \
        ba/   bc/
         /  \     \
      ca/  cb/   cc/
mkdir -p /aa/ba/c{a,b} /aa/bc/cc
tree /aa
ls -R /aa


2.由ba目录进入ca目录有几种方法,分别是什么


3. 拷贝/etc/man.config到ca/  拷贝过程中将man.config改名为test.txt
mkdir -p /aa/ba/c{a,b} /aa/bc/cc
cp ../etc/man.config ../aa/ba/ca/test.txt
4.剪切test.txt文件 cc/目录
mv /aa/ba/ca/test.txt /aa/bc/cc/
5.在两次拷贝同一文件到同一个目录下时,不出现覆盖提示
\cp /root/install.log /
/bin/cp install.log /
unalias cp 
cp /root/install.log /


vim文本编辑器


由命令模式进入输入模式
a 当前字符后输入
A 当前行行尾输入
i 当前字符前输入
I 当前字符前输入
o 当前行的下一行输入
O 当前行的上一行输入
s 删除当前字符后输入
S 删除当前行后输入


home键 行首 end键 行尾


命令模式
u 撤销一步操作
ctrl+r 重做
复制一行 yy p粘贴(光标所在行的下一行)
复制50行 50yy
剪切一行 dd p粘贴
剪切50行 50dd
删除一行 dd
删除50行 50dd


^行首 $行尾
删除当前字符到行首 d^  y^
删除当前字符到行尾 d$  y$
w 下一个单词的首字符
yw 复制一个单词 dw剪切一个单词
G 尾行 gg 首行  572G
dgg 删除当前行到首行
dG  删除当前行到尾行


末行模式
:w q wq w! q! wq!
:w /tmp/newfile 另存
:2,4w /tmp/newfile2
:e /root/install.log 读入文件
:r /tmp/newfile2 追加读入
:e! 重新读入当前文件


查找
/ 从上向下  ?从下向上  n N 下一个
替换
:%s/ab/$$/gc   %所有行  g 全局   s 交换 c交互式替换
:3,6s/ab/$$/ 3-6行替换


练习:
1.替换掉所有开头的a 换成b
%s/a/b/
2.去掉整个文件中所有的制表符(\t)
%s/\t//g
3.去掉2-6行开头的空格(\s)
2,6s/^ //g
2,6s/^\s//g
4.去掉整个文件中所有的空格
%s/\s//g
%s/ //g
%s/ *//g
5.将每行换行符号替换为空格(\n)
%s/\n/ /g


去掉空行
g/^$/d
g/^\s*$/d


调出行号
set nu
set nonu
set autoindent
set noautoindent


文件加密
X


vim配置文件/etc/vimrc


多文件操作
vim aa.txt cc.txt  tt.txt
:args :next :prev :last :first  ctrl+6


同一屏内打开多个文件
vimdiff aa.txt cc.txt tt.txt
ctrl+w+w
vim -O aa.txt cc.txt tt.txt
vim -o aa.txt cc.txt tt.txt 竖向排列


vim的帮助文档
/usr/share/vim/vim70/tutor/tutor.zh.euc


iconv -f UTF8 -t GB18030 tutor.zh.euc -o test.txt
-f 文件源字符集  -t 输出字符集 -o 输出文件


用户管理
uid 0 root (管理员)    gid 0(管理员组)
uid 1-499 (系统用户) gid 1-499(系统组)
uid 500-60000(普通用户)     gid 500-60000(普通用户组)


useradd abc1
用户信息文件/etc/passwd
abc1:x:503:503:PT:/home/abc1:/bin/bash
用户名:密码占位符:uid:gid:描述信息:家目录:shell
useradd -u 1000 -g 503 -c hello -d /mnt/abc2 -s /bin/bash abc2
-u uid -g gid -c 描述 -d 家目录 -s shell


groupadd uplooking
组信息文件/etc/group
abc2:x:503:
组名:密码:gid:如有信息用户名
groupadd -g 2000 uplooking


练习:
添加组uplooking gid为3000
添加用户 tom uid为1200  属于uplooking 家目录在/mnt下 shell为bash
groupadd -g 3000 uplooking
useradd -u 2000 -g uplooking -c oooo -d /mnt/tom -s /bin/bash tom


密码
passwd
存放密码信息的文件/etc/shadow
abc2:$1$cYSCxWGT$s9pWcN0lYAIYmd5q6/ilV1:15654:0:99999:7:::
第一列:用户名
第二列:密码
第三列:最后一次修改密码的时间
第四列:密码最小时间
第五列:密码的最大时间
第六列:密码过期前警告时间
第七列:密码过期后帐号过期时间
第八列:帐号有效期
第九列:保留列


修改组信息
groupmod
groupmod -g 2500 tt2  改gid
groupmod -n ttnew tt  改组名称


修改用户信息
usermod -u -g -c -d -s 用户名
usermod -f 密码过期后帐号过期时间  -e 帐号有效期
usermod -l newname oldname 
usermod -L 锁定帐户
usermod -U 解锁帐号


修改密码信息
passwd
passwd -n 最小时间 -x 最大时间 -w 警告时间 -i 密码过期后帐号过期时间
passwd -l 锁定用户密码
passwd -u 解锁密码
passwd -S 查看密码状态


练习:
创建两个用户jack rose 分别设定为密码123
锁定jack帐号
锁定rose密码
分别终端登录 查看信息是否一致,能否判断出现什么问题?
查看/etc/shadow文件中该两个用户 密码段 有什么不同?


删除组
groupdel 组名
删除用户
userdel -r abc -r连同家目录一起删除


关于用户的配置文件
useradd eric
/etc/default/useradd 用户默认值文件
/var/spool/mail/ 用户邮件信息目录
home=/home
shell=/bin/bash
CREATE_MAIL_SPOOL=yes


/etc/login.defs 保存密码默认信息


useradd -G kf,yw wg
usermod -a -G boss abc1
usermod -G yw,kf abc1
useradd -u 0 -o admin


手工管理用户
groupadd redhat


vim /etc/groupadd
redhat:x:5000:


useradd eric


vim /etc/passwd
eric:x:5000:5000:PTuser:/home/eric:/bin/bash
mkdir /home/eric
cp /etc/skel/.bash* /home/eric/


passwd eric
vim /etc/shadow
eric::15654:0:99999:7:::


grub-md5-crypt


终端登录测试密码 创建文件aa.txt


多用户导入
1.touch user.txt
aa:x:5500:5500::/home/aa:/bin/bash
bb:x:5600:5600::/home/bb:/bin/bash


newusers < user.txt


2.touch passwd.txt
aa:123
bb:123


chpasswd < passwd.txt


家目录下文件作用
.bash_history   记录该用户执行的历史命令
.bash_logout 用户退出时执行的命令
.bashrc         nologin-shell级别环境配置文件
.bash_profile   login-shell登录级别环境配置文件


/etc/bashrc
/etc/profile


加载顺序
/etc/profile
~/.bash_profile
~/.bashrc
/etc/bashrc


权限管理
-rw-r--r-- 1 eric uplooking 39410 11-03 13:44 install.log


           rw-   |    r--     |    r--
   user group other 
   eric uplooking     其他人
    u           g           o
root(0)------>uid=eric----->group(uplooking)---->other


文件
r----------cat head tail more 
w----------vim > >>
              x----------./ 执行
目录
r----------ls           r-x查询详细信息
w----------touch rm   -wx才能创建文件
x----------cd  



tt.txt rwxrwxrwx  root  root


tom rm -rf tt.txt


/test/ rwxr-x--- root root
/test/tt/  rwxrwxrwx
/test/tt/aa.txt  rwxrwxrwx


tom rm -rf aa.txt


chmod u+r file/dir
chmod u+r,g-w file/dir
chmod u+r,g-r,o+rw file/dir
chmod ug+rw,o-rw file/dir
chmod ugo+rwx file/dir
chmod a+rwx file/dir


chmod u=r file/dir
chmod u=rw,g=rx file/dir
chmod u=r,g=rx,o=rwx file/dir
chmod ug=rw,o=tx file/dir
chmod ugo=rwx file/dir
chmod a=rwx file/dir


chmod -R 777 test/


r------4  w------2  x------1
rwxrwxrwx-777


561 r-xrw---x   -wx-w---x 321
234 -w--wxr--


/                          755
/etc   755
/bin   755
/sbin   755
/var   755  
/tmp   1777
/etc/shadow   400
/etc/passwd   644
root管理员创建文件默认权限 644
root管理员创建目录默认权限 755
普通用户创建文件的默认权限  664
普通用户创建目录的默认权限  775
/root    750
/home/普通用户家目录     700


chown tom file/dir
chgrp uplooking file/dir
chown tom.uplooking file/dir
chown tom:uplooking file/dir
chown .uplooking file/dir
chown -R tom.uplooking file/dir


练习:
1.在tmp目录下创建目录test 在test目录下创建文件aa.txt 创建用户zorro
要求:
zorro用户可以删除aa.txt 但没是不能读写
mkdir /tmp/test/  root  root rwxr-xr-x
touch /tmp/test/aa.txt  root root  rw-r--r--  
chmod o-r /tmp/test/aa.txt
chmod o+w /tmp/test


2.在tmp目录下创建目录test 在test目录下创建文件aa.txt 创建用户zorro eric
要求:
zorro用户可以读写aa.txt文件 不能删除
eric用户不可以读写aa.txt 但是可以删除
/tmp/test/      eric root  rwxr-xr-x
/tmp/test/aa.txt zorro root rw-r-----
zorro
eric


chown zorro /tmp/test/aa.txt
chmod o-r /tmp/test/aa.txt
chown eric /tmp/test/




3.在/root/下创建abc.txt文件 创建3个用户zorro,shrek,seker 要求如下:
seker可以读写abc.txt文件 但是不能删除
zorro只读abc.txt文件 不能删除
shrek 不可以读写abc.txt文件 但是可以删除


/root/         root root   rwxrwxr-x
/root/abc.txt  seker zorro rw-r-----


seker
zorro
shrek ----> root


chmod 640 abc.txt 
chown seker.zorro abc.txt
chmod 775 /root/
usermod -a -G root shrek
shrek shrek shrek,hello,root


高级权限
suid权限
suid只能加到user
chmod u+s 文件
suid只能作用到文件上(二进制可执行文件)
作用:任何用户在执行拥有suid权限的命令时,都已该命令拥有者的身份执行


练习:
要求:在不改变/etc/shadow权限的前题下,使用tom能使用cat查看到shadow内容
which cat
chmod u+s /bin/cat


sgid
只能添加到group
chmod g+s dir/
只能作用到目录上
作用:任何用户在拥有sgid权限的目录下创建文件(目录)时,创建的文件与该目录同组
如果创建目录,则目录继承sgid权限.
练习:
在/tmp目录下创建test目录, 该目录权限777,创建用户tom
tom在/tmp/test目录下创建文件aa.txt 查看aa.txt信息
在test目录上添加sgid权限
tom在/tmp/test目录下创建文件tt.txt 查看tt.txt信息
tom在/tmp/test目录下创建创建目录dir 查看目录dir的信息




sticky(t)冒险位,粘贴位
只能添加到other
chmod o+t dir/
只能作用到目录上
作用:任何用户在含有t权限的目录下创建的文件,只能拥有者删除,其他人无权删除(除了root)


练习:
在/tmp目录下创建test目录, 该目录权限777,创建用户tom 创建用户jerry
使用tom 在test目录下创建文件tom.txt
使用jerry 在test目录下创建文件jerry.txt
尝试使用tom删除jerry.txt  使用jerry删除tom.txt
是否能删除?


使用tom 在test目录下创建文件tom.txt
使用jerry 在test目录下创建文件jerry.txt
在test目录上添加t权限
尝试使用tom删除jerry.txt  使用jerry删除tom.txt
是否能删除?
使用管理员root能否删除?


使用tom 在test目录下创建文件tom.txt
使用jerry 在test目录下创建文件jerry.txt
添加用户zorro 将test目录拥有者改为zorro
使用zorro能否删除tom.txt jerry.txt?




源文件有无x权限区别 
chmod +x aa.txt 
[root@localhost tmp]# ll aa.txt 
-rwsrwsrwt 1 root root 0 11-11 14:20 aa.txt
[root@localhost tmp]# chmod -x aa.txt 
[root@localhost tmp]# ll aa.txt 
-rwSrwSrwT 1 root root 0 11-11 14:20 aa.tx


suid-------4
sgid-------2
sticky-----1


1777
2777
4777
3777


进程管理
ps -ef
ps aux


top


前后台切换
xclock -update 1 &
xclock -update 1
ctrl + z
jobs
bg 编号
fg 编号


kill %编号  杀掉




杀进程
kill -15 pid
kill -9 pid
pkill 进程名称
killall 进程名称
xkill 


优先级调整(-20~19)
nice -n -20 xclock -update 1
renice 10 -p 6020(pid)


高级命令
cat -n /etc/passwd |head -20 |tail -2 | rev | tac
wc -l行数 -w单词数 -c字符数
sort -n 按照整个数字排序 -u 去掉重复行  -r 反向排序
uniq 去掉连续的重复行 -u 显示不重复的行 -d 只显示重复行  -c统计重复次数
grep root /etc/passwd
grep ^root /etc/passwd
grep halt$ /etc/passwd
grep -v halt$ /etc/passwd  取反


cut  
cut -d: -f 1 /etc/passwd
cut -d: -f 1,6 /etc/passwd
cut -d: -f 1-3 /etc/passwd
cut -d: -f 1-3,6 /etc/passwd


cut -c 1,3 /etc/passwd | head -2
cut -c 1-6 /etc/passwd | head -2


练习:
1.计算出你的系统中有多少个可以登录到系统的用户
cat /etc/passwd | grep -c bash
cat /etc/passwd | grep /bin/bash | wc -l
cat /etc/passwd | grep /bin/bash | cut -d: -f7 |uniq -c
cat -n /etc/passwd | grep /bin/bash | cut -d: -f1,7 |cat -n


2.ifconfig eth0 | awk -F':| +' '/Bcast/{print $4}'
192.168.1.1


ifconfig eth0 | head -2 | tail -1 | cut -d: -f 2 | cut -d' ' -f1
ifconfig eth0 | grep Bcast | cut -d: -f 2 | cut -d' ' -f 1


3. stat aa.txt 
  File: “aa.txt”
  Size: 34              Blocks: 8          IO Block: 4096   一般文件
Device: 802h/2050d      Inode: 48922685    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2012-11-17 12:06:11.000000000 +0800
Modify: 2012-11-17 12:06:11.000000000 +0800
Change: 2012-11-17 12:06:11.000000000 +0800


只显示时间
12:06:11
12:06:11
12:06:1


stat aa.txt | tail -3 | cut -d' ' -f3 | cut -d. -f 1


shell基础
!! !$ !ser 


重定向符
> >> 
> 标准正确输出,如果文件存在则覆盖,如果文件不存则创建
>> 标准正确输出,如果文件存在则追加,如果不存在则创建
2> 标准错误输出,如果文件存在则覆盖,如果文件不存在则创建
2>> 标准错误输出,如果文件存在则追加,如果不存在则创建
0标准正确输入
&>


循环脚本
#!/bin/bash
#添加用户的脚本
for i in {1..10}
do
    echo "create user$i now!!!!!please wait!!!!"
    sleep 1
    useradd user$i
    echo "Set user$i password now!!!!!"
    echo 123 | passwd --stdin user$i &> /dev/null
    echo "The create user$i success!!!!!"
done


判断脚本
#!/bin/bash
#判断文件是否存在
if [ -f /tmp/aa.txt ]
then
    echo "the file is cunzai!!!!!display now!!!1"
    sleep 1
    ls -l /tmp/aa.txt
else
    echo "the file is now cunzai!!!create it now !!!! "
    sleep 1
    touch /tmp/aa.txt
fi




网络
mii-tool
ifconfig 
ifconfig eth0
ifconfig eth0 192.168.1.100/24


setup


配置文件
/etc/sysconfig/network-scripts/ifcfg-eth*


网卡别名
ifconfig eth0:0 10.10.10.1


ifconfig eth0 up
ifconfig eth0 down


ifup eth0
ifdown eth0


;    前边命令无论是否执行成功,后边命令都执行
&&  前边命令执行成功,后边命令才执行


arping 192.168.1.33
arp


route -n
route add default gw 192.168.1.1
route del default gw 192.168.1.1
traceroute


hostname 查询主机名
hostname zhb.com
vim /etc/sysconfig/network 永久修改
HOSTNAME=zhb.com


注意:主机名和ip地址的对应关系
/etc/hosts


打开路由转发功能
cat /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward


压缩,打包,安装软件
gzip  bzip2
dd if=/dev/zero of=data bs=100M count=2 制作200M的文件


gzip data
gunzip date.gz
bzip2 data
bunzip2 data.bz2


tar
tar -cvf boot.tar /boot
tar -tvf boot.tar
tar -rvf boot.tar data
tar -xvf boot.tar


tar -cvf /home/boot.tar /boot/
tar -xvf boot.tar -C /home/


tar -zcvf boot.tar.gz /boot
tar -ztvf boot.tar.gz 
tar -zxvf boot.tar.gz 


tar -jcvf boot.tar.bz2 /boot
tar -jtvf boot.tar.bz2
tar -jxvf boot.tar.bz2


tar -zcvf /home/boot.tar.gz /boot/
tar -zxvf boot.tar -C /home/


mount(挂载)
mount -t iso9660  /dev/cdrom /mnt
mount
umount  /dev/cdrom 
umount  /mnt
-l 强制卸载


制作镜像
cat /dev/cdrom >> /rhel5u8.iso
dd if=/dev/cdrom of=/rhel5u8.iso
挂载镜像
mount -t iso9660 /rhel5u8.iso /mnt -o loop


软件安装
rpm -ivh httpd-2.2.3-63.el5.i386.rpm 安装
rpm -q httpd   查询是否安装
rpm -qa | grep httpd 查询所有安装含有httpd关键字的软件包
rpm -ql httpd 查询软件包的安装路径
rpm -qf httpd.conf  查询该文件是那个软件包安装的
rpm -qf `which mount` 同上``优先执行
rpm -qi httpd 查询httpd软件包的信息
rpm -e httpd 卸载软件包


未安装的软件包
rpm -qpi httpd-2.2.3-63.el5.i386.rpm未安装信息
rpm -qpl httpd-2.2.3-63.el5.i386.rpm安装后的路径

rpm -e apr-devel --nodeps  不检测依赖关系卸载
rpm -ivh httpd-2.2.3-63.el5.i386.rpm --force 强制安装


yum库搭建与使用


1.mount /dev/cdrom /mnt
2.vim /etc/yum.conf
gpgcheck=0
3.cd /etc/yum.repos.d/
touch yum.repo
vim yum.repo
[yum]
name=yum server
baseurl=file:///mnt/Server
enabled=1
gpgcheck=0


yum list
yum install httpd-devel
yum remove httpd-devel
yum reinstall httpd-devel
yum clean all


rpm --import RPM-GPG-KEY-redhat-release  导入key


创建yum库
建库命令
rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm
/yum 里边全是软件包
createrepo /yum





























































































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值