linux 格式
命令 [参数][路径文件]
rm -rf /etc/passwd
# linux / 所有的目录都在跟目录/下面
# 从根目录开始的叫绝对路径
# 从当前位置开始的叫相对路径
快捷键
tab键 补全命令 最好敲两次 ctrl+c 终止前台运行程序 ctrl+d 退出当前环境 ctrl+a 跳到最前面 history 查看历史纪录 !+ 历史记录行数 执行命令 !s 上面第一个字母的命令
1,mkdir 创建目录
2,ls 查看列出文件信息
3,cd 切换目录
mkdir 创建文件目录linux 创建文件夹
[root@localhost ~]# mkdir /data/ #可以同时当前目录创建多个 [root@localhost ~]# mkdir 1 2 3 [root@localhost ~]# ls 1 2 3 anaconda-ks.cfg install.log install.log.syslog #-p 递归创建 [root@localhost ~]# mkdir -p /data/www/log [root@localhost ~]# ll /data/www/log/ -d drwxr-xr-x. 2 root root 4096 Jan 1 19:02 /data/www/log/
ls 查看列出文件
[root@localhost ~]# ls anaconda-ks.cfg install.log install.log.syslog #-l 列形式详细信息 [root@localhost ~]# ls -l total 40 -rw-------. 1 root root 1069 Jan 1 03:25 anaconda-ks.cfg -rw-r--r--. 1 root root 23040 Jan 1 03:25 install.log -rw-r--r--. 1 root root 6240 Jan 1 03:24 install.log.syslog #-ld 显示目录属性 [root@localhost ~]# ls -ld /data/ drwxr-xr-x. 2 root root 4096 Jan 1 18:58 /data/ [root@localhost ~]# ls anaconda-ks.cfg install.log install.log.syslog
cd 切换目录
#pwd 查看当前所在决定路径 (我在哪里) [root@localhost ~]# cd /data/www/log/ [root@localhost log]# pwd /data/www/log #cd ../ 切换到上级目录 [root@localhost log]# cd ../ [root@localhost www]# pwd /data/www #cd - 切换到上次所在的目录 [root@localhost www]# cd - /data/www/log [root@localhost log]# pwd /data/www/log #cd ~ 切换到家目录 [root@localhost log]# cd ~ [root@localhost ~]# pwd /root
touch 创建文本文件
[root@localhost log]# touch aa.txt [root@localhost log]# ls aa.txt
vi 编辑文件(Linux中的编辑器)
[root@localhost log]# vi aa.txt a或者i 开始编辑文本 q!不修改强制退出 wq!强制推迟
cat 查看文件内容
[root@localhost log]# cat aa.txt aa bb cc
echo 打印输出命令
> 重定向 把前边的输出 输入到后面 会覆盖信息(清空原来内容)
>> 追加 不会覆盖信息
<< 把输入的信息输入到前面文件里面
[root@localhost log]# echo aa aa [root@localhost log]# touch bb.txt #将bb.txt 写入bb.txt里面 覆盖里面全部信息 [root@localhost log]# echo "hell bb.txt" > bb.txt [root@localhost log]# cat bb.txt hell bb.txt #将hello bb.txt 追加到 bb.txt里面 [root@localhost log]# echo "hello bb.txt" >> bb.txt [root@localhost log]# cat bb.txt hell bb.txt hello bb.txt #还有一种方式写进去 [root@localhost log]# cat >> aa.txt <<EOF > AA > BB > CC > EOF [root@localhost log]# cat aa.txt AA BB CC
cp 复制文件
#拷贝1/cc.txt 到/data/www/log/下 [root@localhost ~]# cp 1/cc.txt /data/www/log/ [root@localhost ~]# ll /data/www/log/ total 8 -rw-r--r--. 1 root root 11 Jan 1 19:18 aa.txt -rw-r--r--. 1 root root 25 Jan 1 19:15 bb.txt -rw-r--r--. 1 root root 0 Jan 1 20:41 cc.txt #拷贝文件目录 加r #拷贝2目录 到/data/www/log/下 [root@localhost ~]# cp -r 2 /data/www/log/ [root@localhost ~]# ll /data/www/log/ total 12 drwxr-xr-x. 2 root root 4096 Jan 1 20:41 2 -rw-r--r--. 1 root root 11 Jan 1 19:18 aa.txt -rw-r--r--. 1 root root 25 Jan 1 19:15 bb.txt -rw-r--r--. 1 root root 0 Jan 1 20:41 cc.txt
mv 移动文件或文件目录
[root@localhost log]# ls 2 aa.txt bb.txt cc.txt [root@localhost log]# mv *.txt ./2/ [root@localhost log]# ll 2/ total 8 -rw-r--r--. 1 root root 11 Jan 1 19:18 aa.txt -rw-r--r--. 1 root root 25 Jan 1 19:15 bb.txt -rw-r--r--. 1 root root 0 Jan 1 20:41 cc.txt -rw-r--r--. 1 root root 0 Jan 1 20:41 dd.txt
rm 删除命令 -rf 不提示删除所有
[root@localhost log]# ls 2 [root@localhost log]# rm -rf 2 [root@localhost log]# ls [root@localhost log]#
grep 过滤
[root@localhost log]# cat aa.txt 11 22 33 [root@localhost log]# cat aa.txt | grep "11" 11
| 管道 前个命令输出交给后面处理 一行可以使用多个| 管道
#排除11显示内容 [root@localhost log]# grep -v 11 aa.txt 22 33 #按行显示内容 [root@localhost log]# grep "11" aa.txt 11
sed 命令
#过滤出来11 [root@localhost log]# sed -n /11/p aa.txt 11 #除了11全部显示 [root@localhost log]# sed /^11/d aa.txt 22 33
awk 过滤出来11
[root@localhost log]# awk /11/ aa.txt 11
head显示前 tail显示后
head -n aa.txt -n(行数) 显示头几行
tail -n aa.txt -n(行数) 显示结尾行数
[root@localhost log]# seq 100 >> aa.txt [root@localhost log]# head -3 aa.txt 1 2 3 [root@localhost log]# tail -3 aa.txt 98 99 100
查看命令的位置
[root@localhost log]# which cp alias cp='cp -i' /bin/cp [root@localhost log]#
查看别名
[root@localhost log]# which cp alias cp='cp -i' /bin/cp [root@localhost log]# alias alias cp='cp -i' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' [root@localhost log]# alias aa='echo "hello.com."' [root@localhost log]# aa hello.com. [root@localhost log]# alias aa='cat "/etc/sysconfig/network-scripts/ifcfg-eth0"' [root@localhost log]# aa
DEVICE=eth0 HWADDR=00:0C:29:5A:7E:03 TYPE=Ethernet UUID=0a75fde7-0364-4b2c-bfa0-73c28aa36930 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp
unalias 取消别名
[root@localhost log]# unalias aa [root@localhost log]# aa -bash: aa: command not found
以上都是临时生效 修改配置文件才能永久生效
[root@localhost log]# cat ~/.bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi
find 查找文件
[root@localhost log]# find / -type f -name "cat" /bin/cat
查找到文件删除
find / -type f -name "cat" -exec rm -rf {}\; find /root /-type f -name "*.log" -mtime -5 rm -rf {}\; #查找 root 下5天内修改的log 全部删除
seq 命令
#输出 1-2 [root@localhost log]# seq 2 1 2 #输出 5-8 [root@localhost log]# seq 5 8 5 6 7 8 #行显示 1+2+3+4+5 [root@localhost log]# seq -s "+" 5 1+2+3+4+5 #倒过来显示数据 [root@localhost log]# seq 1 5 | tac 5 4 3 2 1
查看30-35 head tail方法
[root@localhost log]# head -35 aa.txt | tail -6 30 31 32 33 34 35
显示20-30行 sed awk 方法
[root@localhost log]# sed -n 30,35p aa.txt 30 31 32 33 34 35 [root@localhost log]# awk '{if(NR>29&&NR<36) print $0}' aa.txt 30 31 32 33 34 35 NR 行数 $0 显示行数
查看/etc/passwd 第一列的最后五行
[root@localhost log]# awk -F ":" '{print $1}' /etc/passwd | tail -5 saslauth postfix sshd tcpdump oprofile [root@localhost log]#
sed 替换命令
[root@localhost log]# echo "linux" >> bb.txt [root@localhost log]# cat bb.txt linux 把bb.txt 文件的linux改成windows [root@localhost log]# sed -i s#linux#windows#g bb.txt [root@localhost log]# cat bb.txt windows [root@localhost log]#
把所有的bb.txt 文件的windows改成linux
[root@localhost log]# find / -type f -name "bb.txt" /data/www/log/bb/bb.txt /data/www/log/bb.txt [root@localhost log]# find / -type f -name "bb.txt" | xargs sed -i s#windows#linux#g [root@localhost log]# find / -type f -name "bb.txt" | xargs cat linux linux
xargs 把(find/ls)前面的输出交给后面执行 seq 打印数字echo {1..5} {}配合echo打印序列 man 查看命令使用方法帮助
作者个人博客:www.021soso.com
百度云盘搜索:http://pan.yunpanos.com (一直用的搜索视频教程的网站,所以推荐给大家)