常用LINUX命令汇总

时间:2024-05-01 08:06:44

一、基本命令
bash Bash(GNU Bourne-Again Shell)是许多Linux平台的内定Shell
pwd 查看当前所在目录
ls 查看目录内所有文件
cd 进入目录
cd .. 返回上一层
ps -ef|grep test  找test相关进程
ps -ef|grep test | more 翻页查看
kill -9 id 终止进程
删除ums-svr/temp和ums-clnt/temp下所有文件
rm -rf ./*
rm -rf 文件名或文件夹名
进入xxx/bin目录
nohup corba/runnotify.sh &
nohup ./run.sh &

clear 清屏

启动程序:
./client.sh
sh xx.sh 运行xx shell脚本

二、赋权限
--chmod变更文件或目录的权限
chmod 777 install.sh
drwxrwxrwx user group other
chmod -R 755 container 给container及子目录赋权限。

将文件夹test所有者改为user1及其用户组。
chown -R user1:other test
--进入root目录下,授权/root/data文件夹的所有者为datauser
chown -R datauser data
--进入root目录下,授权/root/data文件夹的所有者为oracle,组为dba
chown -R oracle:dba data

chown -R oracle:oinstall data

./install.sh
ls -l 查看各用户权限

Linux中切换用户的命令是su或su -:
u切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;
而用su -命令切换以后,工作目录变成root的工作目录了
su -

切换到其他用户,例如切换到oracle用户
su - oracle

三、解压缩
unzip *.zip 解压

unzip *.zip -d dir 解压到指定目录

zip -r file.zip dir/* 将dir及dir以下的文件压缩成file.zip。
tar cvf file.tar dir/* 压缩文件
tar -xvf file.tar 解压tar文件。

tar zxvf /bbs.tar.zip -C /zzz/bbs
//把根目录下的bbs.tar.zip解压到/zzz/bbs下,前提要保证存在/zzz/bbs这个目录

 .Tar.gz
解压:tar zxvf FileName.Tar.gz 或 tar zxvf FileName.Tar.gz -C /test/ 将FileName解压到/test/目录下
压缩:tar zcvf FileName.Tar.gz DirName

AIX下没有Z参数,压缩只能使用tar cvf FileName.Tar DirName

AIX还可以用如下命令解压:
jar xvf file.zip

四、文本编辑
vi auto_run_param.properties 编辑指定文件
/string 查找 'string'
n 查找下一个
:g/string1/string2/// 将所有的string1 替换成 string2
x删除
a在后面增加字符。
i插入字符。
:x 退出并保存
:wq 写,保存退出
:q! 强制退出,不保存
hjkl: 左上下右

五、修改日期(时间)
查看时间:date
修改时间:date mmddHHMMYYYY.SS

六、文件夹操作
mkdir 创建文件夹

cp命令
功能:将给出的文件或目录拷贝到另一文件或目录中,就如同DOS下的copy命令一样,功能非常强大。
语法:cp [选项] 源文件或目录 目标文件或目录
说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。

示例:
cp -r root/ test/ 复制 root及其下的文件到 test下。
cp -r root/* test/ 复制 root下的文件到 test下。不包括root包。
(直接覆盖的方式)
cp -r -f root/* test/ 复制 root下的文件到 test下。不包括root包。

强制覆盖:

在命令前面加上反斜杠\

示例:

\cp -r root/* test/ 复制 root下的文件到 test下。不包括root包。

mv命令
功能:为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同DOS下的ren和move的组合。
语法:mv [选项] 源文件或目录 目标文件或目录
参数:
- I 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。
- f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。

例1:将/usr/xu中的所有文件移到当前目录(用“.”表示)中:  
$ mv /usr/xu/ * .   
例2:将文件test1.txt重命名为test2.doc   
$ mv test1.txt test2.doc

rm命令
功能:在linux中创建文件很容易,系统中随时会有文件变得过时且毫无用处。用户可以用rm命令将其删除。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
语法: rm [选项] 文件
如果没有使用- r选项,则rm不会删除目录。
参数:
- f 忽略不存在的文件,从不给出提示。
- r 指示rm将参数中列出的全部目录和子目录均递归地删除。
- i 进行交互式删除。
$ rm – ii test example Remove test ?n   Remove example ?y
$ rm -rf /home/test/ 删除/home/test/目录以及下面所有子目录

AIX:rm -fr /temp

scp命令 远程拷贝命令
scp -r root@10.10.1.47:/home/conf/a.txt /home/test/ 将a.txt从10.10.1.47拷贝到本机/home/test/目录下

七、显示修改(输出到xmanager界面上)
安装时没有界面显示的处理方法。ip为运行xmanager的机器ip。0.0为xmanager的机器端口号
DISPLAY=ip:0.0
echo $DISPLAY 查看DISPLAY的值。
export DISPLAY
/usr/openwin/bin/xhost +ip

如果是要将VNC上界面输出出来,则使用:
DISPLAY=localhost:vnc端口号
export DISPLAY

示例:
export DISPLAY=10.60.56.144:0.0
export DISPLAY=本机IP:0.0

oracle用户执行dbca,报错Xlib: connection to "0.0" refused by server Xlib: No protocol specified Error:Can't open display:0.0
执行 xhost local:oracle non-network local connections being added to access control list

ORA-09945: Unable to initialize the audit trail file
原因:$ORACLE_HOME空间不足。

八、磁盘空间查看。
df -k 查看磁盘空间利用情况。
df -h 查看磁盘空间利用情况
du -ch > /diskUsage.txt 查看每个文件,文件夹的大小,输出到/diskUsage.txt文件中
du -sg 查看文件夹大小。 k,m,g表示单位KB,MB,GB。
du -sg * 查看每个文件,文件夹大小。
du -sh /home/test  查看test目录大小
du -sh * linux查看各个目录大小

查看linux文件目录的大小和文件夹包含的文件数
du -sh *

统计总数大小
du -sh xmldb/
du -sm * | sort -n //统计当前目录大小 并安大小 排序(linux du -sh *|sort -n)
du -sk * | sort -n
du -sk * | grep guojf //看一个人的大小
du -m | cut -d "/" -f 2 //看第二个/ 字符前的文字
查看此文件夹有多少文件 /*/*/* 有多少文件
du xmldb/
du xmldb/*/*/* |wc -l
40752
解释:
wc [-lmw]
参数说明:
-l :多少行
-m:多少字符
-w:多少字

du:查询文件或文件夹的磁盘使用空间
如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。
这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数。
如下,注意使用“*”,可以得到文件的使用空间大小.
参考:http://www.cnblogs.com/benio/archive/2010/10/13/1849946.html

示例:查看oracle以及其下一级目录的大小
du -h --max-depth=1 /oracle

查看内存。
bootinfo -r
prtconf | grep Mem

AIX
关机 shutdown -F
重启 shutdown -r now
Solaris
重启 init 6
关机并关掉电源 init 5
关机 init 0
LINUX
重启命令:
1、reboot
2、shutdown -r now 立刻重启(root用户使用)
3、shutdown -r 10 过10分钟自动重启(root用户使用)
4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
关机命令:
1、halt 立刻关机
2、poweroff 立刻关机
3、shutdown -h now 立刻关机(root用户使用)
4、shutdown -h 10 10分钟后自动关机

九、查询端口上的进程 lsof -i:10021

十、启动FTP
/etc/init.d/vsftpd start

查看当前oracle实例名:
su - oracle
echo $ORACLE_SID

十一、查看当前字符集
echo $LANG

十二、查找文件
find / -name macro 查找包含macro名称的文件路径

部分文件名查找方法:
find /etc -name '*srm*' #包含srm字符的
find /etc -name 'srm*' #查找srm开头的
find / -amin -10 # 查找在系统中最后10分钟访问的文件
  find / -atime -2 # 查找在系统中最后48小时访问的文件
  find / -empty # 查找在系统中为空的文件或者文件夹
  find / -group cat # 查找在系统中属于 groupcat的文件
  find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
  find / -mtime -1 #查找在系统中最后24小时里修改过的文件
  find / -nouser #查找在系统中属于作废用户的文件
  find / -user fred #查找在系统中属于FRED这个用户的文件

十三、查看IP地址
ifconfig

更改网络接口的IP地址:
#ifconfig hme0 down
#ifconfig hme0 211.101.149.233 netmask 255.255.255.0 up

附:linux下启动oracle
#su - oracle
#sqlplus '/as sysdba'
#startup

十四。查看linux系统数(AIX与linux系统不一样的)
方式1 #getconf WORD_BIT
方式2 #uname-a如果有x86_64就是64位的,没有就是32位的

十五、创建用户
添加新的用户账号使用useradd命令:

useradd 选项 用户名
其中各选项含义如下:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

id <username>

即可查看用户ID。

修改用户默认目录:

usermod -d <新目录> <用户名>

十六、删除账号
userdel 选项 用户名 (常用的选项是-r,它的作用是把用户的主目录一起删除。)
# userdel sam

修改帐号
usermod 选项 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。另外,有些系统可以使用如下选项:

代码:
-l 新用户名

这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
例如:
代码:
# usermod -s /bin/ksh -d /home/z –g developer sam
此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。

十七、查看ip
ifconfig

十八、shell脚本中过滤windows特殊字符
cat ./test.sh | col -b >./test_new.sh

十九、FTP获取文件
ftp 10.62.57.50
name:testuser
password:testpwd
ftp>bin
ftp>cd 目录名
ftp>get *.tar

二十、rpm命令
rpm -q samba //查询程序是否安装

rpm -ivh /media/cdrom/RedHat/RPMS/samba-3.0.10-1.4E.i386.rpm //按路径安装并显示进度
rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm //指定安装目录
rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm    //用来检查依赖关系;并不是真正的安装;
rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm //新版本降级为旧版本
rpm -qa | grep httpd      #[搜索指定rpm包是否安装]--all搜索*httpd*
rpm -ql httpd         #[搜索rpm包]--list所有文件安装目录
rpm -qpi Linux-1.4-6.i368.rpm #[查看rpm包]--query--package--install package信息
rpm -qpf Linux-1.4-6.i368.rpm #[查看rpm包]--file
rpm -qpR file.rpm       #[查看包]依赖关系
rpm2cpio file.rpm |cpio -div #[抽出文件]
rpm -ivh file.rpm  #[安装新的rpm]--install--verbose--hash
rpm -ivh
rpm -Uvh file.rpm #[升级一个rpm]--upgrade
rpm -e file.rpm #[删除一个rpm包]--era
参数:
-ivh:安装显示安装进度--install--verbose--hash
-Uvh:升级软件包--Update;
-qpl:列出RPM软件包内的文件信息[Query Package list];
-qpi:列出RPM软件包的描述信息[Query Package install package(s)];
-qf:查找指定文件属于哪个RPM软件包[Query File];
-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
-e:删除包

#ubuntu安装deb 文件
dpkg -i file.deb
以下是一些 Dpkg 的普通用法:
1、dpkg -i <package.deb>
安装一个 Debian 软件包,如你手动下载的文件。
2、dpkg -c <package.deb>
列出 <package.deb> 的内容。
3、dpkg -I <package.deb>
从 <package.deb> 中提取包裹信息。
4、dpkg -r <package>
移除一个已安装的包裹。
5、dpkg -P <package>
完全清除一个已安装的包裹。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件。
6、dpkg -L <package>
列出 <package> 安装的所有文件清单。同时请看 dpkg -c 来检查一个 .deb 文件的内容。
7、dpkg -s <package>
显示已安装包裹的信息。同时请看 apt-cache 显示 Debian 存档中的包裹信息,以及 dpkg -I 来显示从一个 .deb 文件中提取的包裹信息。
8、dpkg-reconfigure <package>
重新配制一个已经安装的包裹,如果它使用的是 debconf (debconf 为包裹安装提供了一个统一的配制界面)。

二十一、查看linux机器当前运行状态( cpu、内存以及进程的运行情况)
top

二十二、查看端口使用情况:
netstat -apn 查看所有端口使用情况
netstat -apn|grep 8080 查看8080端口使用情况

AIX系统查看端口被占用的进程,并KILL之
1. netstat -apn|grep <portnumber>
找到该端口连接对应的PCB/ADDR和连接的协议类型。

注:PCB ----Protocol Control Block
2. 如果是tcp连接,则rmsock <PCB/ADDR> tcpcb
如果是udp连接,则rmsock <PCB/ADDR> inpcb
下面我们以telnet服务所使用的23号端口为例,说明该方法:
#netstat -apn|grep 23
f1000200019ce398 tcp 0 0 *.23 *.* LISTEN
可以看到PCB/ADDR为f1000200019ce398,且协议类型为tcp。
#rmsock f1000200019ce398 tcpcb
The socket 0x19ce008 is being held by proccess 185006 (inetd).
命令报告该端口正在被inetd进程使用,PID为185006。
注意:rmsock命令需要root权限执行。

二十三、redhat搜索替换文件
sed -i "s/oldstring/newstring/g" `grep "oldstring" -rl path`

二十四、LINUX挂载新硬盘
1.查看当前机器可识别的硬盘
#fdisk -l
2.挂载硬盘,先在/目录下mkdir datafile
#mount /dev/sde1 /datafile
3.查看挂载是否成功:
#df -h
4.卸载挂载
#umount /datafile

二十五、将sh脚本执行结果输出到log文件中

将一个脚本的执行过程及执行结果打印到日志的常用命令:
#./test.sh 2>&1 | tee /oracle/mylog.log

二十六、linux使用键盘右ctrl+鼠标左键切换桌面

二十七、用ssh命令root用户登陆远程ip

ssh -l root ip

二十八、设置外网访问内网IP

如果客户端和服务端的大网是同一个网段,客户端加一条访问小网的路由指向服务器: route add -host 小网IP gw 大网IP
服务端开启一下linux内核包转发 (临时,重启网络服务后失效)echo 1 > /proc/sys/net/ipv4/ip_forward (如果永久开启sed -i s/^net.ipv4.ip_forward.*/net.ipv4.ip_forward=1/g /etc/sysctl.conf
;sysctl –p)

二十九、查看线程情况
ps -mp 17956946 -o THREAD>>/tmp/thread_cpu7.txt

三十、远程关闭linux机器
#>bash
#>init 0

三十一、
杀掉vncserver
vncserver -kill :1
重启
vncserver
vncpasswd 修改vnc密码

32.ubuntu快速打开终端命令窗口:
ctrl+alt+T

33.登陆另外一台linux
ssh -l root 10.63.212.52

34.修改linux网关:
/etc/sysconfig/network-scripts里面的ifcfg-eth0里面
假如你是一块网卡的说
然后VI编辑
DEVICE="eth0" 设备名称
HWADDR="00:24:1D:8A:3D:F7" 物理地址
ONBOOT="yes" 是否启动
BOOTPROTO="static" 静态IP 可以选择 dhcp
BROADCAST="124.192.245.255" 广播- -!
NETWORY="124.192.245.0" 网段- -!
IPADDR="124.192.245.220" IP地址
NETMASK="255.255.255.0" 子网
GATEWAY="124.192.245.1" 你要找的网关 - -!
DNS1="202.106.196.115" 我的是centos 6 可以在 这里面设置dns

35.ln命令:
参考:http://www.2cto.com/os/201212/176660.html

36.locate命令
linux查找文件所在目录