命令所在目录:
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
/usr/local/sbin
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
linux的命令的格式:
命令 [-选项] [参数]
01.ls 列出文件或者文件夹信息,list的缩写
ls -a -l =ls -al 可以写在一起,顺序一般无所谓,完整选项一般用--all,简写为-a
ls -ldh /root:查看目录的信息
ls -i x:文件id号
02.mkdir,用于创建目录,即make directory的缩写
mkdir -p /root/zhao/a /usr/b/c/d 递归创建多个目录
03.cp 用来复制,copy的缩写
cp -p(property) -r(递归复制目录) /home/zhaodw/src /root/src1 拷贝目录并更改名字为src1,保持原来的属性,如修改时间
复制文件或目录 cp 选项 源文件或目录 目标文件或目录
复制文件 :cp /etc/grub.conf /zhao/a.txt /tmp/
复制目录: cp -r /home/zhaodw/src /root
04、rm 删除,即remove
rm -r(recursive) -f(force) /home/zhaodw/src
05、touch 摸一下,用来创建文件
touch "program files"
注意,因为创建的文件名有空格,所以需要加上双引号
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
01.tac
功能:用于将文件已行为单位的反序输出,即第一行最后显示,最后一行先显示。
格式:tac 小文件名 与cat显示顺序相反,tac一般后边跟上要查看的文件名,且这个文件不宜过大。
cat -A a.sh
功能用于查看所有内容,linux回车是$,windows是^M$,可通过dos2unix a.sh转换。
02.less
功能:用于查看文件内容
特点:less 相比more可以用↑或pageup向上翻页,可搜索
03、head
功能:查看文件的前多少行
head -n 200 /etc/services
04、tail
功能:用于查看文件的倒数多少行
tail -200f /var/log/messages
05、ln
功能:link的缩写,用于创建文件的连接,这里的连接可类比windows中的快捷方式
ln a.sh a.sh.hard =cp -p +实时更新 (ls -i 的inode节点一样)
ln -s a.sh a.sh.soft=快捷方式(ls -i 的inode节点不同)
06、umask
umask -S :查看创建目录是的默认权限设置,linux创建的新文件都不带x权限
07、查找文件,但不能查找文件里的内容:
updatedb locate -i 文件名(默认模糊查询)有些位置不搜索,可配置 /etc/updatedb.conf
如果提示locate命令不存在,则需要先安装:yum -y install mlocate
08、查找文件里的内容
grep -v(排除) -r(递归目录)-i 文件内容 文件或/etc/*
显示关键字在文件中的行号grep -n --color=auto "root" /etc
如:cat a.conf|grep -v "#"|while read c1 c2 c3
do
done [<a.conf]
再如:grep -v ^# /etc/inittab
09、帮助
man 系统配置文件(不是绝对路径) 如:man services
--------------------------------------------------------------------------------------------------------------------------------
查找命令:
19.which 命令 如which ls 查找命令的路径和别名
如 which ls:
ls: ls --color=auto
/usr/bin/ls
22.whereis -b(路径) -m(文档) 命令/配置文件 如whereis passwd
可以看到有一个命令,还有一个配置文件都叫passwd,用man来查找man passwd时优先打开命令的帮助文档(1),
man 5 passwd 其中5指的是配置文件的帮助文档
如:whereis ls
ls:/usr/bin/ls /usr/share/man/man1/ls.tar.gz
23.man的替代 whatis ls apropos 系统配置文件(不是绝对路径) 只列出man时候的选项:ls或者配置文件 --help
24.查看是否为shell内置命令:type cd
25.which是找不到内置命令的,man也不能查找内置命令的帮助信息。help 内置命令
28. who 的详细信息w,w的第一行跟uptime显示的差不多,还有top的第一行
-----------------------------------------------------------------------------------------------------------------------
网络命令:
37.write zhaodw【在线用户】 最后crtl+d发送
38.wall msgcontent 发广播
39.ping -c 3 ip
40.last 按登录时间列出登录用户以及重启信息
41.lastlog 列出所有用户的最后登录时间
42.tracerouter www.baidu.com
43.netstat -t[tcp]u[udp]n[net指ip和端口]r[路由表,比如查询网关]-l(listening)
44.mount /dev/sr0(分区名) /mnt/cdrom ,
查看挂载情况 :mount [-l]
依据/etc/fstab(硬盘分区自动挂载的依据)的配置重新挂载:mount -a
mount的额外选项:mount -o remount,noexec /home/ ,这样子的话在home下的sh就不能执行了
挂载u盘:mount -t vfat /dev/sdb1 /mnt/usb
挂载光盘:mount -t iso9660 /dev/cdrom(/dev/sr0系统检测的光盘的设备文件名) /mnt/cdrom
-t:文件系统 ext3 ext4 iso9660 vfat
linux已经帮我们准备了 /media 用来挂载光盘 /mnt用来挂载u盘 也可自己创建,比如创建/mnt/cdrom 挂载光盘
/mnt/usb 挂载u盘
45.umount /dev/sr0或umount /mnt/cdrom
46.shutdown -h[关机]/-r now
网络命令49.setup 之后ifup eth0【可改为 vi /etc/sysconfig/network-scripts/ifcfgeth0的onboot=yes】之后
service network restart 再 ping www.baidu.com
------------------------------------------------------------------------------------------------------------------------------------------
54.echo -e[后边的内容支持转义就是\t之类的] abc 如echo -e "ab\bc" 输出ac 输出颜色,俄罗斯方块
55.history -c(清空内存和~/.bash_history文件中的历史命令) -w(把内存中的命令写入~/.bash_history)
/etc/profile里的hissize=1000修改保存的条数
56.查询别名:alias
定义别名:alias vi='vim' 写入~/.bashrc永久生效
57.wc ctrl+d 行数-l 字节数-c 单词数-w
58.dd if=/dev/null of=zero2 bs=1k count=1000 磁盘拷贝命令bs:一次读入写出的数据块
59.set 查看系统中的本地变量(用户自定义变量)和环境变量
60.unset a 取消变量a的值
61.只查询环境变量:env
62.pstree 进程树形显示
63.vi read.sh
read -t 30 -p "input you name:"name
echo $name
read -s -t 30 -p "input you age:"age
echo "-s让你输入的时候像输入linux密码似得"$age
read -n 1 -p "input you sex[m/f]:"sex
echo $sex
64.source(或者.) 配置文件 :让修改后的配置文件不用logout就生效
65.cut -d -f 内容。 操作列,不能操作df -h等复杂的通过空格分割的内容,是awk的缩略版。默认识别的分隔符是tab
66.printf '类型(如%s)格式(如\n、\t)' 内容(如$(cat stu.txt))
67.df -h |awk '[条件] [{动作}]......' 内容[如student.txt],默认识别分隔符tab和空格。操作列,
awk的动作主要是printf、FS
68.ps -aux/-ef|grep httpd
69.basename /root/zhao/a.log .log :a
---------------------------------------------------------------------------------------------------------------------------------------
72.expr 1+/-/*//5 :计算器
75.shift
vim shift.sh:
echo $#
shift
echo $#
shift 3
echo $#
echo $1
调用shift.sh脚本:
./shift.sh 1 2 3 4 5 6 7 8
8
7
4
5
76.截取字符串:${name:3}
name=zhaodaowen
odaowen
77.sed -e(edit) -n(silent) s/d/p
sed "2,$d" a.txt 删除第二行到最后一行
sed -n "$p" 打印最后一行
78.if for while until case
六。vi的使用
编辑模式下:set nu 显示行号 set nonu 取消行号 44 到第44行
命令模式下:gg 到第一行 G 到最后一行 $行尾 0行首
------------------------------------------------------------------------------------------------------------------------------
01.grep
正则表达式和通配符:
grep awk sed等支持正则
cp find ls等支持通配符 * ? .
正则:^在[]里面代表非 例子:grep "[^0-9]" test_rule.txt 匹配出文件中没有数字的行
grep "\.$" test_rule.txt 匹配以.结尾的行
grep "aaa\{3\}" test_rule.txt 匹配包含3个a的行
grep、read操作单位是行
02.cut
cut命令示例:
vi cut.sh
cat /etc/passwd |grep "/bin/bash"|grep -v "root"|cut -d ":" -f 1,3|while read -d ":" username uid
do
echo "$username的编号是:$id"
done
结果:zhaodw
03.printf
printf命令示例:
printf '%s' $(cat stu.txt)
printf '%s\t%s\t\n' $(cat stu.txt)
04.awk
awk命令我之前已有详细的论述,这里依旧是之前的经验记录,不忍卒弃之,还是贴出来吧。
awk命令示例:$0指整行,$1指第一列
df -h |awk '{printf $1 "\t" $2"\t"$6"\n"}'
如:(第二个动作无条件执行,第一个动作在处理数据开始时执行)
awk 'BEGIN{FS=":"} {printf $1"\t"$3"\n"} END{printf "THE end\n"}' /etc/passwd|more
再如:(awk支持运算)
cat student.txt|grep -v ID |awk '$6>=87 {printf $2"\n"}'
--------------------------------------------------------------------------------------------------------------------------------
查看系统进程:ps aux或ps -le:a前台x后台u用户 l long e entire pstree -p(进程号) -u(所属用户)
查看系统健康:top
查看可用信号:kill -l kill -9 3333(默认是15)
放到后台运行:tar -zcf etcbak.tar.gz /etc &
放到后台暂停:ctrl+z
jobs [-l(显示进程号)]
恢复到前台并运行:fg [%]工作号 使之在后台运行(对vim、top等需要前台运行的不起作用):bg [%]工作号
cat /proc/cpuinfo
uname -a
查看系统位数:file /bin/ls(或其他外部命令)
定时任务的服务:crond(damone)
,:表示不连续的日期
-:连续 /10 每隔10分...
iptables -L:列出防火墙规则
iptables -F:清空防火墙
在ftp服务器上监听ftp:tcpdump -i eth0 -nnX port 21
vsftpd配置文件
主:/etc/vsftpd/vsftpd.conf
。。。。。。。。/ftpusers
................/user_list{可转化为白名单的黑名单}
ftp连接500错误解决:
getsebool -a |grep ftp
setsebool ftp_home_dir=1