linux实用命令笔记

it2024-11-02  7

touch 创建文件  touch 目录/文件名    文件名最好不要空格

cat 显示文件内容   $cat /etc/issue    $cat -n /etc/issue (显示行号)

tac /etc/issue  (倒着显示)

more 分页显示文件内容  more /etc/issue   f 翻页 enter换行  q 退出

less  分页显示文件内容 (可向上翻页)  pgup 向上翻页   /搜索关键词  搜索功能    n next跳到下一个

head 显示文件前面几行  head -n 20 /etc/services   默认10行    tail 显示文件后面几行  tail -n 18 /etc/services  -n 指定行数 -f动态显示文件末尾内容

命令格式: 命令 [-选项] [参数]

ls  显示目录文件  -a -l  -lh   -ld(显示目录本身)  -i

-rw-r--r--    (-二进制文件 d目录 l软链接文件) u   g   o 所有者 所属组 其他人   

mkdir 创建新目录  -p 递归创建

cd 切换目录 cd ..   回到上一级目录   .表示当前目录

pwd 显示当前目录

/rmdir  删除空目录  rmdir /tmp/test

cp 复制文件或者目录 -r 复制目录  -p 保留文件属性

mv 剪切文件、改名

rm 删除文件  -r 删除目录 -f 强制执行

Ctrl+c 终止命令操作

ln  -s 软链接  软链接特征:类似Windows快捷方式 硬链接特征:1.同步更新对源文件(复制)2.源文件丢失,硬链接依然可以访问

chmod 改变文件或目录权限

who -b 查看最后一次系统启动的时间。

      who -r 查看当前系统运行时间

 一.Linux下开启/关闭防火墙命令

1) 永久性生效,重启后不会复原

开启: chkconfig iptables on

关闭: chkconfig iptables off s2) 即时生效,重启后复原

开启: service iptables start

关闭: service iptables stop

需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。

在当开启了防火墙时,做如下设置,开启相关端口,

修改/etc/sysconfig/iptables 文件,添加以下内容:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

linux安装软件包建议使用命令rpm -ivh Name.rpm 安装包一般都在光盘内

rpm -qa |grep  sz   和 rpm  -qa |grep rz  命令查看是否安装该程序

如果没有安装,可以输入 yum -install sz   yum -install rz命令进行安装

rz   r就是receive   linux服务器接收。 也就是 windows上传文件

sz   Send    linux服务器发送。 也就是 windows下载文件

SecureCRT,具体的更改 rz上传/sz下载 的默认的路径的方法: 右键点击当前会话session -> Session Options -> Terminal -> Xmodem/Zmodem ->Directories :

Upload : 你要设置的路径

Download:你要设置的路径

sz filename   eg:sz slow.log

输入"uname -a ",可显示电脑以及操作系统的相关信息。 输入"cat /proc/version",说明正在运行的内核版本。 输入"cat /etc/issue", 显示的是发行版本信息

找到光盘的完整路径名。在命令行输入:ls -l /dev | grep cdrom

可以看到光盘的名字叫做:cdrom1。然后在命令行执行: mount /dev/cdrom1 /mnt/。这会把光盘挂载到/mnt目录下。然后我们就可以通过访问/mnt来访问光盘。

比如我们要从光盘中拷贝出来一个rpm包。首先在命令行输入:cd /mnt。然后输入ll。就列出了光盘里面的所有的内容。

进入到Packages目录,在命令行输入:cd Packages。然后输入:ls -l | grep mysql。找到我们要拷贝出来的rpm包。

使用完毕以后,要记得卸载光盘。在命令行输入:umount /mnt。然后再进入/mnt目录就看不到光盘的内容了,说明已经成功卸载。

rpm -q gcc make binutils openmotif setarch compat-db compat-gcc  rpm -q compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel

  那要怎麼找出是哪个程式挂在那个目录上?可以使用 fuser -m /media/share

要把这个资源释放的话, 可以有下述做法:

kill -9 25023 # ps aux | grep 25023 应该就会看到它 fuser -m -v -i -k /media/share # 会问你是不是要把 25023 这个 kill 掉, 选 y 就会 kill 掉

rpm -qa|grep yum

mount /dev/cdrom /mnt

可通过rpm -qa | grep glibc查看系统目前安装了哪些和glibc有关的包

如果想进一步查看,可通过rpm -qi glibc

解压命令是:unzip filename.zip 同样也提供了一个zip程序压缩zip文件,命令是 zip filename.zip files 

vim /etc/sysconfig/network-scripts/ifcfg-eth0    //(某些版本中可能没有vim这个编辑器比如centos,大家可能用vi替换) IPADDR=192.168.1.102  //添加IP地址 NETMASK=255.255.255.0 //掩码 GATEWAY=192.168.1.1 //添加网关

修改dns vim /etc/resolv.conf 修改后可即时生效,启动同样有效

修改host name 启动生效: vim /etc/sysconfig/network 形式如下: NETWORKING=yes HOSTNAME=rh-linux.fc.org

CentOS系统更换软件安装源 第一步:备份你的原镜像文件,以免出错后可以恢复。 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 第二步:下载新的CentOS-Base.repo 到/etc/yum.repos.d/ CentOS 5 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo CentOS 6 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 第三步:运行yum makecache生成缓存 yum clean all yum makecache

用户删除命令: userdel

lsnrctl start/stop 开启、关闭监听

oracle网络配置 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME\network\admin目录下

show parameter local_listener alter system set local_listener = 'ORCL';

改主机名 vi /etc/sysconfig/network    vi /etc/hosts 在提示符下输入reboot命令,重新启动服务器

scp   把当前一个文件copy到远程另外一台主机上

linux下重命名文件或文件夹的命令mv既可以重命名,又可以移动文件或文件夹

cp报错:not a regular file 原因是 这样是相当于下载文件夹,而非文件。 解决办法是 加参数 -r  scp -r liujia@172.16.252.32:/user/liujia/ /home/liujia   (从远程复制到本地,ip在前为远程)

ps -ef|grep tns

系统版本         cat /etc/issue  //查看linux的版本信息         lsb_release -a  //查看LSB本身的版本信息         uname -r                 //Kernel版本

1.列出所有可更新的软件清单 命令:yum check-update

2.安装所有更新软件 命令:yum update

3.仅安装指定的软件 命令:yum install

4.仅更新指定的软件 命令:yum update

5.列出所有可安裝的软件清单 命令:yum list

6.查看是否安装了指定的包 yum list installed|grep mysql

7.卸载yum包 yum remove package_name

怎么查看运行级别 查看当前的运行级别,打开linux终端窗口之后,输入如下命令:runlevel 即可查看

如果需要修改系统默认的运行级别,可以用VI编辑 /etc/inittab 文件设置。如下图 default 后面的数字就是默认的运行级别啦 改好之后,重启Linux系统之后生效。

开机启动 chkconfig --list http    显示目前各项服务状态 单独开启某一服务的命令 ;chkconfig 服务名 on      chkconfig httpd on 单独关闭某一服务的命令;chkconfig 服务名 off 设置完成之后,重启一下即可

1. ps 命令用于查看当前正在运行的进程。 grep 是搜索 例如: ps -ef | grep java 表示查看所有进程里 CMD 是 java 的进程信息 ps -aux | grep java -aux 显示所有状态 ps 2. kill 命令用于终止进程 例如: kill -9 [PID] -9 表示强迫进程立即停止 通常用 ps 查看进程 PID ,用 kill 命令终止进程 ,第一个数字为PID

[root@testhost ~]# iostat -bash: iostat: command not found

在系统观盘中找到sysstat包,然后使用下面的命令安装,sysstat包中包括iostat,mpstat,sar,sa [root@testhost ~]# rpm -ivh sysstat-7.0.2-3.el5.x86_64.rpm 

[root@testhost ~]# iostat Linux 2.6.18-194.el5 (testhost)        09/08/2011

avg-cpu:  %user  %nice %system %iowait  %steal  %idle           16.92    0.06    3.02    1.06    0.00  78.94

Device:            tps  Blk_read/s  Blk_wrtn/s  Blk_read  Blk_wrtn sdb            374.27    52740.63      7324.86 1967243416  273219624 sdc            375.21    52741.08      7328.37 1967260216  273350832 sdd            376.82    52740.83      7326.12 1967250984  273266616 md0            1804.93        57.26    14434.28    2135842  538403384

iostat -d -x -k 1 $iostat -d -k 1 10 #查看TPS和吞吐量信息 iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await) iostat -c 1 10 #查看cpu状态

第一种:用 top 命令 中的cpu 信息观察   Top可以看到的cpu信息有:   Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie   Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si   具体的解释如下:   Tasks: 29 total 进程总数   1 running 正在运行的进程数   28 sleeping 睡眠的进程数   0 stopped 停止的进程数   0 zombie 僵尸进程数   Cpu(s):   0.3% us 用户空间占用CPU百分比   1.0% sy 内核空间占用CPU百分比   0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比   98.7% id 空闲CPU百分比   0.0% wa 等待输入输出的CPU时间百分比   0.0% hi   0.0% si   0.0% wa 的百分比可以大致的体现出当前的磁盘io请求是否频繁。如果 wa的数量比较大,说明等待输入输出的的io比较多。

统计当前占用IO最高的10个进程: dmesg |awk -F: '{print $1}'|sort|uniq -c|sort -rn|head -n 10

当你要创建的目录包含子目录时,你需要使用 -p 参数。如果 mkdir 找不到父目录,那么这个参数会首先帮助创建父目录  mkdir -p 

hosts 配置文件是用来把主机名字映射到IP地址的方法,这种方法比较简单。但这种映射只是本地机的映射

一般情况下hosts的内容关于主机名(Hostname)的定义,每行为一个主机,每行由三部份组成,每个部份由空格隔开。其中#号开头的行做说明,不被系统解释。

第一部份:网络IP地址。

第二部份:主机名.域名,注意主机名和域名之间有个半角的点。

第二部份:主机名(主机名别名) ,其实就是主机名。

当然每行也可以是两部份,就是主机IP地址和主机名;比如 192.168.1.195 debian

imglikeopera

rpm -Uvh compat-gcc-34-c++*

yum提示another app is currently holding the yum lock;waiting for it to exit 可能是系统自动升级正在运行,yum在锁定状态中。 可以通过强制关掉yum进程: #rm -f /var/run/yum.pid 然后就可以使用yum了。

chkconfig --add camsd   添加到服务列表中,添加以后该服务可以使用service 来启动 chkconfig --del camsd chkconfig --level 5 sendmai on      设置服务自动运行 chkconfig --level 35 camsd off     自启动服务列表中删除 chkconfig --list camsd    查看某项服务的自启动状态信息

Xlib: connection to ":0.0" refused by server Xlib: No protocol specified

Error: Can't open display: :0.0

解决办法:用root登陆,在#提示符后输入:

xhost local:oracle non-network local connections being added to access control list

VMtools默认安装在/usr/bin下,卸载VMtools时在安装路径下执行命令./vmware-uninstall-tools.pl即可

LINUX下找出哪个进程造成的IO等待很高的方法 抓哪个进程干坏事前要先停掉syslog /etc/init.d/syslog stop echo 1 > /proc/sys/vm/block_dump dmesg | egrep "READ|WRITE|dirtied" | egrep -o '([a-zA-Z]*)' | sort | uniq -c | sort -rn | head 1423 kjournald 1075 pdflush 209 indexer 3 cronolog 1 rnald 1 mysqld 不要忘记在抓完之后关掉block_dump和启动syslog echo 0 > /proc/sys/vm/block_dump /etc/init.d/syslog start

很多人还是习惯用rmdir删除目录,不过一旦目录非空,就不行了,要用rm,不过要加两个参数-rf 即:rm -rf 目录名字

-r 就是向下递归,不管有多少级目录,一并删除

-f 就是直接强行删除,不作任何提示的意思

linux下拷贝的时候有时候会出现cp:omitting directory的错误 ,例如 cp:omitting directory "bbs" 说明bbs目录下面还有目录,不能直接拷贝

解决办法:递归拷贝  命令:cp -r bbs ../backup/bbs    解释:-r 这个options是递归的意思

ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件。

  当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln –s /bin/less /usr/local/bin/less   -s 是代号(symbolic)的意思。   这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又 软链接和硬链接两种,软链接就是ln –s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。

**注意:rm -rf ./test_chk_ln   删除软链接            rm -rf ./test_chk_ln/  这样就会把原来test_chk(源文件)下内容删除         rm -rf test_chk_ln     这样就会把原来test_chk(源文件)下内容删除

dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2 参数注释: 1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file > 2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file > 3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。     obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。     bs=bytes:同时设置读入/输出的块大小为bytes个字节。

 yum-GPG key retrieval failed: No such file or directory  修改你的repo文件,在每个仓库的配置区域最后加上或修改gpgcheck=0,可能的仓库文件位置: /etc/yum.conf /etc/yum.repos.d/*

yum 安装过程下载的包存放路径

[root@Rhel5 packages]# cat /etc/yum.conf | grep cachedir cachedir=/var/cache/yum

这就是保存的地方,

[root@Rhel5 packages]# ll total 100 -rw-r--r-- 1 root root 94864 Nov 13 05:16 hwbrowser-0.30-2.el5.noarch.rpm [root@Rhel5 packages]# pwd /var/cache/yum/rhel-debuginfo/packages [root@Rhel5 packages]# cat /etc/yum.conf | grep keep keepcache=1

还要把/etc/yum.conf中的keepcache改成1,默认是0即安装后不保存包头和软件包

yum会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间, 可以使用yum clean指令进行清除,更精确的用法是yum clean headers清除header,yum clean packages清除下载的rpm包。

Oracle Linux 5   # cd /etc/yum.repos.d   # wget http://public-yum.oracle.com/public-yum-el5.repo

rhel-debuginfo.repo文件中有 [rhel-debuginfo]   name=        描述信息   baseurl=file://  路径解决依赖关系的包路径,可是FTP,file,http   enable=       这里等于0表不启用baseurl,为1表启用baseurl路径  gpgkey=       这里是验证是否红帽子的RPM包工具   gpgcheck=     这里等于0表不启用gpgkey,为1表启用gpgkey   (可以不验证 0)

修改配置 在/etc/sysconfig/network-scripts目录下,用vi命令编辑ifcfg-em2: DEVICE=em2  设备名称 HWADDR=C8:1F:66:B8:EB:9F 物理地址 ONBOOT=yes  是否启动 BOOTPROTO=static  静态IP   可以选择 dhcp BROADCAST=192.168.0.255 广播 NETWORY=192.168.0.0 网段 IPADDR=192.168.0.123 IP地址 NETMASK=255.255.255.0 子网 GATEWAY=192.168.0.1  网关! DNS=192.168.0.1   保存后,还需要用如下命令重启一下网络服务: # service network restart

fsck命令 

[root@rac1 ~]# dd if=/dev/zero of=/dev/sdb1 bs=8192 count=2560 2560+0 records in 2560+0 records out 20971520 bytes (21 MB) copied, 1.43081 seconds, 14.7 MB/s [root@rac1 ~]# dd if=/dev/zero of=/dev/sdb1 bs=8192 dd: writing `/dev/sdb1': No space left on device 65535+0 records in 65534+0 records out 536854528 bytes (537 MB) copied, 52.3613 seconds, 10.3 MB/s

显示当前的磁盘状态 dumpe2fs /dev/sda    ext3型磁盘

VI文本编辑:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky

linux获取 GPG 密钥失败:[Errno 14] (2013-03-13 12:24:30)转载▼ 这个问题简单总结了一下! GPG key retrieval failed: [Errno 14] PYCURL ERROR 7 - "couldn't connect to host" 简单的翻译:GPG密钥检索失败:[14] PYCURL errno的错误 - “无法连接到主机” 解决办法: 1、检查自己的DNS是不是正常,ping centos.org 和ping www.baidu.com    如果都是正常,那DNS配置就不存在问题了。如果感觉DNS还是有问题就换个 vi /etc/resolv.conf nameserver 8.8.8.8 2、实质性问题就是自己系统没有yum的GPG密钥    查看自己系统版本    cat /etc/issue    登陆mirrors.163.com 找到自己系统对应的密钥    RPM-GPG-KEY-CentOS-3    RPM-GPG-KEY-CentOS-4    RPM-GPG-KEY-CentOS-5    RPM-GPG-KEY-CentOS-6    使用命令rpm --import进行导入    rpm --import http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6

然后你再试一下Yum -y update 你就会发现一切正常了!

vi查找:当你用vi打开一个文件后,因为文件太长,如何才能找到你所要查找的关键字呢?在vi里可没有菜单-〉查找,

不过没关系,你在命令模式下敲斜杆(/)这时在状态栏(也就是屏幕左下脚)就出现了 “/”然后输入你要查找的关键字敲回车就可以了。 如果你要继续查找此关键字,敲字符n就可以继续查找了。值得注意的是“/”是向下查找,而“?”是向上查找,而在键盘定义上“?”刚好是“/”的上档符.

Starting httpd: httpd: apr_sockaddr_info_get() failed for linux01 httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName                                                            [  OK  ] using localhost.localdomain for ServerName   说不能确认服务器完全确认域名 localhost.localdoman  这个问题怎么解决  

最佳答案: 

vi /etc/httpd/conf/httpd.conf   加入一句  ServerName  localhost:80

sed 是一种在线编辑器,它一次处理一行内容。 处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

sudo命令用来以其他身份来执行命令,预设的身份为root

更新yum的时候报错:Metadata file does not match checksum 將/etc/yum.conf加上 

http_caching=none

如何卸载rpm包 首先通过  rpm -q <关键字> 可以查询到rpm包的名字

  然后 调用 rpm -e <包的名字> 删除特定rpm包

如果遇到依赖,无法删除,使用 rpm -e --nodeps <包的名字> 不检查依赖,直接删除rpm包  

如果恰好有多个包叫同样的名字,使用 rpm -e --allmatches --nodeps <包的名字> 删除所有相同名字的包, 并忽略依赖

ssh -l root -p 22 192.168.1.200      -- -l指定用户 -P指定端口 ssh root@192.168.1.200   

ps -ef|grep mysqld              ---查看mysql进程

rpm -e --nodeps 要卸载的软件包

dig查询DNS相关信息记录,CNAME,MX记录等等。  dig www.baidu.com 这个命令主要用于解决相关DNS查询;nslookup也具备查询DNS的功能

ethtool命令  查看到网络模式和网络速度等信息   ethtool eth2

./configure --prefix=/usr/local/test  可以把所有资源文件放在/usr/local/test的路径中,不会杂乱。另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)

rpm -ivh 包名 --force --nodeps  忽略软件包及文件的冲突、依赖

tar xvf jdk-7u79-linux-x64.tar.gz  解压jdk-7u79-linux-x64.tar.gz文件

查找文件命令: which mysql        查询软件运行文件所在地址 whereis mysql      查看软件安装的所有路径

du -h --max-depth=0 *       --查看当前目录所有文件大小(文件夹大小也统计)

~ 代表你的/home/用户目录 . 代表此目录本身 cd ~/. 和 cd ~ 和cd ~/效果一样 .后面有东西又是另外一个问题,点在文件名头部,代表一个隐藏文件    *注意* eg:  .ssh   隐藏文件

免密远程ssh 1.  ssh-keygen -t rsa      --生成公密和私密匙 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.43.55   --发送到远程机器 ssh root@192.168.1.200         --登录到远程机器(无需密码)

mkdir -p :递归创建目录,即使上级目录不存在,会按目录层级自动创建目录

将文件夹下的所有文件复制到另一个文件里 如何将文件夹/home/work下的文件复制到/home/temp里面? 使用命令:

cp -R /home/work/* /home/temp          *表示所有文件

vi /etc/inittab            --- 5 为界面运行 修改将“id:5:initdefault:”中“5”改为“3”系统无界面运行,需重启

软链接 (符号链接) ln -s   source  target 

vim /etc/profile   修改环境变量    source /etc/profile   使配置生效

最新回复(0)