Linux指令记录合集(长期更新)

此命令合集适合于Centos 7

systemctl

服务相关指令
1
2
3
4
5
6
7
systemctl start service-name        #启动某服务
systemctl stop service-name #停止某服务
systemctl restart service-name #重启某服务
systemctl enable service-name #设置开机自动启动某服务
systemctl disable service-name #设置开机停止自动启动某服务
systemctl list-units --type=service #查看所有已启动的服务
systemctl list-unit-files #查看已经安装的所有服务
添加程序到服务

systemctl脚本存放在:/usr/lib/systemd/
  [Unit]部分主要是对这个服务的说明,内容包括Description和After,Description 用于描述服务,After用于描述服务类别
  [Service]部分是服务的关键,是服务的一些具体运行参数的设置.
  Type=forking是后台运行的形式,
  User=users是设置服务运行的用户,
  Group=users是设置服务运行的用户组,
  PIDFile为存放PID的文件路径,
  ExecStart为服务的具体运行命令,
  ExecReload为重启命令,
  ExecStop为停止命令,
  PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!
[Install]部分是服务安装的相关设置,可设置为多用户的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#以tomcat为例
#vim /usr/lib/systemd/system/tomcat.service

[Unit]
Description=java tomcat project
After=tomcat.service

[Service]
Type=forking
User=users
Group=users
PIDFile=/usr/local/tomcat/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=
ExecStop=/usr/local/tomcat/bin/shutdown.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target

firewall-cmd

防火墙相关

1
2
firewall-cmd --add-port=port-number/protocols --zone=zone-name --permanent #在zone-name区域永久开启protocol协议的port-number端口
firewall-cmd --zone=public --list-all # 显示所有公共区域(public)

ln

1
ln -s source link  #创建一个指向source的link(快捷方式)

后台运行命令

  1. &
      当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上& 实现后台运行。例如:sh test.sh & 适合在后台运行的命令有f i n d、费时的排序及一些s h e l l脚本。在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:
    1
    command  >  out.file  2>&1  &   #所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中。
  2. 2>&1解析
      2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个&, 是让该命令在后台执行。
      试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.
  3. nohup
      使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。nohup命令可以在你退出帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。该命令的一般形式为:
    1
    2
    3
    nohup command &  #在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:
    nohup command > myout.file 2>&1 &
    nohup command > myout.file 2>&1 & echo $! > pid #将pid号存储到文件中
  4. ctrl + z
      可以将一个正在前台执行的命令放到后台,并且处于暂停状态。
  5. jobs
      查看当前有多少在后台运行的命令。
    1
    jobs -l #可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。

硬件信息查看

1
2
3
cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l    #查看物理cpu个数
cat /proc/cpuinfo |grep "cpu cores"|wc -l #查看每个物理cpu中的core个数
cat /proc/cpuinfo |grep "processor"|wc -l #逻辑cpu的个数

性能信息查看

1
2
top         #性能监控程序
free -m #查看内存使用情况

保存程序运行pid到文件

1
2
3
4
5
6
7
##通过命令行启动进程,然后通过ps ,grep, awk 关键字获取对应pid
ps -ef|grep s |grep -v grep |awk '{print $2}' > process.PIDFile
###如果是使用nohup创建,查看当前shell最后一个后台进程pid $!
##注意,下面的命令要放到sh文件里面执行,不能从命令行执行**
nohup command & echo $! > process.pid
# 既写入文件又输出到标准输出
nohup command & echo $!|tee process.pid

修改开机启动模式

1
2
systemctl set-default graphical.target #由命令行模式更改为图形界面模式
systemctl set-default multi-user.target #由图形界面模式更改为命令行模式

解压tar.gz

tar命令说明:
  语法:tar [主选项+辅选项] 文件或目录
  使用该命令时,主选项必须有,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。
主选项:【一条命令以下5个参数只能有一个】
  -c: —create 新建一个压缩文档,即打包
  -x: —extract,—get解压文件
  -t: —list,查看压缩文档里的所有内容
  -r:—append 向压缩文档里追加文件
  -u:—update 更新原压缩包中的文件
辅助选项:
  -z:是否同时具有gzip的属性?即是否需要用gzip压缩或解压?一般格式为x.tar.gz或xx.tgz
  -j:是否同时具有bzip2的属性?即是否需要用bzip2压缩或解压?一般格式为x.tar.bz2
  -v:显示操作过程!这个参数很常用
  -f:使用文档名,注意,在f之后要立即接文档名,不要再加其他参数!
  -C:切换到指定目录
  —exclude FILE:在压缩过程中,不要将FILE打包

1
tar -zxvf xxx.tar.gz -C path

配置环境变量

1
2
vim /etc/profile    #修改环境变量文件内容  export xx_home=path
source /etc/profile #使环境变量生效