linux常用操作命令

[linux下的文件不能放到window上来,不然编码可能会出问题(windows下的txt会在最开头加一编码字符)]


cd + 进入目录


pwd 查看当前目录


mkdir + 新建文件名
mkdir -p +目录名 创建目录,如果没有连带父级目录也创建了,如果存在也不会报错


rm -rf +删除文件名 


mkdir /home/h       home 创建h目录
mkdir  h   当前目录创建h目录


文件/目录权限设置命令:chmod 
Linux系统管理员最常用命令之一,用于改变文件或目录的访问权限该命令有两种用法: 
用包含字母和操作符表达式的文字设定法 
其语法格式为:chmod [who] [opt] [mode] 文件/目录名 
其中who表示对象,是以下字母或中的一个或组合: 
u:表示文件所者 
g:表示同组用户 
o:表示其它用户 
a:表示所有用户 
opt则代表操作: 
+:添加某权限 
-:取消某权限 
=:赋予给定的权限并取消原有的权限 
而mode则代表权限: 
r:可读 
w:可写 
x:可执行 
例:为同组用户增加对文件a.txt的读写权限: 
chmod g+rw a.txt 
此外chmod也可以用数字来表示权限如 chmod 777 file 
语法为:chmod abc file 
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 
r=4,w=2,x=1 
若要rwx属性则4+2+1=7; 
若要rw-属性则4+2=6; 
若要r-x属性则4+1=7。 
范例: 
chmod a=rwx file  
和 
chmod 777 file  
效果相同 
chmod ug=rwx,o=x file  
和 
chmod 771 file  


在linux中删除一个目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可解决。
直接rm就可以了,不过要加两个参数-rf 即:rm -rf   目录名字
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
删除文件夹实例:rm -rf /var/log/httpd/access
将会删除/var/log/httpd/access目录以及其下所有文件、文件夹
需要提醒的是:使用这个rm -rf的时候一定要格外小心,linux没有回收站的,一旦删除不可恢复.


who命令可以查看当前登录用户


su - root(或要切换的用户名)
su命令来切换用户,su是switch user切换用户的缩写。可以是从普通用户切换到root用户,
也可以是从root用户切换到普通用户。从普通用户切换到root用户需要输入密码,从root
用户切换到普通用户不需要输入密码。


每个Linux文件具四种访问权限:可读(r)、可写(w)、可执行(x)和无权限(-),利用ls -l命令可以看到某个文件或目录的
权限,它以显示数据的第一个字段为准。第一个字段由10个字符组成,如下:
-rwxr-xr-x
第一位表示文件类型,-表示文件,d表示目录
2-4位表示文件所有者的权限,u权限
5-7位表示文件所有者所属组成员的权限,g权限
8-10位表示所有者所属组之外用户的权限,o权限 
2-10位的权限总和有时称为a权限
以上例子中,表示这是一个文件(非目录),文件所有者具有读、写和执行的权限,所有者所属组成员和所属组之外的用户具
有读和执行的权限面没有写的权限


看系统中所有用户:
cat /etc/passwd |cut -f 1 -d :


userdel [-rf][用户帐号]
userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。
-r:删除用户的同时,删除与用户相关的所有文件。
-f:强制删除用户,即使用户当前已登录; 


1、在终端下:
复制命令:Ctrl + Shift + C  组合键。
粘贴命令:Ctrl + Shift + V  组合键。
2、在控制台下:
复制命令:Ctrl + Insert  组合键  或  用鼠标选中即是复制。
粘贴命令:Shift + Insert  组合键  或  单击鼠标滚轮即为粘贴


tail -f 和tailf(有些linux机上没有这命令) 相同的功能,一般用来动态跟踪日志输出


dos2unix是将Windows格式文件转换为Unix、Linux格式的实用命令。Windows格式文件的换行符为\r\n ,而Unix&Linux文件的换行符为\n. dos2unix命令其实就是将文件中的\r\n 转换为\n。
而unix2dos则是和dos2unix互为孪生的一个命令,它是将Linux&Unix格式文件转换为Windows格式文件的命令。


history查看历史操作指令


stat filename查看文件操作记录


linux shell其实就是linux命令集合,当然还有变量什么的,这里只是简单介绍一下

编译一个文本(helloworld.sh)
第一行以
#!/usr/bin/sh
开始就是一个shell脚本了,当然你在保存该文件后 要给它+x权限
chmod +x helloworld.sh
执行方法 sh helloworld.sh 或者./helloworld.sh



1. sed替换的基本语法为:
sed 's/原字符串/替换字符串/'
单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线”\”进行转义。
2. 单引号” ‘ ’”是没有办法用反斜线”\”转义的,这时候只要把命令中的单引号改为双引号就行了,格式如下:
# 要处理的字符包含单引号
sed "s/原字符串包含'/替换字符串包含'/" 
3. 命令中的三根斜线分隔符可以换成别的符号,有时候替换目录字符串的时候有较多斜线,这个时候换成其它的分割符是较为方便,只需要紧跟s定义即可。
# 将分隔符换成问号”?”:
sed 's?原字符串?替换字符串?'
4. 可以在末尾加g替换每一个匹配的关键字,否则只替换每行的第一个,例如:
# 替换所有匹配关键字
sed 's/原字符串/替换字符串/g'
5. 一些特殊字符的使用
  ”^”表示行首
  ”$”符号如果在引号中表示行尾,但是在引号外却表示末行(最后一行)
复制代码
# 注意这里的 " & " 符号,如果没有 “&”,就会直接将匹配到的字符串替换掉
sed 's/^/添加的头部&/g'      #在所有行首添加
sed 's/$/&添加的尾部/g'      #在所有行末添加
sed '2s/原字符串/替换字符串/g'  #替换第2行
sed '$s/原字符串/替换字符串/g'   #替换最后一行
sed '2,5s/原字符串/替换字符串/g' #替换2到5行
sed '2,$s/原字符串/替换字符串/g' #替换2到最后一行
复制代码
6.批量替换字符串
sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`
sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir
7. sed处理过的输出是直接输出到屏幕上的,使用参数”i”直接在文件中替换。
# 替换文件中的所有匹配项
sed -i 's/原字符串/替换字符串/g' filename
8. 多个替换可以在同一条命令中执行,用分号”;”分隔,其格式为:
# 同时执行两个替换规则
sed 's/^/添加的头部&/g;s/$/&添加的尾部/g' 



重命名文件,经常用到mv命令,批量重命名文件rename是最好的选择,Linux的rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,判断方法:
输入man rename 看到第一行是
RENAME(1) linux Programmer’s Manual RENAME(1)
这个就是c语言版本的 ---我的就是C语言版本
而如果出现的是
RENAME(1) Perl Programmers Reference Guide RENAME(1)
这个就是Perl版本的了
C语言版本格式:rename 原字符串 新字符串 文件名
样例1:目录test下存在两个文件:a_01、a_02,若需要将文件名中的a替换为b,其他部分保持不变,则
(1) 若当前位于test目录下,则执行 rename a b *
(2) 若当前位于test的父目录,则执行 rename a b test/*
Perl语言版本格式:rename 's/原字符串/新字符串/' 文件名
样例2:题目如样例1,则
(1) 若当前位于test目录下,则执行 rename 's/a/b/' *
(2) 若当前位于test的父目录,则执行 rename 's/a/b' test/*


定时任务:
1,crontab -e ,编辑当前用户的定时任务(如果有脚本往这里全替换刷文件,此时添加的就会被替换掉)(此处文件为/var/spool/cron/tabs/acrosspm)
2,编辑vi /ect/crontab(定时任务后面要加上用户名,例:*/5 * * * * acrosspm  /bin/bash /home/software/createPif/pif2ski.sh)
重启定时服务:sudo service cron restart(root)


crontab定时器:
时程表的格式如下 : 
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...个小时要执行,其馀类推 
使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。 
例子 : 
#每天早上7点执行一次 /bin/ls : 
0 7 * * * /bin/ls 
在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup : 
0 6-12/3 * 12 * /usr/bin/backup 
周一到周五每天下午 5:00 寄一封信给 alex@domain.name : 
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata 
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha" 
20 0-23/2 * * * echo "haha" 


vi编辑
shit+g按页往下翻
ctrl+b按页往上翻


按变量的生存周期来划分,Linux变量可分为两类: 
1 永久的:需要修改配置文件,变量永久生效。 
2 临时的:使用export命令声明即可,变量在关闭shell时失效。
查看PATH 值的方式:echo $PATH  或 export 或env
修改环境变量
    1、用命令直接修改但只能在当前会话生效
       export JAVA_HOME=/usr/local/java   #添加新变量名
       export PATH=$PATH:/usr/local/php/bin #修改已有变量名
       测试是否成功:echo $JAVA_HOME 或 env命令、

       


    2、修改全局配置文件    
       vim /etc/profile
       在文档最后,添加:   export PATH=$PATH:/usr/local/php/bin
       执行 source /etc/profile 否则需要重写登陆

       


    3、类似个人环境变量配置文件
       vim ~/.bash_profile 
       后面步骤同2



确定脚本中生成或有关的文件的位置
DIRNAME=`dirname $0`
CUR_PATH=`cd $DIRNAME; pwd`

   


touch * 改变当前目录下所有文件的修改时间   


系统
# uname -a               # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue   # 查看操作系统版本
# cat /proc/cpuinfo      # 查看CPU信息
# hostname               # 查看计算机名
# lspci -tv              # 列出所有PCI设备
# lsusb -tv              # 列出所有USB设备
# lsmod                  # 列出加载的内核模块
# env                    # 查看环境变量
资源
# free -m                # 查看内存使用量和交换区使用量
# df -h                  # 查看各分区使用情况
# du -sh <目录名>        # 查看指定目录的大小
# grep MemTotal /proc/meminfo   # 查看内存总量
# grep MemFree /proc/meminfo    # 查看空闲内存量
# 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    # 列出所有启动的系统服务
程序
# rpm -qa                # 查看所有安装的软件包
 
 
RPM
    在Linux 操作系统中,有一个系统软件包,它的功能类似于Windows里面的“添加/删除程序”,但是功能又比“添加/删除程序”强很多,它就是 Red Hat Package Manager(简称RPM)。此工具包最先是由Red Hat公司推出的,后来被其他Linux开发商所借用。由于它为Linux使用者省去了很多时间,所以被广泛应用于在Linux下安装、删除软件。下面就 给大家介绍一下它的具体使用方法。
1.我们得到一个新软件,在安装之前,一般都要先查看一下这个软件包里有什么内容,假设这个文件是:Linux-1.4-6.i368.rpm,我们可以用这条命令查看:
rpm -qpi Linux-1.4-6.i368.rpm
系统将会列出这个软件包的详细资料,包括含有多少个文件、各文件名称、文件大小、创建时间、编译日期等信息。
2.上面列出的所有文件在安装时不一定全部安装,就像Windows下程序的安装方式分为典型、完全、自定义一样,Linux也会让你选择安装方式,此时我们可以用下面这条命令查看软件包将会在系统里安装哪些部分,以方便我们的选择:
rpm -qpl Linux-1.4-6.i368.rpm
3. 选择安装方式后,开始安装。我们可以用rpm-ivh Linux-1.4-6.i368.rpm命令安装此软件。在安装过程中,若系统提示此软件已安装过或因其他原因无法继续安装,但若我们确实想执行安装命 令,可以在 -ivh后加一参数“-replacepkgs”:
rpm -ivh -replacepkgs Linux-1.4-6.i368.rpm
4.有时我们卸载某个安装过的软件,只需执行rpm-e <文件名>;命令即可。
5.对低版本软件进行升级是提高其功能的好办法,这样可以省去我们卸载后再安装新软件的麻烦,要升级某个软件,只须执行如下命令:rpm -uvh <文件名>;,注意:此时的文件名必须是要升级软件的升级补丁
6. 另外一个安装软件的方法可谓是Linux的独到之处,同时也是RMP强大功能的一个表现:通过FTP站点直接在线安装软件。当找到含有你所需软件的站点并 与此网站连接后,执行下面的命令即可实现在线安装,譬如在线安装Linux-1.4-6.i368.rpm,可以用命令:
rpm -i ftp://ftp.pht.com/pub/linux/redhat/...-1.4-6.i368.rpm
7. 在我们使用电脑过程中,难免会有误操作,若我们误删了几个文件而影响了系统的性能时,怎样查找到底少了哪些文件呢?RPM软件包提供了一个查找损坏文件的 功能,执行此命令:rpm -Va即可,Linux将为你列出所有损坏的文件。你可以通过Linux的安装光盘进行修复。
8.Linux系统中文件繁多,在使用过程中,难免会碰到我们不认识的文件,在Windows下我们可以用“开始/查找”菜单快速判断某个文件属于哪个文件夹,在Linux中,下面这条命令行可以帮助我们快速判定某个文件属于哪个软件包:
rpm -qf <文件名>;
9.当每个软件包安装在Linux系统后,安装文件都会到RPM数据库中“报到”,所以,我们要查询某个已安装软件的属性时,只需到此数据库中查找即可。注意:此时的查询命令不同于1和8介绍的查询,这种方法只适用于已安装过的软件包!命令格式:
rpm -参数 <文件名>;
 
APT-GET
apt-get update——在修改/etc/apt/sources.list或者/etc/apt/preferences之后运行该命令。此外您需要定期运行这一命令以确保您的软件包列表是最新的。 
apt-get install packagename——安装一个新软件包(参见下文的aptitude) 
apt-get remove packagename——卸载一个已安装的软件包(保留配置文件) 
apt-get --purge remove packagename——卸载一个已安装的软件包(删除配置文件) 
dpkg --force-all --purge packagename 有些软件很难卸载,而且还阻止了别的软件的应用,就可以用这个,不过有点冒险。 
apt-get autoclean apt会把已装或已卸的软件都备份在硬盘上,所以如果需要空间的话,可以让这个命令来删除你已经删掉的软件 
apt-get clean 这个命令会把安装的软件的备份也删除,不过这样不会影响软件的使用的。 
apt-get upgrade——更新所有已安装的软件包 
apt-get dist-upgrade——将系统升级到新版本 
apt-cache search string——在软件包列表中搜索字符串 
dpkg -l package-name-pattern——列出所有与模式相匹配的软件包。如果您不知道软件包的全名,您可以使用“*package-name-pattern*”。 
aptitude——详细查看已安装或可用的软件包。与apt-get类似,aptitude可以通过命令行方式调用,但仅限于某些命令——最常见的有安装和卸载命令。由于aptitude比apt-get了解更多信息,可以说它更适合用来进行安装和卸载。 
apt-cache showpkg pkgs——显示软件包信息。 
apt-cache dumpavail——打印可用软件包列表。 
apt-cache show pkgs——显示软件包记录,类似于dpkg –print-avail。 
apt-cache pkgnames——打印软件包列表中所有软件包的名称。 
dpkg -S file——这个文件属于哪个已安装软件包。 
dpkg -L package——列出软件包中的所有文件。 
apt-file search filename——查找包含特定文件的软件包(不一定是已安装的),这些文件的文件名中含有指定的字符串。apt-file是一个独立的软件包。您必须 先使用apt-get install来安装它,然后运行apt-file update。如果apt-file search filename输出的内容太多,您可以尝试使用apt-file search filename | grep -w filename(只显示指定字符串作为完整的单词出现在其中的那些文件名)或者类似方法,例如:apt-file search filename | grep /bin/(只显示位于诸如/bin或/usr/bin这些文件夹中的文件,如果您要查找的是某个特定的执行文件的话,这样做是有帮助的)。



suse软件包管理
安装软件包
zypper in 软件包名称
示例:
zypper in java
zypper in gcc
查询软件包
zypper se 关键字
S位有 i 的标志表示已安装。
示例:
# zypper se java-
卸载软件包
zypper rm 软件包名
# zypper rm java-1_7_0-ibm 
 
 
 linux下查看oracle版本及补丁:
 1.用oracle用户登陆linux
 2.cd $ORACLE_HOME/OPatch

 3. ./opatch lsinventory



cat /etc/passwd 可以查看所有用户的列表
w 可以查看当前活跃的用户列表
cat /etc/group 查看用户组

 


 linux查看安装的软件
 一般用rpm比较快,命令格
rpm -qa 软件名



Linux查看程序端口占用情况
netstat -apn | grep 8005
查看线程:
ps -aux | grep tomcat



统计某文件夹下文件的个数 
ls -l |grep "^-"|wc -l
统计某文件夹下目录的个数  
ls -l |grep "^d"|wc -l
统计文件夹下文件的个数,包括子文件夹里的  
ls -lR|grep "^-"|wc -l

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值