linux基础命令笔记

一、进程相关

1、查看进程 ps -ef |grep  进程名

2、杀死进程 pkill 进程名;killall 进程名;kill -9 $(pidof 进程关键字);kill -9 进程号

3、在任务运行的过程中,ctrl+z表示暂停任务,放在后台

jobs暂停所有后台任务
将任务放在后台运行,在后面加上 &
查看后台程序 jobs -l
将工作恢复到前台 fg %工作号(不是PID)
将后台暂停的工作恢复到后台运行 bg %工作号

4、通过systemctl status 进程名    ,来查看进程运行状态

active(running):一次或多次持续处理的运行
active(exited):成功完成一次性的配置
active(waiting):运行中,等待一个事件
inactive:不运行
enabled:开机启动
disabled:开机不启动
static:开机不启动,但可被另一个启用的服务激活

5、ps命令查看进程,具体进程状态表示如下:

D 不可中断 Uninterruptible sleep (usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核2.6开始无效)
X 死掉的进程

< 高优先级
N 低优先级
L 有些页被锁进内存
s 包含子进程
+ 位于后台的进程组;
l 多线程,克隆线程 multi-threaded (using CLONE_THREAD, like NPTL pthreads do)

6、top命令相关内容详解

linux下top命令:

含义:

I try to explain  these:
us: is meaning of "user CPU time"
sy: is meaning of "system CPU time"
ni: is meaning of" nice CPU time"
id: is meaning of "idle"
wa: is meaning of "iowait" 
hi:is meaning of "hardware irq"
si : is meaning of "software irq"
st : is meaning of "steal time"

中文翻译为:

us 用户空间占用CPU百分比
sy 内核空间占用CPU百分比
ni 用户进程空间内改变过优先级的进程占用CPU百分比
id 空闲CPU百分比
wa 等待输入输出的CPU时间百分比
hi 硬件中断
si 软件中断 
st: 实时

二、路由相关

1、查看路由表 :route -n;
2、添加路由: route add 目的网段/掩码 via 下一跳 dev enss3;
3、cat /etc/sysconfig/network-scripts/route-网卡名 在该文件里写静态路由
4、修改网卡地址:nmcli connection modify eth0 connection.autoconnect yes ipv4.methord manaul ipv4.addresses 192.168.1.2/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8

  开启网卡 : nmcli connection up eth0
  查看网卡: nmcli connection show eth0

三、查看文件

1、cat 查看文件内容
追加  >>
清除原文  >
2、tac 从后面往前显示
3、more可显示更多内容ctrl+d,ctrl+f
4、less /+字符,向下搜索;?+字符,向上搜索
5、head显示文件前十行,-n20 参数可显示前20行
6、tail显示文件后十行

7、vim的一些基础操作

打开多个文件  vim file1 file2

文件切换  :ctrl+^

显示行号:nu

显示隐藏字符:set invlist  

还原:set  nolist

/word  向下查找word

?word 向上查找word

n 重复前一次查找

N 重复前一次查找,反向进行

:n1,n2s/word1/word2/g   n1,n2为数字,从n1到n2行,将word1替换为word2

:1,$s/word1/word2/g 从第一行到最后一行,将word1替换为word2

:1,$s/word1/word2/gc 替换前确认confirm是否需要替换。

复制到最后一行 yG   p粘贴

:%d  或者ggdG  删除所有内容

四、查看系统相关信息

1.Linux查看当前操作系统版本信息 cat /proc/version

2.Linux查看版本当前操作系统内核信息 uname -a

3.linux查看版本当前操作系统发行信息 cat /etc/issue 或 cat /etc/centos-release

4.Linux查看cpu相关信息,包括型号、主频、内核信息等 cat /proc/cpuinfo

5.查看内存信息 # cat /proc/meminfo

6.查看内存插槽几个,以及安了几条内存。dmidecode |grep -A16 "Memory Device$" |grep Size

7.查看机器型号 # dmidecode | grep "Product Name"

8.查看网卡信息 # dmesg | grep -i eth 或者 dmesg |egrep -i eth

9.查看有几块网卡 lspci |egrep -i eth

10.lsb_release -a 查看内核版本

五、Linux系统基础扫盲

1、计算器:bc
2、查手册man +“ ”;或写“ ” --help
3、进入睡眠模式suspend
4、/usr:软件放置处 /etc:配置文件 /var:与系统运作想跟你
5、/proc:本身是虚拟文件系统 ,记录系统核心,进程,存在cpu中
6、cd - 代表前一次工作目录 cd ~ 代表当前用户所在家目录
7、nl 显示并输出行号 od以二进制读取文件内容
 modification time (mtime):ls -l
当该文件的『内容数据』变更时,就会更新这个时间!内容数据指的是文件的内容,而不是文件的属性或权限喔!s
 status time (ctime):ls -l --time=ctime
当该文件的『状态(status)』改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间啊。
 access time (atime): ls -l --time=atime
当『该文件的内容被取用』时,就会更新这个读取时间(access)。举例来说,我们使用cat 去读取/etc/man_db.conf , 就会更新该文件的atime 了。
8、chattr +/-i 赋予隐藏属性 lsattr 显示隐藏属性
9、脚本文件名搜寻 which
10、文件档搜寻whereis locate updatedb find
11、find利用时间参数可以查出变动过的文件,也可以查使用者的文件,也可以查询与文件名有关的参数,还有额外搜索动作,可以通过通配符查找
12、ln +文件;建立硬链接; ln -s +文件/文件夹 软链接

13、linux文件夹说明,如遇到某些系统命令不能使用,要确保这些命令在环境变量里设置了,否则就要带路径

./bin:bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。

/usr/bin:主要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。

/sbin:主要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。

/usr/sbin:放置一些网路管理的必备程式例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。

/etc的特点:包含了广泛的系统配置文件,这些配置文件几乎包含了系统配置的方方面面,是一个底层的重要项目,通常添加一些次等重要的零碎事物。

/var的特点:包含系统运行时要改变的数据。其中包括每个系统是特定的,即不能够与其他计算机共享的目录。

/proc 文件系统是一种内核和内核模块用来向进程(process) 发送信息的机制(所以叫做/proc)。这个伪文件系统让你可以和内核内部数据结构进行交互,获取 有关进程的有用信息,在运行中(on the fly) 改变设置(通过改变内核参数)。 与其他文件系统不同,/proc 存在于内存之中而不是硬盘上。proc文件系统以文件的形式向用户空间提供了访问接口,这些接口可以用于在运行时获取相关部件的信息或者修改部件的行为,因而它是非常方便的一个接口。

六、压缩与解压缩

1、*.tar 用 tar -xvf 解压      tar   -x  文件.tar  -C   解压到的路径   #拆包
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar -xzvf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar -xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar -xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压
tar -zxvf 压缩文件 -C 压缩目录 #解 压缩到指定文件夹
tar -czvf **.tar.gz / #压缩 或者j=b2 J=xz
压缩时先写生成的文件名,再写要压缩的源文件

七、运维常用操作

1、开放某个端口 :firewall-cmd --zone=public --add-port=80/tcp --permanent

2、rpm包管理工具相关操作

rpm -qa |grep #检查依赖包
rpm -qc #检查配置文件
rpm -e --nodeps ** #卸载软件
rpm -qa |grep  #检查依赖包
pm -ivh --test gaim-1.3.0-1.fc4.i386.rpm    /#用来检查依赖关系;并不是真正的安装;
rpm -qpR file.rpm       #[查看包]依赖关系
yum install net-tools  #安装netstat
chkconfig --list #查看开机启动项

3、设置系统时间与网络时间同步
ntpdate cn.pool.ntp.org
ntpdate ntp4.aliyum.com

4、将系统时间写入硬件时间
# hwclock --systohc

5、关闭selinux
sed -i 's/SELINUX=enabele/SELINUX=disable/g' /etc/selinux/config

6、释放内存

free -mh
sync
echo 1 > /proc/sys/vm/drop_caches
echo 0 > /proc/sys/vm/drop_caches
0:0是系统默认值,默认情况下表示不释放内存,由操作系统自动管理
1:释放页缓存
2:释放dentries和inodes
3:释放所有缓存

7、避免远程端口,进程中断的一个方法

避免ssh断开程序中途断开,可以先开screen ,在screen中运行程序
screen -r [程序名] 重启程序
screen -ls 列出正在运行的程序

8、ssh免密登录设置

即在源服务器上先生成一份公钥和一份密钥,将公钥复制到目标服务器,利用命令将公钥添加至目标服务器的授权列表(authorized_keys)。当有服务器带着公钥申请连接服务器时,目标服务器首先在authorized_keys中查找是否存在该公钥,如果存在则开始进行验证。首先生成一个随机字符串,利用对应公钥进行加密,然后返回给申请连接的服务器,申请连接服务器利用私钥进行解密,再将字符串返回给目标服务器完成验证,进行后续操作。
ssh-keygen -t rsa
cat id_rsa >> Authorized_key

9、MD5校验方法

linux : md5sum 文件
windows: CertUtil -hashfile 文件 md5

10、设置系统时区为上海:

timedatectl set-timezone Asia/Shanghai

11、crontab 定时任务,通过命令 crontab -e 进行编辑 

f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推

12、主机名的修改

centos6修改hostname
[root@centos6 ~]$ hostname # 查看当前的hostnmae
node1
[root@centos6 ~]$ vim /etc/sysconfig/network # 编辑network文件修改hostname行(重启生效)
[root@centos6 ~]$ cat /etc/sysconfig/network # 检查修改
NETWORKING=yes
HOSTNAME=centos6-node1

[root@centos6 ~]$ hostname centos6-node1 # 设置当前的hostname(立即生效)
[root@centos6 ~]$ vim /etc/hosts # 编辑hosts文件,给127.0.0.1添加hostname
[root@centos6 ~]$ cat /etc/hosts # 检查
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 centos6-node1

centos7修改hostname
[root@centos7 ~]$ hostname # 查看
node1
[root@centos7 ~]$ hostnamectl set-hostname centos7-node1 # 使用这个命令会立即生效且重启也生效
[root@centos7 ~]$ hostname # 再次查看
centos7-node1
[root@centos7 ~]$ vim /etc/hosts # 编辑下hosts文件, 给127.0.0.1添加hostname
[root@centos7 ~]$ cat /etc/hosts # 检查
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 centos7-node1

原文地址:https://www.cnblogs.com/bianjiangjiang/p/13558792.html