Linux system 命令
常用命令
shell
一、文件操作
cd ~ 进入主目录 cd .. 返回上一级目录 cd .... 返回上两级目录 cd - 返回上次所在的目录
ls 查看当前目录下的文件 ls -l a* 列出当前目录以a开头的文件 ls -a 查看所有文件 包括隐藏文件
ll 查看文件详细信息
mkdir 文件名 新建文件夹
rmdir 文件名 是删除文件夹目录 mkdir dir1 dir2 同时创建两个目录 mkdir -p tmpdir1dir2 创建一个目录树
cp file1 file2 复制文件到 某个文件目录 cp -rf /tomcat/* /tomcat2/ 复制文件夹 cp dir . 复制一个目录下的所有文件到当前工作目录
cp -a file1 file2 在保留原文件属性的前提下复制文件
mv 移动指定文件到指定位置 mv dir1 new_dir 重命名移动 一个目录
rm a.log 删除普通文件
rm -rf *.* 删除这个目录下所有的文件
rm -rf *关键字* 删除和关键字有关的所有文件 -r 就是向下递归,不管有多少级目录,一并删除 -f 就是直接强行删除,不作任何提示的意思
tail -f 文件名 实时查看被添加到一个文件中的内容
cat file1 从第一个字节开始正向查看文件的内容
tac file1 从最后一行开始反向查看一个文件的内容
more file1 查看一个长文件的内容
less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作
head -2 file1 查看一个文件的前两行
tail -2 file1 查看一个文件的最后两行
tail -f varlogmessages 实时查看被添加到一个文件中的内容
pwd 显示工作路径
rz -y 上传文件 sz 下载文件
zip 把/home目录下面的mydata目录压缩为mydata.zip
zip -r mydata.zip mydata #压缩mydata目录
zip -r abc123.zip abc 123.txt 把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip
unzip mydata.zip -d mydatabak 把/home目录下面的mydata.zip解压到mydatabak目录里面
sudo unzip -oq iss.war -d ../tomcat7/webapps/iss
unzip wwwroot.zip 把/home目录下面的wwwroot.zip直接解压到/home目录里面
unzip -v wwwroot.zip 查看把/home目录下面的wwwroot.zip里面的内容
unzip -j wwwroot.zip 把/home目录下面wwwroot.zip里面的所有文件解压到第一级目录
tar -czf test.tar.gz /test1 /test2 压缩文件
tar -xvzf test.tar.gz 解压文件
jar -xvf project.war /project_a
jar -xvf project.war
tree 显示文件和目录由根目录开始的树形结构
lstree 显示文件和目录由根目录开始的树形结构
ln -s file1 lnk1 创建一个指向文件或目录的软链接
ln file1 lnk1 创建一个指向文件或目录的物理链接
touch file.txt 创建一个新文件 -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)
vim file1 编辑文件
vi file1 编辑文件
sed -i 's/user/userName/g' 123.txt sed命令可以批量替换多个文件中的字符串
perl -pie "s/wq/192.168.1.53/g" 123.txt 把123.txt文件中的所有wq都替换为192.168.1.153
> filename 清空文件
二、查找文件:
ls | grep app* 搜索当前目录下指定文件
whereis nginx
whereis java
从根据目录开始查找
find / -name tomcat
find / -name 123 搜索根和子目录 名字为 123的文件
从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行
find / -type f -name "*.log" | xargs grep "ERROR"
系统查找到httpd.conf文件后即时在屏幕上显示httpd.conf文件信息。
find / -name "httpd.conf" -ls
在根目录下查找某个文件
find . -name "test"
在某个目录下查找包含某个字符串的文件
grep -r "zh_CN" ./
grep -niR 'exception' filename
注:n,显示行号 R,查找所有文件包含子目录 i,忽略大小写 最后的“xxx”表示想要查找的文件名
head -n 10 example.txt 查看文件前10行
tail -n 10 example.txt
三、进程和端口
netstat -apn 查看所有进程和端口使用情况,其中最后一栏是PID/Program name
netstat –apn | grep 8080 查看8080端口使用情况
ip addr 查看IP
ps -ef 查看正在活动的进程 ps -ef | grep ecp 查看进程中有ecp的所有进程
kill -9 xxxxxx 关闭某个进程
四、网络
ifconfig eth0 显示一个以太网卡的配置
ifup eth0 启用一个 'eth0' 网络设备
ifdown eth0 禁用一个 'eth0' 网络设备
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址
mount -t cifs //ip地址/共享文件夹名 /mnt -o username=FZY,password=feng
scp full.tar.gz root@192.168.191.128:/opt/soft 把当前系统文件复制到远程linux主机
scp root@192.168.191.128:/opt/soft/test.txt /opt/soft/ 把远程linux主机文件复制到当前系统
clear:如果你觉得你的屏幕上有太多的东西,看起来很讨厌,可以使用clear命令清空
echo command 打印出你的输入
ctrl + c 中止当前执行的脚本 回到命令输入模式
五、磁盘
df -hl 查看磁盘剩余空间
df -h 查看每个根路径的分区大小
du -sh [目录名] 返回该目录的大小
du -sm [文件夹] 返回该文件夹总M数
find / -size +100M -exec ls -lh {} \; 查询大于100M的文件
free -m 查看内存剩余大小
六、查看jvm大小
ps -ef | grep java
七、权限(用户权限和读写执行权限)
chmod 777 给文件赋予所有权限
chmod +x 给文件赋予可执行权限
chmod 755 -rwxr-xr-x
chmod 744 -rwxr--r--
su - deployer 切换到deployer用户
su -i 切换到root
sudo 可执行root权限操作
sudo chown aiuap_jc:aiuap_jc iss 把iss目录的root拥有权限改成aiuap_jc
八、用户和群组
useradd -c Name Surname -g admin -d homeuser1 -s binbash user1 创建一个属于 admin 用户组的用户
useradd user1 创建一个新用户
userdel -r user1 删除一个用户 ( '-r' 排除主目录)
usermod -c User FTP -g system -d ftpuser1 -s binnologin user1 修改用户属性
passwd 修改口令
passwd user1 修改一个用户的口令 (只允许root执行)
userdel peter 删除用户
useradd -d /var/ftp -s /sbin/nologin 12321
groupadd group_name 创建一个新用户组
groupdel group_name 删除一个用户组
groupmod -n new_group_name old_group_name 重命名一个用户组
Nginx配置
cd /usr/local/nginx/
cd /opt/issystem/logs/nginx/
sudo tail -f -n 1000 access.log
sudo ./nginx -s reload
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
Mysql导入导出:
导出(无需登录):
mysqldump -uroot -punisk.88 isdb > isdb-20171124.sql
mysqldump -uroot -punisk.88 isdb tb_d_uniskuser > tb_d_uniskuser.sql
mysqldump -t isdb -uroot -punisk.88 --tables tb_d_rubbish tb_d_rubbish_appeal > rubbishAll.sql
zip -r isdb-20170828.zip isdb-20170828.sql
导入(需要登录):
./mysqllogin
use isdb;
source /root/isdb-20171124.sql;
查找文件或者文件夹
find / -name filename.txt 根据名称查找/目录下的filename.txt文件
find . -name "*.xml" 递归查找所有的xml文件
find . -name "*.xml" |xargs grep "hello world" 递归查找所有文件内容中包含hello world的xml文件
grep -H 'spring' *.xml 查找所有的包含spring的xml文件
find ./ -size e | xargs rm -f & 删除文件大小为零的文件
ls -l | grep '.jar' 查找当前目录中的所有jar文件
grep 'test' d* 显示所有以d开头的文件中包含test的行
grep 'test' aa bb cc 显示在aa,bb,cc文件中匹配test的行
grep '[a-z]\{$\}' aa 显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
查找后台运行的程序 以tomcat为例
ps -ef|grep tomcat 查看所有tomcat的进程
ps -ef|grep --color java 高亮要查询的关键字
查看端口占用情况
netstat -tln | grep 8080 查看端口8080的使用情况
查看端口属于哪个程序
lsof -i :8080
查看后台进程
ps aux|grep java 查看java进程
ps aux 查看所有进程
以树状图列出目录的内容
tree a
文件下载
wget http://file.tgz
curl http://file.tgz
远程登录
ssh username@ip
打印信息
echo $JAVA_HOME 打印java home环境变量的值shell
一、系统信息
uname -a 查看内核/操作系统/CPU信息的linux系统信息命令
lsb_release -a 查看操作系统 注:可惜需要安装 yum -y -install lsb
head -n 1 /etc/issue 查看操作系统版本,是数字1不是字母L
cat /proc/cpuinfo # 查看CPU信息的linux系统信息命令
cat /proc/cpuinfo |grep "model name" && cat /proc/cpuinfo |grep "physical id" 查看linux CPU大小
cat /proc/meminfo |grep MemTotal 查看内存大小
grep MemFree /proc/meminfo # 查看空闲内存量
cat /proc/partitions :查看linux硬盘和分区信息的系统信息命令
cat /proc/meminfo :查看linux系统内存信息的linux系统命令
cat /proc/version :查看版本,类似uname -r
cat /proc/ioports :查看设备io端口
cat /proc/interrupts :查看中断
cat /proc/pci :查看pci设备的信息
cat /proc/swaps :查看所有swap分区的信息
ifconfig -a 查看IP地址
lsblk 查看所有硬盘
fdisk -l |grep Disk 查看硬盘大小
hostname 查看计算机名的linux系统信息命令
lspci -tv 列出所有PCI设备
lsusb -tv 列出所有USB设备的linux系统信息命令
lsmod 列出加载的内核模块
env 查看环境变量资源
free -m 查看内存使用量和交换区使用量
df -h 查看各分区使用情况
du -sh 查看指定目录的大小
uptime 查看系统运行时间、用户数、负载
cat /proc/loadavg 查看系统负载磁盘和分区
mount | column -t 查看挂接的分区状态
fdisk -l 查看所有分区
swapon -s 查看所有交换分区
hdparm -i /dev/hda 查看磁盘参数(仅适用于IDE设备)
dmesg | grep IDE 查看启动时IDE设备检测状况网络
ifconfig 查看所有网络接口的属性
iptables -L 查看防火墙设置
route -n 查看路由表
netstat -lntp 查看所有监听端口
netstat -antp 查看所有已经建立的连接
netstat -s 查看网络统计信息进程
ps -ef 查看所有进程
top 实时显示进程状态用户
w 查看活动用户
id 查看指定用户信息
last 查看用户登录日志
cut -d: -f1 /etc/passwd 查看系统所有用户
cut -d: -f1 /etc/group # 查看系统所有组
crontab -l 查看当前用户的计划任务服务
chkconfig –list 列出所有系统服务
chkconfig –list | grep on 列出所有启动的系统服务程序
二、软件信息
./version.sh 查看tomcat jvm版本 先进到tomcat的bin目录
cd /usr/local/nginx/sbin ./nginx -v 查看nginx 版本
mysql -v 查看mysql 版本
java -version 查看java版本
whereis java
which java (java执行路径)
echo $JAVA_HOME
echo $PATH
三、网络
service network restart 重启网络
netstat -anp|grep 80 网络管理netstat命令 查看端口
四、关机 (系统的关机、重启以及登出 )
shutdown -h now 关闭系统(1)
init 0 关闭系统(2)
telinit 0 关闭系统(3)
shutdown -h hoursminutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销
五、挂载文件
mount devhda2 mnthda2 挂载一个叫做hda2的盘 - 确定目录 ' mnthda2' 已经存在
umount devhda2 卸载一个叫做hda2的盘 - 先从挂载点 ' mnthda2' 退出
fuser -km mnthda2 当设备繁忙时强制卸载
umount -n mnthda2 运行卸载操作而不写入 etcmtab 文件- 当文件为只读或当磁盘写满时非常有用
mount devfd0 mntfloppy 挂载一个软盘
mount devcdrom mntcdrom 挂载一个cdrom或dvdrom
mount devhdc mntcdrecorder 挂载一个cdrw或dvdrom
mount devhdb mntcdrecorder 挂载一个cdrw或dvdrom
mount -o loop file.iso mntcdrom 挂载一个文件或ISO镜像文件
mount -t vfat devhda5 mnthda5 挂载一个Windows FAT32文件系统
mount devsda1 mntusbdisk 挂载一个usb 捷盘或闪存设备
mount -t smbfs -o username=user,password=pass WinClientshare mntshare 挂载一个windows网络共享
六、磁盘空间
df -h 显示已经挂载的分区列表
ls -lSr more 以尺寸大小排列文件和目录
du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间'
du -sk sort -rn 以容量大小为依据依次显示文件和目录的大小
rpm -q -a --qf '%10{SIZE}t%{NAME}n' sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间