Centos7笔记之shell基本命令

一、目标

centos7的基本命令

二、平台

centos7.6

三、centos7基本命令实例

1.查看主机名hostname

2.修改主机名hostnamectl set-hostname xNewName

3.切换到root用户su - root

4.关机poweroff或init 0 或者shutdown -h now  

5.重启机器reboot或shutdown -r now

6.多少分钟后重启shutdown -r +21

7.多少分钟后关机shutdown -h +37

8.查看当前系统时间date

9.查看日历cal

10.查看2016年的日历kahn。cal 2016

11.查看2019年7月的日历。cal 7 2019

12.查看ip地址ifconfig或ip addr show

13.连续ping某个ip地址:ping 37.21.36.90 ,直到你按ctrl+c才会中断ping

14.指定ping次数的ping某ip地址:ping 37.21.36.90 -c 37

15.快捷键------将光标移动到行首Ctrl + A

16.快捷键------将光标移动到行尾Ctrl + E

17.快捷键------清屏clear 或Ctrl + L

18.快捷键------中断当前操作Ctrl + C

19.快捷键------一行内将光标前面的字符删除:Ctrl + U

20.快捷键------一行内将光标后面的字符删除:Ctrl + K

21.查看敲过的所有历史命令:history    (默认保存1000行)

22.快速执行某条历史命令: !3721     (history后能查到所有命令并且带序号,执行历史命令就用感叹号加序号)

23.清空历史命令:history -c

24.查看cpu信息:cat /proc/cpuinfo

25.查看linux版本:cat /proc/version

26.查看系统架构位数:uanme -m

27.查看系统内核版本:uname -r

28.查看系统内核相关的所有信息:uname -a

29.查看内存运行状态:cat /proc/meminfo

30.显示当前目录:pwd

21.创建目录:mkdir

32.删除目录:rmdir

33.返回上一级目录:cd ..

34.返回上一次的工作目录:cd -

35.返回上一级目录的上一级目录: cd ../../

36.返回家目录:cd或cd ~

37.显示文件夹内容:ls

38.以长格式显示目录内容:ls -l 或ll

39:显示文件夹本身属性:ls -d

40.显示所有文件和文件夹,包含隐藏的:ls -a

41.显示详细信息,变幻统计单位,ls -lh

42.创建文件夹mkdir

43.递归创建文件夹mkdir -p b/c/d/e/f    这样就依层建立了b,c,d,e,f几个文件夹

44.递归删除空目录rmdir -p b/c/d/e/f     依次从f开始删除空目录到b目录也删除掉

45.创建一个空文件touch kahn.txt  还可以更新文件的时间标记

46.将一个字符串快速写到某文本中:echo "hello World!" > kahn.txt ,慎用,这玩意是覆盖文件中的内容。

47. 把一个文件1.txt拷贝到share文件夹同时改名为2.txt:cp /home/kahn/xxf/1.txt /home/kahn/share/2.txt

48.把一个文件1.txt拷贝到share文件夹:cp /home/kahn/xxf/1.txt /home/kahn/share/

49.将某文件夹递归复制到另外一个目录: cp -r /home/kahn/DoumentA  /tmp/a   复制到tmp下的a目录

50.删除某个文件:rm kahn.txt

51.递归删除文件夹:rm -r /home/kahn/Document A     若里面有子文件,子文件夹,删除每个子文件或子文件夹时都会让确认。

52.递归强制一次性删除文件夹:rm -rf /home/kahn/DocumentA     一定要慎用类似的rm -rf命令,没法恢复。

53.拷贝文捡到目标目录:cp /root/dictoryA/a.txt /root/dictoryB/  将a文捡拷贝到/root/dictoryB文件夹去。

54.剪切文捡到目标文件夹:mv b.txt /root/text   将当前目录下的b.txt剪切到/root/text文件夹下。

55.剪切文件夹到目标文件夹:mv dictoryA /home/kahn/share    将当前目录下的dictoryA剪切到home/kahn/share目录下。

56.重命名文件夹:mv dictoryA  dictoryB    将当前目录下的dictoryA改名叫dictoryB

57.查找一个文件名叫kahn.txt的文件在根木目录下:find / -name kahn.txt
58.用通配符查找某个文件:find / -name kahn-*-c*      查找一个叫kahn-37213690-config.txt的文件

59.查找一个文件类型的文件:find / -name kahn-*-c*  -type f    查找一个文件名是kahn-37213690-config.txt的“文件”。f代表文件

60.在根目录下查找文件夹名叫tex*开头的所有文件夹:find / -name tex* -type d      d代表的是文件夹

61.查找属主是kahn的文件名叫a.txt的文件: find / -user kahn -name a.txt      可继续添加条件 -type f

62. 在kahn目录下查找文件大小大于100k的文件:find /home/kahn -size +100k -type f

63. 在kahn目录下查找文件大小小于100k的文件:find /home/kahn -size -100k -type f

64.在kahn目录下查找大于80k并且小于100k的文件:find /home/kahn -size +80k -size -100k -type f

65.在kahn目录下查找大于80k并且小于100k的文件,并将查找到的文件以详细列表显示:find /home/kahn -size +80k -size -100k -type f | xargs ls -l

66.在kahn家目录下查找不是叫a.txt的所有文件:find /home/kahn/ ! -name a.txt -type f     注意感叹号前后都有空格

67.在根目录下查找文件名叫a.txt或b.txt的文件:find / -name a.txt -o -name b.txt        注意是字母o代表或的意思

68.一次性读取某文件的所有内容:cat kahn.txt

69. less一次性读取文件所有内容:less kahn.txt    这玩意可以上下键、翻页,回车也可一行一行看,空格也可翻页,q退出,回车后按/输入查找内容。

70. more一次性读取所有文件内容: more kahn.txt    和less类似,但这东西可以显示文件读取了百分比,貌似不可以/输入查找内容。
71.显示文件头部若干行,默认十行: head kahn.cfg

72.显示文件尾部若干行,默认十行:tail kahn.txt

73.显示文件的头5行:head -n 5 kahn.cfg 或head -n +5 kahn.cfg

74.显示文件的后6行:tail -n 6 kahn.cfg

75.查看某文件有多少行、多少词,多少字节:wc a.txt      结果如:  7  37 171 a.txt    7为行,37为词数,171为字节数。

76.查看某文件有多少行:wc -l a.txt

77.查看某文件有多少字节数:wc -c a.txt

78.查看文件中是否有包含指定的字符:grep 'ka' a.txt    参数:-i不区分大小写,-c显示匹配的行数量,-v反转查找

79.查看文件包含特定字符一共有几行:grep -c 'hn' kahn.txt

80.查看文件中不包含特定字符的行:grep -v 'kahn' kahn.txt

81.查找文件中不包含特定字符的行数量 grep -c -v 'kahn' kahn.txt

82.查找文件中的空行:grep '^$' kahn.txt

84.查找文件中非空行的数量:grep -vc '^$' kahn.txt    其实^$就是正则表达式开头和结尾匹配的意思

85.查看以#开图的行: grep '^#' kahn.txt

86.查看某文件以n字符结尾的所有行: grep 'n$' kahn.txt

83.查找文件中空行的数量:grep -c '^$' kahn.txt

84.用tar压缩一个文件夹:tar -czvf kahn.tar.gz  /home/kahn/filesSourceDirectory    将home/kahn下的f那个文件压缩成kahn.tar.gz命名的压缩包

85.用tar压缩一个文件夹压缩成bz2格式: tar -cjvf /tmp/kahn.tar.bz2  /var/www  将www目录压缩成bz2格式,压缩包叫kahn.tar.bz2        注意bz2的压缩率高,但是效率稍低一些。

86.将两个文件夹一起压缩: tar -czvf kahn.tar.gz  /var/www/wenjianjia1    /var/www/wenjianjia2  将文件夹1和文件夹2放在一起压缩,压缩包名叫kahn.tar.gz

87.将gz压缩包解压:tar -xczvf www.tar.gz -C /home/kahn/tmp/   将压缩包www.tar.gz解压缩到/home/kahn/tmp文件夹下

#linux创建别名alias

88.查看系统别名列表:alias

89.设置一个叫x的别名:alias x="ls /home/kahn/"     去执行查看/home/kahn的下文件(仅在当前bash生效)

90.取消一个叫x的别名:unalias x

91.取消所有别名:unalias -a       慎用,用之前最好备份下。

92.将设置的别名永久生效方法1:修改家目录下的.bashrc文件 vi .bashrc 将别名加到相应位置,不知道为啥用的时候先su - 后再执行别名才能执行成功,奇怪。

#linux创建链接

93.创建软链接:ln -s /home/kahn/sourceFile.txt  /root/dfile.txt.soft    给sourceFile.txt创建一个软连接叫dfile.txt.soft,这玩意跟windows的快捷方式的性质一模一样。删除了源文件后,软连接还存在,但无法使用。

94.创建硬链接:ln sourcefile.txt sourcefile.txt.hard   这玩意有点镜像复制的意思,也好像是世界上有同一个自己,完完全全的同一个自己,修改其中一个,另外一个也会自动跟着变。但是删除其中一个另外一个不受影响。如同cp -p +同步更新的功能

#重定向符号>

95.重定向符号的使用:history > kahn.txt       即将历史命令写到一个kahn.txt文件中

96.将标准正确信息追加到某文件中:ls /home/kahn >> kahn.txt  将ls到的信息追加到kahn.txt中去

97.将标准错误输出信息写到某文件中:find / -user kahn 2> error.txt    将属于kahn用户的所有文件找到,但只要报错的信息并保存到error.txt中去

98.将标准错误信息追加到某文件中:find / -user xTom 2>> error.txt

99.将标准正确信息和标准错误信息分别存放不同文件中: find / -user kahn > true.txt  2> error.txt

100.将正确信息和错误信息同时重定向写入文件中: find / -user kahn &> kahnInfo.txt

 101.将正确信息追加写到到文件中,错误文件丢掉:find / -user kahn >> true.txt  2> /dev/null

#管道符

102.若输出信息较多,可以使用管道符加其他命令:ll /etc | more            加上管道符,再用more分屏显示

103.查看etc目录下的头十个文件名并将查看的结果重定向写入到一个文件中。ls /etc | head -n 10 > x.txt

104. 查看kahn的用户信息:id kahn

##其他

105.在文件中查找包含3721和3722的字符串的行: grep '372[12]'  kahn.txt

##文件权限

106.将文件的权限更改成755:chmod 755 a.txt
107.将文件的所属者更改为kahn:chown kahn a.txt
108.将文件的所属组更改为kahnG:chown :kahnG a.txt
109.一次性修改文件的所属者和所属组:chown kahn:kahnG a.txt
110.使用root用户创建一个文件:touch a.txt
111.接110给文件赋予tom读写权限:setfacl -m u:tom:rw a.txt
112.查看文件的附加权限:getfacl a.txt
113.接112给文件附件一个新组的读权限:setfacl -m g:tomG:r a.txt
114.将文件的附件权限中某用户的权限删除:setfacl -x u:tom a.txt   (不比跟具体权限,直接u:用户即可)
115.将文件的附件权限中附加组给删除掉:setfacl -x g:tomG a.txt
116.将文件的附加权限中设置kahn没有任何权限:setfacl -m u:kahn:--- a.txt   (kahn后面三个减号)

117.创建用户,但不创建家目录M,也不让他登录系统s:useradd -M -s /sbin/shell jack
118.让某用户下次登录时强制更改密码:chage -d 0 kahn
119.设置用户30天必须更改密码,账号在2020-1-31过期:chage -d 30 -E 2020-01-31 ka.hn
120.找出当前目录下的目录和普通文件,且当前目录下10天没有改变,大小大于3k的普通文件或目录: find . -type d -o -type f -size +4k ! mtime -10
121.查看文件状态详情:stat a.txt   解析:(atime相当于执行它调用它,cat读不算。mtime相当于vi它,ctime相当于修改他权限,连接数改变的时间)
122.查看磁盘分区的uuid号:blkid
123.查看swap交换分区的挂载情况:swapon -s
124.挂载所有交换分区:swapon -a
125.挂载交换分区:swapon /dev/sdb1    注意这是以sdb1举例,实际要挂载的分区自己定,
126.查看内核是否已经识别到了分区:cat /proc/partations
127.使用lsblk /dev/sda列出本磁盘有关的所有块信息,以及依赖关系。这玩意能列出硬盘,u盘,光驱的信息。
##进程管理
128.静态查看系统进程:ps aux    a表示当前终端下所有进程,u表示以用户为主的格式输出,x当前用户在所有终端下的进程
129.动态查看系统进程:top
130.杀死进程id为9999的进程: kill 9999
131.强制杀死id为19999的进程:kill -9 19999
132.查询进程名字叫httpd的起始id:pgrep -lo httpd   (返回结果如: 3693 httpd)   -l列出程序名和进程id,-o进程的起始id
133.查询名字叫httpd的进程终止id:pgrep -ln httpd   (返回结果如: 3721 httpd)  -n列出进程的结束id。
134.查询名字叫httpd的所有进程的id和程序名:pgrep l- httpd     (返回结果如:3721 httpd换行3722 httpd换行3723  httpd......)
134.查询名字叫Httpd的所有进程id号:pgrep httpd    (返回结果如:3721换行3722换行等等。。)
###
135.显示目录的真实路径:pwd -P    (如目录/sbin/的真实目录就是/usr/sbin,可以cd /sbin/然后pwd执行,再执行pwd -P)
136.显示文件或目录属性的最后修改时间: ls -clh /home/kahn
137.按时间排序显示文件夹内容: ls -tl /home/kahn
138.计算文件大小: du kahn.txt   显示的结果是以k为单位单一数字  , 带参数-h 就可以显示单位k。
139.将/home/kahn/xFolder/a.txt建个软连接扔到/tmp/下:ln -s a.txt /tmp/a.txt.ln    (同理也可以给文件夹做软连接)
140.创建一个硬链接: ln /home/kahn/b.txt /tmp/b.txt.ln
141.下载一个文件到当前路径下:wget  http://a.com/a.rar
142.将文件下载到指定的目录下:wget -O /home/kahn/x.rar http://a.com/a.rar     (-b后台下载,-c断点续传)
143.下载一个文件到当前路径下,并且限速100.9k速度:wget -limit-rate=100.9k http://a.com/a.rar
144.查看后台任务:jobs
##find
145.查找/home/下所有.txt的文件:find /home/ -name '*.txt' -type f
146.查找/home/下所有的.txt文件,并列出详细信息:find /home/ -name '*.txt' -type f | xargs ls -l
147.在/下查找所有属于kahn组的文件: find / -group kahn
148.在/下查找大于1M的文件: find / -size +1M -a -type f     (-a并且的意思,-o或者的意思)
149.查找系统中三天内被修改的文档: find / -mtime -3  比如今天是周四,那就找周二到现在的文件
150.查找系统中三天前被修改的文档: find / -mtime +3
151.查找系统中两天前的当天被修改的文档: find / -mtime 2
152.查找系统中昨天被修改过的文件:find / -mtime 1
##grep
153.查找某文档中包含特定字母的行:grep kahn a.txt
153.查找某文档中包含特定单词的行:grep -w kahn a.txt      完整的英文单词。  -v反转查找
154.朝招某文档中不包含特定单词的行:grep -w  -v kahn a.txt      若行中不包含完整单词kahn的都会被查找到,空行也会被找到
###
155.查看centos版本:cat /etc/redhat-release     结果如CentOS Linux release 7.6.1810 (Core) 
156.查看系统内核版本: uname -a    结果如Linux localhost.localdomain 3.10.0-957.el7.x86_64
157.查看系统负载情况: uptime    结果如00:53:19 up  5:45,  1 user,  load average: 0.00, 0.01, 0.05
158.动态查看系统运行时间:watch -n -1 uptime
159.显示当前内存使用情况: free     参数-k,-m,-g 按单位换算查看
160.查看磁盘情况:df         参数-h详细信息、-i详细磁盘节点信息、-T显示文件系统类型
161.给某网卡设置ip(还不确定这是不是临时的):ifconfig eno37213690 10.0.0.1 netmask 255.0.0.0
162.启用某网卡:ifconfig eno37213690 up                   eno37213690代表网卡名字
163.禁用某网卡:ifconfig eno37213690 down                   eno37213690代表网卡名字
164.查看本机端口(不太确定):netstat -nutlp
165.查看本机端口并找到指定端口:netstat -nutlp | grep 22  参数:-n使用数字形式显示ip和端口号,-u查看udp连接,-t查看tcp连接,-l仅仅显示正在监听的信息,-
166.动态查看进程信息:top  参数-d设置进程间隔时间、-p查看指定PID号的进程信息。
167.5秒刷新一次动态查看进程信息:top -d 5
168.动态查看进程ID为1和2和3的信息:top -d 1 -p 1,2,3
169.动态查看进程ID为3721的信息:top -d 1 -p 3721
170.查看上条命令是否成功:echo $?            返回结果0表示成功,1-125失败,126找到了命令但无法执行,127没找到命令,128命令被强制结束
171.打印型号*:echo \*    这个命令是练习转移字符\。如果是echo *相当于执行了ls。
172.打印家目录:echo $HOME       或echo "$HOME"   双引号。
173.打印出字符$HOME:echo ‘$HOME’     注意这里是单引号,强制转义成字符串。
174.反引号(键盘左上角波浪号一个符号的那个)强制执行shell命令:# echo "Today is `date +%D`"  结果Today is 08/06/19
175.在双引号中执行命令:[root@localhost /]# echo "Today is $(date +%D)"    结果同上。
##seq
176.生成1-10的数字:seq 10
177.生成1-10的数字,并只显示5以前的全部数字:seq 10 | grep 5 -B 4   (结果1,2,3,4,5。-B 4代表5以前显示的几个数值,换成5或6及以上都行,因为5以前就4个数字了,再多也就显示4个)
178.生成1-10的数字,并只显示5以后的全部数字:seq 10 | grep 5 -A 3721  (结果显然是5,6,7,8,9,10)
179.生成1-10的数字,并只显示5以前的2个数字:seq 10 | grep 5 -B 2     (返回结果是5,4,3。相对于匹配值5以前的2个)
180.生成1-10的数字,并只显示5前后的分别的2个数字:seq 10 | grep 5 -C 2  (结果显然是3,4,5,6,7)
##sed
181.在文本中的第3行后面追加一行内容kahn:sed ‘3a kahn’ a.txt    注意源文件根本没变,仅仅是显示内容变了。
182.在文本中的第7行前面追加一行内容kahn:sed ‘7i kahn’ a.txt 
183.在文本中的第1行前面追加一行内容kahn:sed ‘1i kahn’ a.txt    即结果是第一行显示的是kahn四个字符。
184.将文本中的所有yes替换成no:sed 's/yes/no/g' a.txt   即s代表替换,/g代表将保持缓冲区的内容复制到模式缓冲区。
185.删除文本中第3和4行的内容
##date
186.将系统时间设置为2019年8月17日: date -s 8/17/19
187.将系统时间设置为15点16分50秒: datte -s 15:16:50
188.将硬件时间设置为2019年8月17日15点16分:hwclock --set --date="8/17/19 15:16"
189.将系统时区设置成上海: timedatectl set-timezone Asia/Shanghai
##网卡
190.设置网卡名为ens33的设备关闭网络连接:nmcli connection down ens33
191.设置名为ens33的网卡开机自动启动:nmcli connection modify ens33 connection.autoconnect yes
192.启用名为ens33的网卡:nmcli connection up ens33
###
193.批量创建多层文件夹: mkdir -p /xsmb/{sales,design.develop,ops,share/{sales,design,develop,ops}} ,可以用tree看看结构
194.过滤掉某文档中的#开头的行,过滤掉空白行:cat /home/kahn/a.txt |grep -v ^#|grep -v ^$
195.查看cup核心数:[root@com47 ~]# lscpu |awk '/^CPU\(s\)/{print $2}' 或lscpu |grep "^CPU(s):" |awk -F" " '{print $2}'
 

你可能感兴趣的:(运维,Linux)