你好
我是你们的雨嘉叔

00-命令总结(持续更新)

一、必须掌握的命令
man,touch,ls,mkdir,cp,rm,mv,echo,pwd,cat,alias,unalias,head,tail,tree,rmdir


二、想拿到高新需要掌握的命令
find,xargs,awk,sed,grep,vi,vim,seq


三、命令介绍
1、mkdir make directorys 创建目录 例子:mkdir /data 在根/下创建data目录
2、ls list(列表) 列表目录文件 例子:ls / 列根/目录下目录和文件
-l(long)长格式,-d(directoys)查看目录 -F 给不同文件结尾追加不同表示,-p给目录结尾加横线。-a(all)显示所有文件(包含隐藏文件),默认.开头的文件都是隐藏文件,不显示。-t按修改时间排序,-r反转排序,倒序,–color=auto 显示颜色
-i inode节点号 -h人类可读, –time-style=long-iso格式化时间
3、cd change directory 改变目录路径 例子:cd /etc

  • 补充:关于相对路径和绝对路径
    Windows绝对路径:E:\Linux,从头(盘符)开始的路径。
    Linux绝对路径:cat /etc/sysconfig/network-scripts/ifcfg-eth0,从根/开始的路径。
    相对路径:不从/根开始,不从头(/根)开始的路径。

4、pwd print work dirdctory 打印工作目录(显示当前所在路径)
5、touch 创建文件或更新文件的时间戳,如果文件不存在,就建立新文件,如果存在,就改变文件的访问时间atime等时间戳信息
6、vi 相当于Windows记事本,简单。例子:vi zhangyujia.txt
7、vim 复杂编辑器 功能复杂,高亮,自动缩进(写shell/python等脚本用)
8、echo 打印输出内容,配合“>或>>”可以为文件覆盖及追加内容,还有一个较复杂不常用的类似命令printf。
例如:
echo’ 1111
2222
3333’>>zhangyujia.txt

  • 实例:多行文本追加
    cat >>/data/zhangyujia.txt<>/data/zhangyujia.txt<<zhangyujia
    I am studying Linux.
    I am studying Linux.
    222222222222
    zhangyujia

  • 补充:关于特殊符号

>或1> 输出重定向:把前面输出的东西输入到后边的文件中,会清除文件原有内容。
>>或1>> 追加重定向:把前面输出的东西追加到后边的文件尾部,不会清除文件的原有内容。
0<或< 输入重定向:输入重定向用于改变命令的输入,后边指定输入内容,前面跟文件名。
0<<或<< 追加输入重定向:后跟字符串,用来表示“输入结束”。也可以用ctrl+d来结束输入。
例子:
cat >>/data/zhangyujia.txt 0<<EOF
I am studying Linux.
EOF
2> 错误重定向:把错误信息输入到后边的文件中,会删除文件的原有内容。
2>> 错误追加重定向:把错误信息追加到后边文件中,不会删除文件原有内容。
说明:
1、箭头的指向就是数据的流向。
2、数字说明:
①标准输入(stdin): 代码为0,使用0<或0<<。数据流向从右向左。
②标准正常输出(stdout):代码为1,使用1>或1>>。数据(正确的数据)流向从左向右。
③标准错误输出(stderr):代码为2,使用2>或2>>。数据(错误的数据)流向从左向右。
④2>&1标准正常输出和标准错误输出一样,1放到哪,2就放到哪。
echo 'zhangyujia' >a.txt 2>&1

9、cat 查看文件内容 例子:cat zhangyujia.txt
10、xargs 从标准输入获取内容创建和执行命令行 -n 数字,分组
“>”意思为重定向,会清楚文件或所有以前数据
“>>”为内容追加,只在文件尾部追加需要的内容
11、cp copy 拷贝文件或目录,默认不能拷贝目录 -r:递归,用于复制目录;-a:相当于 -pdr,-p:连同档案的属性一起复制过去,而非使用默认属性;
12、rm remove 删除目录和文件 -f(force)强制,-r递归,用于删除目录
注意:删除命令要慎用,非常危险,删除前一定要先备份一份儿。
13、mv move 移动文件或目录
☆14、find 查找 -type 文件类型(f(file),d(directory),c(character),b(block),s(socket)),-name”文件名”,-mtime 时间,按修改时间查找,时间数字,+7 7天以前,7 第七天,-7最近7天。
! 取反,-a and 交集,并且,-o or 并集 或者。-maxdepth查找深度,-ctime -atime
例子:
find /data -type f -name “zhangyujia.txt”
find /data -type f -name “zhangyujia.txt” -exec rm {} \;
find /data -type f -name “.txt”
find /data -type f -name “
.txt” |xargs
find /data -type f -name “*.txt” |xargs rm -f

  • 补充:关于特殊字符
    | 管道
    .. 上一级目录
    . 当前目录
    / 所有目录的顶点,也是路径的分隔符。
    ; 命令分隔符。
    {} 生成字符或数字序列,类似seq,一般配合echo等命令使用,find里的{}意思是前面命令的结果。
    关于!的用法
    ①!+字母 表示调出最近一次以此字母开头的命令。
    ②!! 表示使用最近一次操作。
    ③!+数字 表示调出历史的第几条命令。
    ④~ 当前用户的家目录。
    ⑤- 用户上一次所在的目录,-由OLDPWD变量控制。
    ⑥取反(find,shell编程)
    ⑦&& 并且,and

  • 补充:关于Linux特殊变量
    ► 临时生效:
    export TMOUNT=10 连接的超时时间控制变量
    export HISTSIZE=5 命令行历史记录数量
    export HISTFILESIZE=3 命令行命令对应文件的记录数 ~/.bash_history
    ► 永久生效:
    echo’export TMOUNT=10′ >>/etc/profile
    echo’export HISTSIZE=5′ >>/etc/profile
    echo’export HISTFILESIZE=3′ >>/etc/profile
    设置完最后需要source /etc/profile能立即生效

☆15、grep
作用:过滤掉需要的内容
例子:grep -v zhangyujia test.txt
格式:
grep [参数] ‘搜索字符串’ filename
参数:
-a 在二进制文件中,以文本文件的方式搜索数据
-c 计算找到 ‘搜索字符串’的次数
-o 仅显示出匹配regexp的内容(用于统计出现在文中的次数)
-i 忽略大小写的不同,所以大小写视为相同
-n 匹配的内容在其行首显示行号
-v 反向选择,即显示没有’搜索字符串’内容的哪一行
-E 扩展的gerp,即egrep
–color=auto 以特定颜色高亮显示匹配关键字
注:-i、-v为常用参数。
-A After的意思,显示匹配字符串及其后n行的数据
-B Before的意思,显示匹配字符串及其前n行的数据
-C Context的意思,显示匹配字符串及其前后各num行
16、head 头,头部 读取文件的前n行,默认前10行,-n数字,习惯-5,忽略-n。
17、tail 尾,尾巴 输出文件的后n行,默认后10行,-n数字,习惯-5,忽略-n。
18、alias 查看和设置别名 例子:查看别名 直接输入alias,设置别名 alias cp=’cp -i’
19、unalias 取消别名 unalias cp
20、seq sequence 序列
21、sed stream editor 流编辑器,实现对文件的增删改查替换。
参数:-n 取消默认输出,-i修改文件内容,-e允许多想编辑
功能:
p打印
g与s联合使用时,表示对当前行全局匹配替换
s常说的查找并替换,用一个字符串替换成另外一个
例子:
sed ‘ -i s#zhangyujia#gongli#g’ zhangyujia.txt
#是分隔符,可以用/@等替代。
例题:
– 把/zhangyujia目录及其子目录下所有以扩展名.sh结尾的文件中包含zhangyujia的字符串全部替换为gongli
► 建立测试数据
[root@centos6 /]# mkdir -p /zhangyujia/test
[root@centos6 /]# cd zhangyujia/
[root@centos6 zhangyujia]# echo “zhangyujia” >test/del.sh
[root@centos6 zhangyujia]# echo “zhangyujia” >test.sh
[root@centos6 zhangyujia]# echo “zhangyujia” >t.sh
[root@centos6 zhangyujia]# echo “zhangyujia” >.sh
[root@centos6 zhangyujia]# tree
.
├── test
│   └── del.sh
├── test.sh
└── t.sh

        1 directory, 3 files
    ► 方法一
        [root@centos6 zhangyujia]# find /zhangyujia -type f
        /zhangyujia/test/del.sh
        /zhangyujia/c.txt
        /zhangyujia/test.sh
        /zhangyujia/t.sh
        /zhangyujia/b
        /zhangyujia/a
        /zhangyujia/.sh
        [root@centos6 zhangyujia]# find /zhangyujia -type f -name "*.sh"
        /zhangyujia/test/del.sh
        /zhangyujia/test.sh
        /zhangyujia/t.sh
        /zhangyujia/.sh
        [root@centos6 zhangyujia]# find /zhangyujia -type f -name "*.sh" |xargs cat
        zhangyujia
        zhangyujia
        zhangyujia
        zhangyujia
        [root@centos6 zhangyujia]# find /zhangyujia -type f -name "*.sh" |xargs sed 's#zhangyujia#gongli#g'
        gongli
        gongli
        gongli
        gongli
        [root@centos6 zhangyujia]# find /zhangyujia-type f -name "*.sh" |xargs sed -i 's#zhangyujia#gongli#g'
        [root@centos6 zhangyujia]# find /zhangyujia -type f -name "*.sh" |xargs cat
        gongli
        gongli
        gongli
        gongli
    ► 方法二(将gongli回改成zhangyujia)
        [root@centos6 zhangyujia]# sed -i 's#gongli#zhangyujia#g' `find /zhangyujia -type f -name "*.sh"`
        [root@centos6zhangyujia]# find /zhangyujia -type f -name "*.sh" |xargs cat
        zhangyujia
        zhangyujia
        zhangyujia
        zhangyujia

22、awk 过滤、输出内容,一门语言。NR代表行号。
例题:
– 只查看 ett.txt文件(100行)内第20到第30行的内容(企业常见面试题)
► 建立测试文件
seq 100 >ett.txt
cat ett.txt
► 方法一(太LOW):head -30 ett.txt |tail -11
► 方法二:sed -n ‘20,30’p ett.txt
► 方法三:awk ‘NR>19&&NR<31’ ett.txt
► 方法四:awk ‘{if(NR<31 && NR>19) printf $0″\n”}’ ett.txt

23、useradd 添加用户 语法:useradd 用户名,例子:useradd zhangyujia
24、passwd 为用户设置或修改密码 语法:passwd zhangyujia 为zhangyujia设置密码。直接passwd是当前用户修改密码。
非交互式更改密码:echo “123456” |passwd –stdin zhangyujia
25、uname打印系统信息 -m 32or64 -r 内核版本 -a(all) 显示所有 -n 显示主机名
26、hostname 显示和设置主机名 默认是显示主机名,设置主机名可以hostname 名字(临时生效)
27、runlevel:查看当前系统的运行级别。
28、init:切换运行级别,后边接对应级别的数字,例如:init 6就是重启linux服务器了。
29、shutdown(halt、init0) 关机 shutdown -h now
30、reboot(init6、shutdown -r) 重启
31、history 查看及清理历史记录 -c 清空所有 -d 删除指定的历史记录
32、deseg 命令可以系统故障信息
33、ifup和ifdown 启动和停止网卡,可以接网卡名ifup eth0
34、nl nl-number line显示行号
35、less和more相反 回车一次一行,空格向下一次一屏,按b键可以一次回退一屏。
36、more 按页一次一屏,回车一次一行,空格向下一次一屏,不能回退。
37、wc 显示 -l(line)总行数 -L 最大行的长度。
38、chkconfig 设置服务开机自启动命令,-list 查看自动服务 –level levels
chkconfig –list 显示所有服务
chkconfig –list sshd 查看指定服务是否开机自启动
39、tar 打包(z c v f j x X N p P C –exclude)
40、cut 切割 取列 ,-d分隔符 -f取列,-c字符
41、tr 替换translate or delete characters(逐个字符替换)
42、stat 显示文件和文件系统状态(查看文件属性)
43、file 查看文件类型。
44、last 查看用户登录信息(显示登录列表)。/var/log/wtmp数据文件。
45、lastlog 显示最近的所有用户的登录信息。/var/log/lastlog数据文件。
46、df 查看文件系统磁盘空间 -i 查看inode -h 人类可读
47、dump2fs 查看文件系统内部信息(元数据)
48、tree 显示目录树,-L(layer)显示层数,-d显示目录。
49、id 查看用户信息。
50、ln 创建软硬链接 -s 创建软链接(readlink)
51、du 查看文件和目录大小 -sh
52、which 查看二进制命令所在路径(从PATH变量所在的路径查找)
53、whereis 查找命令的帮助,源代码 -b二进制
54、locate 通过名字寻找文件 只能查updatedb库里内容,locate从/var/lib/mlocate/mlocate.db查找路径
55、groupadd 添加组 -g组id groupadd test
56、groupdel 删除组
57、chage 设置或修改用户密码有效期限 -l(list) -e有效期
58、usermod 更改用户属性
59、chmod 更改及设置文件的对应权限
60、chown 更改及设置文件对应的用户和组
61、umask 控制文件默认权限
62、userdel 删除用户 – r删家目录
63、w 查看谁登录了并且在做什么
64、who 显示谁登录了
65、last 显示用户登录历史
66、lastlog 查看用户最近登录的情况
67、groups 打印用户在那个组
68、id 查看用户身份
69、su 切换用户身份 -加载环境变量,-c以指定用户身份执行任务。
应用场景:以指定用户身份开机自动启动服务
tail -5 /etc/rc.local
su -zhangyujia -c ‘/bin/sh /home/zhangyujia/bin/deploy.sh’ #分用户方案启动服务命令。
70、sudo 可以让普通用户可以拥有root权限去执行命令(配置文件/etc/sudoers)。
71、visudo 通过visudo编辑/etc/sudoers检查语法。


欢迎关注
新浪微博:https://weibo.com/yougazhang0506
微信公众平台:张雨嘉

我的网站:https://www.zhangyujia.cn
51CTO博客:http://blog.51cto.com/11099293
CSDN博客:http://blog.csdn.net/u013260195
GitHub:https://github.com/zhangyujia0506/

赞(0)
未经允许不得转载:嘉叔的博客 » 00-命令总结(持续更新)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址