[Linux]工作中常用的Unix命令
Linux命令工作实际笔记
一、查看磁盘文件大小:
du [-abcDhHklmsSx] [-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>] [--max-depth=<目录层数>][--help][--version][目录或文件]
常用参数:
-a或-all 为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或–total 除了显示目录或文件的大小外,同时也显示所有目录或文件的总和。
-D或–dereference-args 显示指定符号连接的源文件大小。
-h或–human-readable 以K,M,G为单位,提高信息的可读性。
-H或–si 与-h参数相同,但是K,M,G是以1000为换算单位,而不是以1024为换算单位。
-k或–kilobytes 以1024 bytes为单位。
-l或–count-links 重复计算硬件连接的文件。
-L<符号连接>或–dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
-m或–megabytes 以1MB为单位。
-s或–summarize 仅显示总计,即当前目录的大小。
-S或–separate-dirs 显示每个目录的大小时,并不含其子目录的大小。
-x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X<文件>或–exclude-from=<文件> 在<文件>指定目录或文件。
–exclude=<目录或文件> 略过指定的目录或文件。
–max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
–help 显示帮助。
–version 显示版本信息。
linux中的du命令使用示例:
- 1> 要显示一个目录树及其每个子树的磁盘使用情况
du /home/linux
这在/home/linux目录及其每个子目录中显示了磁盘块数。
- 2> 要通过以1024字节为单位显示一个目录树及其每个子树的磁盘使用情况
du -k /home/linux
这在/home/linux目录及其每个子目录中显示了 1024 字节磁盘块数。
- 3> 以MB为单位显示一个目录树及其每个子树的磁盘使用情况
du -m /home/linux
这在/home/linux目录及其每个子目录中显示了 MB 磁盘块数。
- 4> 以GB为单位显示一个目录树及其每个子树的磁盘使用情况
du -g /home/linux
这在/home/linux目录及其每个子目录中显示了 GB 磁盘块数。
- 5>查看当前目录下所有目录以及子目录的大小:du -h .
“.”代表当前目录下。也可以换成一个明确的路径
-h表示用K、M、G的人性化形式显示
- 6>查看当前目录下user目录的大小,并不想看其他目录以及其子目录:
du -sh user
-s表示总结的意思,即只列出一个总结的值
du -h –max-depth=0 user
–max-depth=n表示只深入到第n层目录,此处设置为0,即表示不深入到子目录。
- 7>列出user目录及其子目录下所有目录和文件的大小:
du -ah user
-a表示包括目录和文件
- 8>列出当前目录中的目录名不包括xyz字符串的目录的大小:
du -h –exclude=’*xyz*’
- 9>想在一个屏幕下列出更多的关于user目录及子目录大小的信息:
du -0h user
-0(杠零)表示每列出一个目录的信息,不换行,而是直接输出下一个目录的信息。
- 10>只显示一个目录树的全部磁盘使用情况
二、進行管理:
ps 查看进程 kill
查看提交到服务器任务 bjobs [-a] bkill + 任务号
chmod -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
env : 查看當前所有的環境變量設定
三、批量處理文件
sed -i ‘指令1 ’-I ‘指令2’ 文件名
如: sed -i ‘1,$s/a/b/g’ *.* 將該目錄下如有文件中的a替換為b
四、拆分文件
head -n <n> filename > newname
如果文件过大,可以通过这种方式取前n行將文件拆分出新文件。
head –n 5 file 查看文件前5行
tail –n 5 file 查看文件后5行
五、FTP
连接不同ip地址的帐号
例,ftp 10.19.128.1
输入userid and password
put file 直接將当前的帐号下的file传到指定帐号,如果想传文件夹,必须要打包
get file 直接get数据。
图形界面:gftp
workstation 看excel
- Module load OpenOffice
- Soffice AGC_BRG.xls &
六、計時執行
sleep n; a
n秒后執行命令a
七、批量重命名
将 AAA* 的文件名修改为 DDD*, 使用下面的命令
rename AAA DDD *
八、常用快捷鍵
Ctrl+D:可以在终端下运行wc命令,然后再胡乱输入一些字符,再按Ctrl+D就会出现相应效果,也可以退出登陆(只限命令模式下)
Ctrl+Z:可挂起任意前台进程,需要恢复被挂起进程可使用fg来恢复被挂起的进程 bg去掉入后台执行
Ctrl+S:可以锁住屏幕,但操作还在进行的
九、Linux的bg和fg命令
我们都知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务。而不能让程序在前台后台之间切换。而 Linux 提供了 fg 和 bg 命令,让我们轻松调度正在运行的任务。
假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,挂起这个程序,然后可以看到系统提示(方括号中的是作业号):
[1]+ Stopped /root/bin/rsync.sh
然后我们可以把程序调度到后台执行:(bg 后面的数字为作业号)
#bg 1
[1]+ /root/bin/rsync.sh &
用 jobs 命令查看正在运行的任务:
#jobs
[1]+ Running /root/bin/rsync.sh &
如果想把它调回到前台运行,可以用
#fg 1
/root/bin/rsync.sh
这样,你在控制台上就只能等待这个任务完成了。
fg、bg、jobs、&、ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的
一。& 最经常被用到
这个用在一个命令的最后,可以把这个命令放到后台执行
二。ctrl + z
可以将一个正在前台执行的命令放到后台,并且暂停
三。jobs
查看当前有多少在后台运行的命令
四。fg
将后台中的命令调至前台继续运行
如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
五。bg
将一个在后台暂停的命令,变成继续执行
如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
也可以用kill %jobnumber kill掉這些進程 option -9 強制kill
who ( 查看系統中的使用者 )
- 若在自己 student1 的環境下 ( 或某一視窗 ) 進入student2 的帳號,可以用 “cad1% su student2”,( 在 Solarils 版本則要下 “su – student2” )。su 為switch user 之意。當然,系統會再問一次密碼。
- 可用 “cad1% whoami” 或 “cad1%who am I” 查看目前到底是誰在用這部電腦。
- 切換 user 後,必須依原先 switch 的順序“反向”exist回來,不可以直接關掉視窗或 logout 出系統,這會使得一些 user 還留在機器裡面。
- 若想 “ 查看目前所有 local 工作站的使用者 ”,可用 “cad1% rusers”。“r” 是 remote 的意思。
mv ( 檔案移動或重命名 )
mv file1 file2
file1 是檔案原有的名字,file2 是檔案後來的名字。
- mv ex1.sp ex2.sp 將檔案 ex1.sp 重新命名成 ex2.sp
- mv ex1.sp ../ex1.bak 將檔案 ex1.sp 重新命名成 ex1.bak,而且移到上一層
clear ( 清除螢目 )
man ( 指令之線上參考 )
man command
history
查看歷史操作,可能是比較重要的,個人感覺不太全
find
Find是一个非常有效的工具,它可以遍历当前目录甚至于整个文件系统来查找某些文件或目录.
一般find ./ -name xxx.xx 就OK了,自递进去搜索
主要选项:
-name 按照文件名查找文件
-perm 按照文件权限来查找文件
-prune 不在当前指定的目录中查找
-user 按照文件属主来查找文件
-group 按照文件所属的组来查找文件
-mtime -n +n 按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前.
-nogroup 查找无有效所属组的文件,即该文件所属的组不存在
-nouser 查找无有效属主的文件
-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件
-type 查找某一类型的文件
[ 文件类型:
b 块设备文件
d 目录
c 字符设备文件
p 管道文件
l 符号链接文件
f 普通文件
]
-size n[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计
-depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找
-mount 在查找文件时不跨越文件系统mount点
-follow 如果find命令遇到符号链接文件,就跟踪到链接所指向的文件
-cpio 对匹配的文件使用cpio命令,就将这些文件备份到磁盘设备中
(其余选项,请man find,进一步查看)
对find命令选项的一些例子:
$ find /etc -type d #在/ e t c目录下查找所有的目录
$ find /etc -user yaoyuan #在/etc目录下查找文件属主为yaoyuan的文件
$ find . -size +1000000c #在当前目录下查找文件长度大于1 M字节的文件
whereis命令会在指定的目录中查找符合条件的文件,文件应的属性应属于原始代码,二进制文件,或是帮助文件.
选项:
-b 只查找二进制文件
-B 只在设置的目录下查找二进制文件
-f 不显示文件名前的路径名称
-m 只查找说明文件
-M 只在设置的目录下查找说明文件
-s 只查找原始代码文件
-S 只在设置的目录下查找原始代码文件
-u 查找不包含指定类型的文件
whereis例子
$ whereis mysql
mysql: /usr/bin/mysql /etc/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
locate命令用于查找符合条件的文件,它会去保存文件与目录名称的数据库内,查找符合条件的文件或目录
选项:
-u 建立数据库,由根目录开始
-U 建立数据库,可以指定开始的位置
-e 将排除在寻找的范围之外
-f 将特定的档案系统排除在外
-q 安静模式,不会显示任何错误讯息
-n 至多显示n个输出
-r 使用正规运算式 做寻找的条件
-o 指定数据库存的名称
-d 指定数据库的路径
-h 显示辅助讯息
-v 显示更多的讯息
-V 显示程序的版本讯息
(locate命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,locate命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是locate所找到的档案若是最近才建立或刚更名的,可能会找不到,在内定值中,updatedb每天会跑一次,可以由修改crontab来更新设定值。(etc/crontab)
locate指定用在搜寻符合条件的档案,它会去储存档案与目录名称的数据库内,寻找合乎范本样式条件的档案或目录录,可以使用特殊字元(如"*"或"?"等)来指定范本样式,如指定范本为kcpa*ner, locate会找出所有起始字串为kcpa且结尾为ner的档案或目录,如名称为kcpartner若目录录名称为kcpa_ner则会列出该目录下包括子目录在内的所有档案。 )
alias ( 定義別名 )
alias new_command 'old_command'
- alias dir 'ls -l' 將命令 "ls - l" 定義別名為 dir。
- 可用 “unalias” 來刪除定義 unalias dir
- unalias 為刪除所有別名之設定
- 一般會將要 alias 的指令放在 .cshrc 這個檔裡,以便一 login 便可享受到 alias 的好處。
mkdir ( 建立新的目錄 )
mkdir directory-name
diff ( 比較檔案或目錄之內容)
diff [-r] name1 name2
name1 name2 可同時為檔名,或目錄名稱。“-r” 為 recursive 之意
- diff file1 file2 比較檔案 file1 與 file2 內,各行之不同處
- diff -r dir1 dir2 比較目錄 dir1 與 dir2 內,各檔案之不同處。
set var ( 設定變數 )
set var = value
var 為變數名稱,value 為值。
- 可用 “unset var” 來解除設定。
!! ( 執行用過之指令 )
- !! 執行前一個剛執行過命令
- !12 執行第 12 個命令
- !c 執行前面以 c 為起始字元之命令,有可能是 “cd” 也可能是 “cat”
基本命令
ls
ls [-atFlgR] [name]
- -a 列出包含以 “.” 起始的隱藏檔的所有 (all) 檔案與目錄
- -t 依照檔案最後修改時間 (time) 之順序,依序列出所有檔案與目錄。
- -F 列出目前目錄下之所有檔案與目錄及其類型。
- -l 列出目錄下所有檔案之許可權 (Privilege)、擁有者 (Owner)、檔案大 小 (Size)、修改時間 (Revise date) 及名稱。
- -lg 同上,並顯示出檔案之擁有者群組 (Group) 名稱。
- -R 以遞迴 (Recursive) 方式顯示出目錄下,以及其所有子目錄之檔案。
- Unix 之 File system 內以 “.” 為開始的“檔案”都是隱藏檔,大多也是環境檔。
- “?” , “*” 為 Unix 的 Wild card ( 萬用字元 ),“?” 代表檔案名稱中之單一字元。“*” 代表檔案名稱中之一字串。
- ls test [0-5] 會列出 test0, test1, ..., test5 的集合。
cd
cd [path_name]
- cd dir1 跳至 dir1 之目錄位置下。
- cd 或 cd ~ 跳回使用者 login 時的 home directory ( 家目錄 )。
- cd ~student2 跳至使用者 student2 的 home directory。
- cd .. 跳至目前目錄的上層 (parent directory)
- “.” 一點,表目前的工作目錄 (current working di-rect-ory)。
- “..” 二點,表目前目錄的上一層目錄 (parent of working directory)。
- “~student2” 使用者 student2 login 時的 home direc-tory。
cp
cp [-r] source destination
- cp file1 file2 將檔案 file1 拷備到 file2(直接覆盖)。
- cp file1 dir1 將檔案 file1 拷備到目錄 dir1 下,檔名仍為 file1。
- cp -r dir1 dir2 拷備整個目錄。
- “-r” 這個 option 是 recursive 的意思,用來拷備 directory 用。
rm ( 刪除檔案 )
rm [-r ] filename
- “-r” 是 Recursive 的意思,用來 remove directory 用的。
- 若用 “rm –i” (interactive, inquiry) 則在真正 remove檔案前,會再問一次 yes or no。
- 刪除目錄的另一個指令為:“rmdir dir1”,但 dir1 下必須沒有檔案存在,否則會出現無法刪除的訊息。
chmod ( 檔案或目錄權限之設定 )
chmod [-R] mode name
- chmod o+x file1 使 other 可以執行檔案 file1。“+”是加上存取權
- chmod ug-r file1 使 user 及 group 不可以 read 檔案 file1。“-” 是拿掉存取權之意
- chmod a+r file1 使所有人 (a:all) 都可以 read 檔案 file1。
- chmod u=r file1 使只有 user 可以 read 檔案 file1。“=” 是 設定存取權給usser, group, other,或 all 之意
- 針對擁有者又分為“使用者” (u:user),“群體” (g:group),“其它”(o:other)。
cat,more
cat 為 concatenate ( 連續 ) 的縮寫,表以連續顯示方式,查看
檔名 filename 之內容。more 則是以分頁的方式,查看檔名 file-
name 之內容。
cat filename 或 more filename
- 執行 more 指令時:按 Spacebar 為顯示下一個螢幕,按 Return 為顯示下一行,按 “5b” 為往回顯示五個螢幕,按 “q” 為結束,按 “/string” 為搜尋 “string” 這個字串
- cat 指令也可以用來 join 兩個檔案,如下之指令會把 filename2 的內容加到 filename1 上後存到 filename3。 cad1% cat filename1 filename2 filename3(直接覆盖,若想加到后面,目标文件名前加”>>”)
grep ( 找尋字串所屬檔案 )
grep string filename
string 為所要找的字串,filename 為所要找的檔案 ( 可以有很多個 )。
grep正则表达式:
[Linux]工作中常用的Unix命令相关推荐
- 在linux系统环境中 常用的关机命令,Linux常用基础命令整理:关机命令、查看目录下文件命令等...
整理了一些Linux常用基础命令,欢迎指正. 首先记住四个热键,学会这四个键,收益一辈子. Tab按键---命令补齐功能 Ctrl+c按键---停掉正在运行的程序 Ctrl+d按键---相当于exit ...
- 工作中常用的linux命令,Linux工作中常用到的一些命令(持续更新)常用的
1.查看运行级别3开启的服务列表: chkconfig --list|grep 3:on 2.查找某类型的文件并计算总大小. find / -name *.conf -exec wc -c {} \; ...
- Linux 工作中 常用命令
文章目录 1.Xftp无法使用时 2.模糊查询删除文件 3.vim 编辑文件 4.ll 查看该路径下的目录 5.cd ../切换到项目根目录 6.删除文件 7.tomcat中启动.停止服务 8.查看项 ...
- ubuntu 工作中常用的终端命令
lsusb 查询usb设备id 在主目录/.android/adb_usb.ini文件中添加0x****(数字0和字母x) adb devices 显示当前运行的全部模拟器 a ...
- 工作中常用的kafka命令
Kafka常用命令 以下是kafka常用命令行总结: 1.查看topic的详细信息 /data/bin/kafka/bin//kafka-topics.sh --zookeeper 172.16.2 ...
- 在工作中mysql常用知识_工作中常用的mysql命令
1.啟動數據庫 #啟動mysql(skip-name-resolve參數是必須的) su - mysql -c "mysqld_safe --skip-name-resolve --open ...
- 工作中常用的git命令记录
1.拉取代码 git clone -b <branch>(要获取的代码对应的分支 ) .....xxx.git 2.合并代码 git merge (等同于git merge --ff): ...
- linux中cooy命令_Linux:CentOS 7中常用的基础命令
对于学习Linux系统来说,命令是必须熟练掌握的第一个部分.Linux系统中的命令有600多个,但常用的基础命令并不多.虽然不同版本的Linux系统的命令稍有不同,但命令的语法与使用方法基本相同,因此 ...
- Linux:CentOS 7中常用的基础命令
对于学习Linux系统来说,命令是必须熟练掌握的第一个部分.Linux系统中的命令有600多个,但常用的基础命令并不多.虽然不同版本的Linux系统的命令稍有不同,但命令的语法与使用方法基本相同,因此 ...
最新文章
- 算法-判断一颗树是否是搜索二叉树
- FLEX是什么及与FLASH的关系的介绍
- Python入门学习之函数
- 个人出路......
- 第六章 逻辑回归-机器学习老师板书-斯坦福吴恩达教授
- 在微信浏览器字体被调大导致页面错乱的解决办法
- POJ1821 单调队列//ST表 优化dp
- Android SQL语句实现数据库的增删改查
- 定制 cobbler TITLE 信息
- Spring Bean配置默认为单实例 pring Bean生命周期
- wp-autoblog_AutoBlog简介
- java编译器eclipse_java编译器eclipse
- IGBT工作原理及作用
- java程序中,如何设置周一为一周的开始?如何设置周一为一周的第一天? 或者说,如何理解java的setFirstDayOfWeek()方法?
- office365打开服务器文件出错,Microsoft Office 365个人版打开显示错误
- Ceph Calamari安装问题汇总
- 哈希表的概念(散列表)
- 大话 MySQL 数据库 -- 强推收藏!
- 金蝶K3WISE13.1销售发票不能删除
- 最全解释:Linux操作系统下的软件安装与管理详解(源码安装、rpm/dpkg、yum/apt-get安装)