sunsili 发表于 2023-7-12 08:47:55

【Shell】Ubuntu Linux系统操作命令大全

Ubuntu Linux系统操作命令大全

一、文件/文件夹管理


[*]ls 列出当前目录文件(不包括隐含文件)
[*]ls -a 列出当前目录文件(包括隐含文件)
[*]ls -l 列出当前目录下文件的详细信息
[*]cd .. 回当前目录的上一级目录
[*]cd - 回上一次所在的目录
[*]cd ~ 或 cd 回当前用户的宿主目录
[*]mkdir 目录名 创建一个目录
[*]rmdir 空目录名删除一个空目录
[*]rm 文件名删除一个文件或多个文件
[*]rm -rf 非空目录名 删除一个非空目录下的一切
[*]mv 路经/文件 移动相对路经下的文件到绝对路经下
[*]mv 文件名 新名称在当前目录下改名
[*]find 路经-name “字符串”查找路经所在范围内满足字符串匹配的文件和目录

二、系统管理


[*]fdisk fdisk -l 查看系统分区信息
[*]fdisk fdisk /dev/sdb 为一块新的SCSI硬盘进行分区
[*]chown chown root /home 把/home的属主改成root用户
[*]chgrp chgrp root /home把/home的属组改成root组
[*]Useradd 创建一个新的用户
[*]Groupadd 组名 创建一个新的组
[*]Passwd 用户名 为用户创建密码
[*]Passwd -d 用户名 删除用户密码也能登陆
[*]Passwd -S 用户名 查询账号密码
[*]Usermod -l 新用户名 老用户名 为用户改名
[*]Userdel–r 用户名 删除用户一切
[*]service start/stop/restart系统服务控制操作
[*]/etc/init.d/ start/stop/restart系统服务控制操作
[*]uname -a 查看内核版本
[*]cat /etc/issue 查看ubuntu版本
[*]lsusb 查看usb设备
[*]sudo ethtool eth0 查看网卡状态
[*]cat /proc/cpuinfo 查看cpu信息
[*]lshw 查看当前硬件信息
[*]sudo fdisk -l 查看磁盘信息
[*]df -h 查看硬盘剩余空间
[*]free -m 查看当前的内存使用情况
[*]ps -A 查看当前有哪些进程
[*]kill 进程号 (就是ps -A中的第一列的数字)或者 killall 进程名( 杀死一个进程)
[*]kill -9 进程号 强制杀死一个进程
[*]reboot Init 6重启LINUX系统
[*]Halt Init 0 Shutdown –h now关闭LINUX系统

三、打包/解压


[*]tar -c 创建包–x 释放包-v 显示命令过程 –z 代表压缩包
[*]tar –cvf benet.tar /home/benet 把/home/benet 目录打包
[*]tar –zcvf benet.tar.gz /mnt 把目录打包并压缩
[*]tar –zxvf benet.tar.gz 压缩包的文件解压恢复
[*]tar –jxvf benet.tar.bz2 解压缩

四、make 编译

-make 编译make install 安装编译好的源码包
五、apt命令


[*]apt-cache search package 搜索包
[*]apt-cache show package 获取包的相关信息,如说明、大小、版本等
[*]sudo apt-get install package 安装包
[*]sudo apt-get install package - - reinstall 重新安装包
[*]sudo apt-get -f install 修复安装”-f = –fix-missing ”
[*]sudo apt-get remove package 删除包
[*]sudo apt-get remove package - - purge 删除包,包括删除配置文件等
[*]sudo apt-get update 更新源
[*]sudo apt-get upgrade 更新已安装的包
[*]sudo apt-get dist-upgrade 升级系统
[*]sudo apt-get dselect-upgrade 使用dselect 升级
[*]apt-cache depends package 了解使用依赖
[*]apt-cache rdepends package 是查看该包被哪些包依赖
[*]sudo apt-get build-dep package 安装相关的编译环境
[*]apt-get source package 下载该包的源代码
[*]sudo apt-get clean && sudo apt-get autoclean 清理无用的包
[*]sudo apt-get check 检查是否有损坏的依赖
[*]sudo apt-get clean 清理所有软件缓存(即缓存在 /var/cache/apt/archives 目录里的deb包)

查看软件xxx安装内容#dpkg -L xxx
查找软件#apt-cache search 正则表达式
查找文件属于哪个包#dpkg -S filename apt-file search filename
查询软件xxx依赖哪些包#apt-cache depends xxx
查询软件xxx被哪些包依赖#apt-cache rdepends xxx
增加一个光盘源#sudo apt-cdrom add
系统升级#sudo apt-get update
#sudo apt-get upgrade
#sudo apt-get dist-upgrade
清除所以删除包的残余配置文件#dpkg -l |grep ^rc|awk‘{print $2}’|tr [" n"] [" “]|sudo xargs dpkg -P -
编译时缺少h文件的自动处理#sudo auto-apt run ./configure
查看安装软件时下载包的临时存放目录#ls /var/cache/apt/archives
备份当前系统安装的所有包的列表#dpkg –get-selections | grep -v deinstall > ~/somefile
从上面备份的安装包的列表文件恢复所有包#dpkg –set-selections < ~/somefile sudo dselect
清理旧版本的软件缓存#sudo apt-get autoclean
清理所有软件缓存#sudo apt-get clean
删除系统不再使用的孤立软件#sudo apt-get autoremove
查看包在服务器上面的地址#apt-get -qq –print-uris install ssh | cut’-f2
五、系统查看内核#uname -a
查看Ubuntu版本#cat /etc/issue
查看内核加载的模块#lsmod
查看PCI设备#lspci
查看USB设备#lsusb
查看网卡状态#sudo ethtool eth0
查看CPU信息#cat /proc/cpuinfo
显示当前硬件信息#lshw

六、硬盘

查看硬盘的分区#sudo fdisk -l
查看IDE硬盘信息#sudo hdparm -i /dev/hda
查看STAT硬盘信息#sudo hdparm -I /dev/sda
或#sudo apt-get install blktool
#sudo blktool /dev/sda id
查看硬盘剩余空间#df -h
#df -H
查看目录占用空间#du -hs 目录名
优盘没法卸载#sync fuser -km /media/usbdisk

七、内存

查看当前的内存使用情况#free -m

八、进程

查看当前有哪些进程#ps -A
中止一个进程#kill 进程号(就是ps -A中的第一列的数字) 或者killall 进程名
强制中止一个进程(在上面进程中止不成功的时候使用 )#kill -9 进程号或者killall -9 进程名
图形方式中止一个程序#xkill 出现骷髅标志的鼠标,点击需要中止的程序即可
查看当前进程的实时状况#top
查看进程打开的文件#lsof -p
ADSL 配置ADSL#sudo pppoeconf
ADSL手工拨号#sudo pon dsl-provider
激活ADSL#sudo /etc/ppp/pppoe_on_boot
断开ADSL#sudo poff
查看拨号日志#sudo plog

九、网络

根据IP查网卡地址#arping IP地址
查看当前IP地址#ifconfig eth0 |awk ‘/inet/ {split($2,x,":");printx} ’
查看当前外网的 IP地址#w3m -no-cookie -dumpwww.edu.cn|grep- o‘[0 }’
#w3m -no-cookie -dumpwww.xju.edu.cn|grep- o’[0 }’
#w3m -no-cookie -dump ip.loveroot.com|grep-o’[0 }’
查看当前监听80端口的程序#lsof -i :80
查看当前网卡的物理地址#arp -a | awk ‘{print $4}’ifconfig eth0 | head -1 | awk ‘{print $5} ’
立即让网络支持 nat#sudo echo 1 > /proc/sys/net/ipv4/ip_forward
#sudo iptables -t nat -I POSTROUTING -j MASQUERADE
查看路由信息#netstat -rn sudo route -n
手工增加删除一条路由#sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
#sudo route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
修改网卡MAC地址的方法#sudo ifconfig eth0 down 关闭网卡
#sudo ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE 然后改地址
#sudo ifconfig eth0 up 然后启动网卡
统计当前IP连接的个数#netstat -na|grep ESTABLISHED|awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -r -n
#netstat -na|grep SYN|awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -r -n
统计当前20000个IP包中大于100个IP包的IP地址#tcpdump -tnn -c 20000 -i eth0 | awk -F “." ‘{print $1″."$2″."$3″."$4} ’| sort | uniq -c | sort -nr | awk ‘$1 > 100 ‘
屏蔽IPV6#echo “blacklist ipv6″| sudo tee /etc/modprobe.d/blacklist -ipv6

十、服务

添加一个服务#sudo update-rc.d 服务名defaults 99
删除一个服务#sudo update-rc.d 服务名remove
临时重启一个服务#/etc/init.d/ 服务名restart
临时关闭一个服务#/etc/init.d/ 服务名stop
临时启动一个服务#/etc/init.d/ 服务名start

十一、设置

配置默认Java使用哪个#sudo update-alternatives–config java
修改用户资料#sudo chfn userid
给apt设置代理#export http_proxy=http://xx.xx.xx.xx:xxx
修改系统登录信息#sudo vim /etc/motd

十二、中文

转换文件名由GBK为UTF8#sudo apt-get install convmv convmv -r -f cp936 -t utf8 –notest –nosmart *
批量转换src目录下的所有文件内容由 GBK到UTF8#find src -type d -exec mkdir -p utf8/{}\; find src -type f -exec iconv -f GBK -t UTF-8 {} -o utf8/{}\; mv utf8 /* src rm -fr utf8
转换文件内容由 GBK到UTF8#iconv -f gbk -t utf8 $i > newfile
转换mp3 标签编码#sudo apt-get install python-mutagenfind . -iname “*.mp3" -execdir mid3iconv -e GBK {} \;
控制台下显示中文#sudo apt-get install zhcon 使用时,输入zhcon即可

十三、文件

快速查找某个文件#whereis filename
#find 目录-name 文件名
查看文件类型#file filename
显示xxx文件倒数6行的内容#tail -n 6 xxx
让tail不停地读地最新的内容#tail -n 10 -f /var/log/apache2/access.log
查看文件中间的第五行(含)到第 10行(含)的内容#sed -n ‘5,10p’ /var/log/apache2/access.log
查找包含xxx字符串的文件#grep -l -r xxx .
全盘搜索文件(桌面可视化)gnome-search-tool
查找关于xxx的命令#apropos xxx man -k xxx
通过ssh传输文件#scp -rp /path/filenameusername@remoteIP:/path
#将本地文件拷贝到服务器上
#scp -rpusername@remoteIP:/path/filename/path
#将远程文件从服务器下载到本地
查看某个文件被哪些应用程序读写#lsof 文件名
把所有文件的后辍由 rm改为rmvb#rename ’s/.rm$/.rmvb/ ’*
把所有文件名中的大写改为小写#rename ‘tr/A -Z/a-z/’*
删除特殊文件名的文件,如文件名:–wljslmz.txt#rm —–wljslmz.txt 或者rm ./–wljslmz.txt
查看当前目录的子目录#ls -d */.或echo */.
将当前目录下最近 30天访问过的文件移动到上级 back目录#find .-type f -atime -30 -exec mv {} ../back\;
将当前目录下最近 2小时到8小时之内的文件显示出来#find .-mmin +120 -mmin -480 -exec more {} \;
删除修改时间在 30天之前的所有文件#find .-type f -mtime +30 -mtime -3600 -exec rm {} \;
查找guest用户的以avi或者rm结尾的文件并删除掉#find .-name ‘*.avi ’-o -name ‘*.rm’-user ‘guest’-exec rm {} \;
查找的不以java和xml结尾,并7天没有使用的文件删除掉#find .! -name *.java ! -name ‘*.xml ’-atime +7 -exec rm {} \;
统计当前文件个数#ls /usr/bin|wc-w
统计当前目录个数#ls -l /usr/bin|grep^d|wc -l
显示当前目录下 2021-01-01的文件名#ls -l |grep 2021-01-01 |awk ‘{print $8}’

十四、FTP

上传下载文件工具-filezilla#sudo apt-get install filezilla
filezilla无法列出中文目录?站点->字符集->自定义->输入:GBK本地中文界面1)下载filezilla中文包到本地目录,如~/2)#unrar x Filezilla3_zhCN.rar
[*]如果你没有unrar的话,请先安装 rar和unrar
#sudo apt-get install rar unrar
#sudo ln -f /usr/bin/rar /usr/bin/unrar
4)先备份原来的语言包,再安装;实际就是拷贝一个语言包。#sudo cp /usr/share/locale/zh_CN/filezilla.mo/usr/share/locale/zh_CN/filezilla.mo.bak
#sudo cp ~/locale/zh_CN/filezilla.mo/usr/share/locale/zh_CN/filezilla.mo
5)重启filezilla,即可!
十五、解压缩

解压缩wljslmz.tar.gz#tar -zxvf wljslmz.tar.gz
解压缩xxx.tar.bz2#tar -jxvf wljslmz.tar.bz2
压缩aaa bbb目录为wljslmz.tar.gz#tar -zcvf wljslmz.tar.gz aaa bbb
压缩aaa bbb目录为wljslmz.tar.bz2#tar -jcvf wljslmz.tar.bz2 aaa bbb
解压缩 RAR 文件
[*]先安装
#sudo apt-get install rar unrar
#sudo ln -f /usr/bin/rar /usr/bin/unrar

[*]解压
#unrar x aaaa.rar

十六、程序

详细显示程序的运行信息#strace -f -F -o outfile

十七、日期和时间

设置日期#date -s mm/dd/yy
设置时间#date -s HH:MM
将时间写入CMOS#hwclock –systohc
读取CMOS时间#hwclock –hctosys
从服务器上同步时间#sudo ntpdate time.nist.gov
#sudo ntpdate time.windows.com

十八、控制台

不同控制台间切换Ctrl + ALT + ←Ctrl + ALT + →
指定控制台切换Ctrl + ALT + Fn(n:1~7)
控制台下滚屏SHIFT + pageUp/pageDown
控制台抓图#setterm -dump n(n:1~7)

十九、数据库

mysql的数据库存放在地方#/var/lib/mysql
从mysql中导出和导入数据#mysqldump数据库名> 文件名 #导出数据库
#mysqladmin create 数据库名 #建立数据库
#mysql 数据库名< 文件名#导入数据库
忘了mysql的root口令怎么办#sudo /etc/init.d/mysqlstop
#sudo mysqld_safe –skip-grant-tables
#sudo mysqladmin -u user password ‘newpassword"
#sudo mysqladmin flush-privileges
修改mysql的root口令#sudo mysqladmin -uroot -p password ‘你的新密码’

二十、其它下载网站文档

#wget -r -p -np -k https://.www.wljslmz.com

[*]r:在本机建立服务器端目录结构;
[*]-p: 下载显示HTML文件的所有图片;
[*]-np:只下载目标站点指定目录及其子目录的内容;
[*]-k: 转换非相对链接为相对链接。
如何删除Totem电影播放机的播放历史记录#rm ~/.recently-used
如何更换gnome程序的快捷键点击菜单,鼠标停留在某条菜单上,键盘输入任意你所需要的键,可以是组合键,会立即生效;如果要清除该快捷键,请使用backspacevim 如何显示彩色字符#sudo cp /usr/share/vim/vimcurrent/vimrc_example.vim/usr/share/vim/vimrc
如何在命令行删除在会话设置的启动程序#cd ~/.config/autostartrm 需要删除启动程序
如何提高wine的反应速度#sudo sed -ie ‘/GBK/,/^}/d ’ /usr/share/X11/locale/zh_CN.UTF -8/XLC_LOCALE
chgrp[语法]: chgrp [-R]文件组文件⋯说明:文件的GID表示文件的文件组,文件组可用数字表示, 也可用一个有效的组名表示,此命令改变一个文件的GID,可参看chown。-R 递归地改变所有子目录下所有文件的存取模式[例子]:#chgrp group file 将文件file 的文件组改为 group
chmod[语法]: chmod[-R] 模式文件⋯或chmod +-|=文件⋯#chmod nnnn file
n为0-7的数字,意义如下:
[*]4000** 运行时可改变UID
[*]2000** 运行时可改变GID
[*]1000** 置粘着位
[*]0400** 文件主可读
[*]0200** 文件主可写
[*]0100** 文件主可执行
[*]0040** 同组用户可读
[*]0020** 同组用户可写
[*]0010** 同组用户可执行
[*]0004** 其他用户可读
[*]0002** 其他用户可写
[*]0001** 其他用户可执行
nnnn 就是上列数字相加得到的,例如 chmod 0777 file 是指将文件 file 存取权限置为所有用户可读可写可执行。-R 递归地改变所有子目录下所有文件的存取模式
[*]u 文件主
[*]g 同组用户
[*]o 其他用户
[*]a 所有用户
[*]+ 增加后列权限
[*]- 取消后列权限
[*]= 置成后列权限
[*]r 可读
[*]w 可写
[*]x 可执行
[*]s 运行时可置UID
[*]t 运行时可置GID
[例子]:#chmod 0666 file1 file2 将文件 file1 及file2 置为所有用户可读可写
#chmod u+x file 对文件file 增加文件主可执行权限
#chmod o-rwx 对文件file 取消其他用户的所有权限
chown[语法]: chown[-R] 文件主文件⋯说明: 文件的UID表示文件的文件主,文件主可用数字表示, 也可用一个有效的用户名表示,此命令改变一个文件的UID,仅当此文件的文件主或超级用户可使用。-R 递归地改变所有子目录下所有文件的存取模式[例子]:#chown mary file 将文件file 的文件主改为 mary
#chown 150file 将文件file 的UID改为150
Ubuntu命令行下修改网络配置以eth0为例1. 以DHCP方式配置网卡编辑文件/etc/network/interfaces:#sudo vi /etc/network/interfaces
并用下面的行来替换有关 eth0的行:# The primary network interface - use DHCP to find our address
auto eth0
iface eth0 inet dhcp
用下面的命令使网络设置生效 :#sudo /etc/init.d/networkingrestart
当然,也可以在命令行下直接输入下面的命令来获取地址#sudo dhclient eth0
2. 为网卡配置静态 IP地址编辑文件/etc/network/interfaces:#sudo vi /etc/network/interfaces
并用下面的行来替换有关 eth0的行:# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.3.90
gateway 192.168.3.1
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
将上面的ip地址等信息换成你自己就可以了 .用下面的命令使网络设置生效 :#sudo /etc/init.d/networkingrestart
3. 设定第二个IP地址(虚拟IP地址)编辑文件/etc/network/interfaces:#sudo vi /etc/network/interfaces
在该文件中添加如下的行 :auto eth0:1
iface eth0:1 inet static
address 192.168.1.60
netmask 255.255.255.0
network x.x.x.x
broadcast x.x.x.x
gateway x.x.x.x
根据你的情况填上所有诸如 address,netmask,network,broadcast 和gateways等信息.用下面的命令使网络设置生效 :#sudo /etc/init.d/networkingrestart
4. 设置主机名称(hostname)使用下面的命令来查看当前主机的主机名称 :#sudo /bin/hostname
使用下面的命令来设置当前主机的主机名称 :#sudo /bin/hostname wljslmz
系统启动时,它会从/etc/hostname 来读取主机的名称.5. 配置DNS首先,你可以在/etc/hosts中加入一些主机名称和这些主机名称对应的 IP地址,这是简单使用本机的静态查询 .要访问DNS 服务器来进行查询,需要设置/etc/resolv.conf 文件.假设DNS服务器的IP地址是192.168.3.2, 那么/etc/resolv.conf 文件的内容应为:search test.com
nameserver 192.168.3.2
安装AMP服务如果采用Ubuntu Server CD开始安装时,可以选择安装,这系统会自动装上 apache2,php5和mysql5。下面主要说明一下如果不是安装的 Ubuntu server时的安装方法。用命令在Ubuntu下架设Lamp其实很简单,用一条命令就完成。在终端输入以下命令:#sudo apt-get install apache2 mysql-server php5 php5-mysql php5-gd #phpmyadmin
装好后,mysql管理员是root,无密码,通过 http://localhost/phpmyadmin 就可以访问mysql了修改 MySql 密码终端下输入:#mysql -u root
#mysql> GRANT ALL PRIVILEGES ON *.*TO root@localhost IDENTIFIED BY “123456″;
’123456‘ 是root的密码,可以自由设置,但最好是设个安全点的。#mysql> quit;
退出mysqlapache2的操作命令
[*]启动:#sudo /etc/init.d/apache2 start
[*]重启:#sudo /etc/init.d/apache2 restart
[*]关闭:#sudo /etc/init.d/apache2 stop
apache2的默认主目录:/var/www/

页: [1]
查看完整版本: 【Shell】Ubuntu Linux系统操作命令大全