文章目录
Linux常用命令
目录相关
find命令
- 查找指定文件名的文件(不区分大小写):
find -iname "MyProgram.c"
。 - 查找 home 目录下的所有空文件:
find ~ -empty
。 - 【常用】如何在 /usr 目录下找出大小超过 10MB 的文件?
- 输入命令
find /usr -type f -size +10240k
命令。
- 输入命令
ls命令
- 以易读的方式显示文件大小(显示为 MB,GB…):
ls -lh
。 - 以最后修改时间升序列出文件:
ls -ltr
。 - 在文件名后面显示文件类型:
ls -F
。
rm 命令
- 删除文件前先确认:
rm -i filename.txt
。 - 在文件名中使用 shell 的元字符会非常有用。删除文件前先打印文件名并进行确认:
rm -i file*
。 - 递归删除文件夹下所有文件,并删除该文件夹:
rm -r example
。
cp 命令
- 拷贝 file1 到 file2 ,并保持文件的权限、属主和时间戳:
cp -p file1 file2
。 - 拷贝 file1 到 file2 ,如果 file2 存在会提示是否覆盖:
cp -i file1 file2
。
mount 命令
-
如果要挂载一个文件系统,需要先创建一个目录,然后将这个文件系统挂载到这个目录上:
# mkdir /u01 # mount /dev/sdb1 /u01 1234
-
也可以把它添加到 fstab 中进行自动挂载,这样任何时候系统重启的时候,文件系统都会被加载:
/dev/sdb1 /u01 ext2 defaults 0 2
less 命令
-
这个命名可以在不加载整个文件的前提下显示文件内容,在查看大型日志文件的时候这个命令会非常有用:
less huge-log-file.log
。 -
当你用 less 命令打开某个文件时,下面两个按键会给你带来很多帮助,他们用于向前和向后滚屏:
CTRL+F – forward one window CTRL+B – backward one window 按q键退出
通用命令
grep 命令
- 在文件中查找字符串(不区分大小写):
grep -i "the" demo_file
。 - 输出成功匹配的行,以及该行之后的三行:
grep -A 3 -i "example" demo_text
。 - 在一个文件夹中递归查询包含指定字符串的文件:
grep -r "ramesh" *
。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wCUwR97Y-1639019345392)(C:\Users\Acerola\AppData\Roaming\Typora\typora-user-images\image-20211203155501630.png)]
vim 命令
- 打开文件并跳到第 10 行:
vim +10 filename.txt
。 - 打开文件跳到第一个匹配的行:
vim +/search-term filename.txt
。 - 以只读模式打开文件:
vim -R /etc/passwd
。 - i键: 插入模式
- Esc键: 退出模式
- 按":"键后,q键退出,wq保存并退出,!wq强制保存并退出
压缩相关
tar 命令(.tar)
- 创建一个新的 tar 文件:
tar cvf archive_name.tar dirname/
。 - 解压 tar 文件:
tar xvf archive_name.tar
。 - 查看 tar 文件:
tar tvf archive_name.tar
。
gzip 命令(.gz)
- 创建一个
*.gz
的压缩文件:gzip test.txt
。 - 解压
*.gz
文件:gzip -d test.txt.gz
。 - 显示压缩的比率:
gzip -l *.gz
。
bzip2 命令(.bz2)
- 创建
*.bz2
压缩文件:bzip2 test.txt
。 - 解压
*.bz2
文件:bzip2 -d test.txt.bz2
。
unzip 命令(.zip)
- 解压
*.zip
文件:unzip test.zip
。 - 查看
*.zip
文件的内容:unzip -l jasper.zip
。
tar 命令(.tar.gz/.tgz)
- 解压
*.tar.gz/.tgz
文件:tar -zxvf test.tar.gz
。 - 压缩
*.tar.gz/.tgz
文件的内容:tar -zcvf test.tar.gz test
。把test压缩为test.tar.gz文件
系统命令
export 命令
- 输出跟字符串 oracle 匹配的环境变量:
export | grep ORCALE
。 - 设置全局环境变量:
export ORACLE_HOME=/u01/app/oracle/product/10.2.0
。
ps命令
- 根据进程名查询某一进程
ps -aux|grep "mysql"
或ps -ef|grep "mysql"
kill 命令
kill 用于终止一个进程。一般我们会先用 ps -ef
查找某个进程得到它的进程号,然后再使用 kill -9
进程号终止该进程。你还可以使用killall、pkill、xkill 来终止进程
注意,
-9
表示强制终止指定进程。实际场景下,不会这么做。但一般情况下,只需要
kill 进程编号
就可结束。
passwd 命令
- passwd 用于在命令行修改密码,使用这个命令会要求你先输入旧密码,然后输入新密码:
passwd
。 - 超级用户可以用这个命令修改其他用户的密码,这个时候不需要输入用户的密码:
passwd USERNAME
。 - passwd 还可以删除某个用户的密码,这个命令只有 root 用户才能操作,删除密码后,这个用户不需要输入密码就可以登录到系统:
passwd -d USERNAME
。
yum 命令
- 使用 yum 安装 apache :
yum install httpd
。 - 更新 apache :
yum update httpd
。 - 卸载/删除 apache :
yum remove httpd
。 - 查看安装的所有软件 :
yum list all
- 查看yum仓库中指定包名的软件包,可以使用通配符 :
yum list all mysql
- 只显示已安装的包 :
yum list installed
- 只显示没有安装,但可安装的包 :
yum list available
- 只显示没有安装,但可安装的包 :
yum list updates
- 显示不属于任何仓库的,额外的包 :
yum list extras
rpm 命令
- 使用 rpm 安装 apache :
rpm -ivh httpd-2.2.3-22.0.1.el5.i386.rpm
。 - 更新 apache :
rpm -uvh httpd-2.2.3-22.0.1.el5.i386.rpm
。 - 卸载/删除 apache :
rpm -ev httpd
。
shutdown 命令
- 关闭系统并立即关机:
shutdown -h now
。 - 10 分钟后关机:
shutdown -h +10
。 - 重启:
shutdown -r now
。 - 重启期间强制进行系统检查:
shutdown -Fr now
。
service 命令
- service 命令用于运行 System V init 脚本,这些脚本一般位于
/etc/init.d
文件下,这个命令可以直接运行这个文件夹里面的脚本,而不用加上路径。 - 查看服务状态:
service mysql status
。 - 查看所有服务状态:
service --status-all
。 - 重启服务:
service mysql restart
。
chmod 命令
- chmod 用于改变文件和目录的权限。
- 给指定文件的属主和属组所有权限(包括读、写、执行):
chmod ug+rwx file.txt
。 - 删除指定文件的属组的所有权限:
chmod g-rwx file.txt
。 - 修改目录的权限,以及递归修改目录下面所有文件和子目录的权限:
chmod -R ug+rwx file.txt
。
网络相关
ifconfig 命令
- ifconfig 用于查看和配置 Linux 系统的网络接口。
- 查看所有网络接口及其状态:
ifconfig -a
。 - 使用 up 和 down 命令启动或停止某个接口:
ifconfig eth0 up
和ifconfig eth0 down
。
ping 命令
- ping 一个远程主机,只发 5 个数据包:
ping -c 5 gmail.com
。
curl 命令
如果我们使用 ping 测试某个地址是否能连接,那么 curl 测试用个 URL 是否可以访问。
? 写出一个 curl 命令,访问指定服务器 61.135.169.121 上的如下 URL :http://www.baidu.com/s?wd=test ,访问的超时时间是 20 秒
- 输入命令
curl --connect-timeout 20 http://61.135.169.121/s?wd=test
。
wget 命令
- 使用 wget 从网上下载软件、音乐、视频:
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz
。 - 下载文件并以指定的文件名保存文件:
wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701
。
ftp 命令
-
ftp 命令和 sftp 命令的用法基本相似。
-
连接 ftp 服务器并下载多个文件:
$ ftp IP/hostname ftp> mget *.html 123
-
显示远程主机上文件列表:
ftp> mls *.html - /ftptest/features.html /ftptest/index.html /ftptest/othertools.html /ftptest/samplereport.html /ftptest/usage.html
Shell脚本
打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,文本内容:
#!/bin/bash
echo "Hello World !"
注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。
执行:
[root@iZ8vb4g0dc50ct82sm8vi5Z acerola]# chmod +x ./test.sh
[root@iZ8vb4g0dc50ct82sm8vi5Z acerola]# ./test.sh
helloworld
mysql安装
只说重点,安装后需要给root用户开放远程连接权限
mysql> update user set host="%" where user="root"
mysql> flush privileges
tomcat安装
只说重点,环境配置,是/etc/profile文件
CATALINA_HOME=/usr/local/tomcat
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
export PATH JAVA_HOME CLASSPATH CATALINA_HOME
防火墙
-
查看防火墙状态
systemctl status firewalld
-
开启防火墙并开机自启
systemctl start firewalld systemctl enable firewalld
-
开放端口
#开放一个22端口 firewall-cmd --zone=public --add-port=22/tcp --permanent #重载设置,使开放生效 firewall-cmd --reload
-
查询放行是否生效
firewall-cmd --zone=public --query-port=22/tcp
-
查看当前打开的所有端口
firewall-cmd --zone=public --query-port=22/tcp
-
限制端口
firewall-cmd --zone=public --remove-port=22/tcp --permanent #重载设置 firewall-cmd --reload
-
批量开放或者限制
#比如开启100-500之间的 firewall-cmd --zone=public --add-port=100-500/tcp --permanent #重载设置 firewall-cmd --reload #批量限制100-500 firewall-cmd --zone=public --remove-port=100-500/tcp --permanent #重载配置 firewall-cmd --reload
-
IP地址限制或解除
#比如限制IP为192.168.0.200的地址禁止访问80端口即禁止访问机器 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.200" port protocol="tcp" port="80" reject" #重载配置 firewall-cmd --reload #查看已经设置的配置 firewall-cmd --zone=public --list-rich-rules #解除限制 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.200" port protocol="tcp" port="80" accept" #重载配置 firewall-cmd --reload
-
IP地址段限制
#如我们需要限制10.0.0.0-10.0.0.255这一整个段的IP,禁止他们访问 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.0.0.0/24" port protocol="tcp" port="80" reject" #操作基本同上
pv4" source address=“192.168.0.200” port protocol=“tcp” port=“80” accept"
#重载配置
firewall-cmd --reload
* IP地址段限制
```bash
#如我们需要限制10.0.0.0-10.0.0.255这一整个段的IP,禁止他们访问
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.0.0.0/24" port protocol="tcp" port="80" reject"
#操作基本同上