CentOS实战开发常用指令

新建、删除、移动、复制

1.新建文件夹

mkdir 文件名

新建一个名为test的文件夹在home下

view source1 mkdir /home/test

2.新建文本

在home下新建一个test.sh脚本

 vi /home/test.sh

3.删除文件或文件夹

-r是递归的删除参数表中的目录及其子目录,目录将被清空并且删除。

当删除目录包含的具有写保护的文件时用户通常是被提示的。

-f是不提示用户,删除目录下的所有文件。

rm -rf /home/test

4.移动文件或文件夹

mv [options] 源文件或目录 目标文件或目录

示例:

1、移动hscripts文件夹/目录下的所有文件,目录和子目录到tmp目录

mv hscripts tmp

分析:在上述命令中,如果tmp目录已经存在,mv命令将移动hscripts文件夹/目录下的所有文件,目录和子目录到tmp目录。 如果没有tmp目录,它将重命名 hscripts目录为tmp目录。

2、移动多个文件/更多问价到另一目录

mv file1.txt tmp/file2.txt newdir

这个命令移动当前目录的file1.txt文件和tmp文件夹/目录的file2.txt文件到newdir目录。

参数:

-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答”y”或”n”,这样可以避免误覆盖文件。

-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。

5.复制文件或文件夹

cp [options] 来源档(source) 目的档(destination)

参数:
-a :相当于 -pdr 的意思;
-d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身;
-f :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;
-i :若目的档(destination)已经存在时,在覆盖时会先询问是否真的动作!
-l :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;
-p :连同档案的属性一起复制过去,而非使用预设属性;
-r :递归持续复制,用于目录的复制行为;
-s :复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案;
-u :若 destination 比 source 旧才更新 destination !
最后需要注意的,如果来源档有两个以上,则最后一个目的文件一定要是『目录』才行!

示例:

1、复制两个文件:

cp file1 file2

上述cp命令复制文件file1.php 的内容到文件file2.php中。

2、备份拷贝的文件:

cp -b file1.php file2.php

创建文件file1.php的带着符号 ‘~’的备份文件file2.php~。
3、复制文件夹和子文件夹:

cp -R scripts scripts1

上面的 cp 命令从 scripts 复制文件夹和子文件夹到 scripts1。

6、创建目录

mkdir 文件名
mkdir /var/www/test

修改查看文本内容

编辑文件

vi 文件名

退出不保存

Esc
:q

强制退出不保存

Esc
:q!

退出并保存

Esc
:wq

强制退出并保存

Esc
:wq!

挂载硬盘

双系统挂载windows下的硬盘,安装ntfs-3g后执行以下命令,其中/dev/sdc1是硬盘名/root/桌面/windowsC是挂载位置:

mount -t ntfs-3g /dev/sdc1 /root/桌面/windowsC

安装卸载

yum

安装一个软件时

yum -y install httpd

安装多个相类似的软件时

yum -y install httpd*

安装多个非类似软件时

yum -y install httpd php php-gd mysql

卸载一个软件时

yum -y remove httpd

卸载多个相类似的软件时

yum -y remove httpd*

卸载多个非类似软件时

yum -y remove httpd php php-gd mysql

RPM

RPM 安装操作
命令:

rpm -i 需要安装的包文件名

举例如下:

rpm -i example.rpm 安装 example.rpm 包;
rpm -iv example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息;
rpm -ivh example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息及安装进度;

RPM 查询操作
命令:

rpm -q …

附加查询命令:
a 查询所有已经安装的包以下两个附加命令用于查询安装包的信息;
i 显示安装包的信息;
l 显示安装包中的所有文件被安装到哪些目录下;
s 显示安装版中的所有文件状态及被安装到哪些目录下;以下两个附加命令用于指定需要查询的是安装包还是已安装后的文件;
p 查询的是安装包的信息;
f 查询的是已安装的某文件信息;
举例如下:

rpm -qa | grep tomcat4 查看 tomcat4 是否被安装;
rpm -qip example.rpm 查看 example.rpm 安装包的信息;
rpm -qif /bin/df 查看/bin/df 文件所在安装包的信息;
rpm -qlf /bin/df 查看/bin/df 文件所在安装包中的各个文件分别被安装到哪个目录下;

RPM 卸载操作
命令:

rpm -e 需要卸载的安装包

在卸载之前,通常需要使用rpm -q …命令查出需要卸载的安装包名称。
举例如下:

rpm -e tomcat4 卸载 tomcat4 软件包

RPM 升级操作
命令:

rpm -U 需要升级的包

举例如下:

rpm -Uvh example.rpm 升级 example.rpm 软件包

RPM 验证操作
命令:

rpm -V 需要验证的包

举例如下:

rpm -Vf /etc/tomcat4/tomcat4.conf

输出信息类似如下:

S.5….T c /etc/tomcat4/tomcat4.conf

其中,S表示文件大小修改过,T表示文件日期修改过。限于篇幅,更多的验证信息请参考rpm帮助文件:man rpm
RPM 的其他附加命令
–force 强制操作 如强制安装删除等;
–requires 显示该包的依赖关系;
–nodeps 忽略依赖关系并继续操作

强制退出当前执行的命令

Ctrl+C,可以退出所有正在执行的操作

防火墙默认开启会导致无法被访问,CentOS7关闭防火墙:

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

防火墙开放端口:

配置规则

iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

保存规则

/usr/sbin/iptables-save

安装Anaconda之后,打开Anaconda Navigator:

anaconda-navigator

安装配置好jupyter notebook之后,打开jupyter notebook:

jupyter notebook --ip=0.0.0.0 --no-browser --allow-root

打开MySQL服务:

service mysqld start

查看PHP版本信息:

php -i |head -n 100

root用户打不开chromium浏览器,需要在chromium的快捷方式命令中如下填写,其中/root/my_chromium使用位置需要手动创建:

chromium-browser --no-sandbox --user-data-dir=/root/my_chromium

查看端口占用:

netstat -tunlp

运行Java网站时,提示端口被占用,多半是JVM没有正常关闭所以导致再次启动Tomcat的时候端口打不开,此时运行一下两条指令:

ps -ef|grep java|grep -v grep(查看java进程,记下JVM的进程号)

kill -9 JVM的进程号(杀死占用端口的JVM进程)

桌面卡死,杀死桌面进程,她自己会重新拉起:

killall -9 gnome-shell

查看当前位置

pwd

Shell判断指令

[ -a FILE ] 如果 FILE 存在则为真。 
[ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。
[ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。 
[ -d FILE ] 如果 FILE 存在且是一个目录则为真。 
[ -e FILE ] 如果 FILE 存在则为真。
[ -f FILE ] 如果 FILE 存在且是一个普通文件则为真。 
[ -g FILE ] 如果 FILE 存在且已经设置了SGID则为真。 
[ -h FILE ] 如果 FILE 存在且是一个符号连接则为真。 
[ -k FILE ] 如果 FILE 存在且已经设置了粘制位则为真。 
[ -p FILE ] 如果 FILE 存在且是一个名字管道(F如果O)则为真。 
[ -r FILE ] 如果 FILE 存在且是可读的则为真。 
[ -s FILE ] 如果 FILE 存在且大小不为0则为真。  
[ -t FD ] 如果文件描述符 FD 打开且指向一个终端则为真。 
[ -u FILE ] 如果 FILE 存在且设置了SUID (set user ID)则为真。 
[ -w FILE ] 如果 FILE 如果 FILE 存在且是可写的则为真。 
[ -x FILE ] 如果 FILE 存在且是可执行的则为真。 
[ -O FILE ] 如果 FILE 存在且属有效用户ID则为真。 
[ -G FILE ] 如果 FILE 存在且属有效用户组则为真。 
[ -L FILE ] 如果 FILE 存在且是一个符号连接则为真。  
[ -N FILE ] 如果 FILE 存在 and has been mod如果ied since it was last read则为真。
[ -S FILE ] 如果 FILE 存在且是一个套接字则为真。  
[ FILE1 -nt FILE2 ] 如果 FILE1 has been changed more recently than FILE2,or 如果 FILE1 exists and FILE2 does not则为真。  
[ FILE1 -ot FILE2 ] 如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在则为真。  
[ FILE1 -ef FILE2 ] 如果 FILE1 和 FILE2 指向相同的设备和节点号则为真。 
[ -o OPTIONNAME ] 如果 shell选项 “OPTIONNAME” 开启则为真。 
[ -z STRING ] “STRING” 的长度为零则为真。  
[ -n STRING ] or [ STRING ] “STRING” 的长度为非零 non-zero则为真。 

[ ARG1 OP ARG2 ] “OP” is one of -eq, -ne, -lt, -le, -gt or -ge. These arithmetic binary operators return true if “ARG1” is equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to “ARG2”, respectively. “ARG1” and “ARG2” are integers. 


数字判断 
[ $count -gt "1"] 如果$count 大于1 为真
-gt  大于
-lt    小于
-ne  不等于
-eq  等于
-ge  大于等于
-le  小于等于

[ STRING1 == STRING2 ] 如果2个字符串相同。 “=” may be used instead of “==” for strict POSIX compliance则为真。  
[ STRING1 != STRING2 ] 如果字符串不相等则为真。  
[ STRING1 < STRING2 ] 如果 “STRING1” sorts before “STRING2” lexicographically in the current locale则为真。  
[ STRING1 > STRING2 ] 如果 “STRING1” sorts after “STRING2” lexicographically in the current locale则为真。  

Shell常见报错

语法错误: 未预期的文件结尾

运行一个脚本时报错:./begin_one_day.sh:行31: 语法错误: 未预期的文件结尾,但是我的脚本文件明明没有31行,这是因为shell脚本语法检查不准确导致的,真正的错误不在第31行,遇到这种错误应该仔细检查shell脚本的全部内容,不要一脸懵逼。 

$’\r’: 未找到命令

原因

  是因为命令直接从windows 复制过来导致的
解决

  yum install dos2unix

  dos2unix **.sh 进行转换

  再次执行即可

亲,如果您感觉本文有用,请点个赞再走吧!!(>‿◠)✌

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章