在当前目录搜索文件
rumenz@local:~# find -name *.sh
./Desktop/load.sh
./Desktop/test.sh
./Desktop/shutdown.sh
./Binary/firefox/run-mozilla.sh
./Downloads/kdewebdev-3.5.8/quanta/scripts/externalpreview.sh
./Downloads/kdewebdev-3.5.8/admin/doxygen.sh
./Downloads/kdewebdev-3.5.8/admin/cvs.sh
./Downloads/kdewebdev-3.5.8/admin/ltmain.sh
./Downloads/wheezy-nv-install.sh
Note:
-name
选项使搜索区分大小写。你可以使用-iname
无论大小写都可以找到一些东西的选项。(*是一个通配符并搜索所有扩展名为 ' 的文件
.sh`你可以使用文件名或文件名的一部分来自定义输出)。
rumenz@local:~# find -iname *.SH ( find -iname *.Sh / find -iname *.sH)
./Desktop/load.sh
./Desktop/test.sh
./Desktop/shutdown.sh
./Binary/firefox/run-mozilla.sh
./Downloads/kdewebdev-3.5.8/quanta/scripts/externalpreview.sh
./Downloads/kdewebdev-3.5.8/admin/doxygen.sh
./Downloads/kdewebdev-3.5.8/admin/cvs.sh
./Downloads/kdewebdev-3.5.8/admin/ltmain.sh
./Downloads/wheezy-nv-install.sh
rumenz@local:~# find -name *.tar.gz
/var/www/modules/update/tests/aaa_update_test.tar.gz
./var/cache/flashplugin-nonfree/install_flash_player_11_linux.i386.tar.gz
./home/server/Downloads/drupal-7.22.tar.gz
./home/server/Downloads/smtp-7.x-1.0.tar.gz
./home/server/Downloads/noreqnewpass-7.x-1.2.tar.gz
./usr/share/gettext/archive.git.tar.gz
./usr/share/doc/apg/php.tar.gz
./usr/share/doc/festival/examples/speech_pm_1.0.tar.gz
./usr/share/doc/argyll/examples/spyder2.tar.gz
./usr/share/usb_modeswitch/configPack.tar.gz
grep
命令在给定文件中搜索包含与给定字符串或单词匹配的行。搜索/etc/passwd
为rumenz
用户。
rumenz@local:~# grep rumenz /etc/passwd
rumenz:x:1000:1000:rumenz,,,:/home/rumenz:/bin/bash
-i
忽略单词大小写
rumenz@local:~# grep -i rumenz /etc/passwd
rumenz:x:1000:1000:rumenz,,,:/home/rumenz:/bin/bash
递归搜索
-r
rumenz@local:~# grep -r "127.0.0.1" /etc/
/etc/vlc/lua/http/.hosts:127.0.0.1
/etc/speech-dispatcher/modules/ivona.conf:#IvonaServerHost "127.0.0.1"
/etc/mysql/my.cnf:bind-address = 127.0.0.1
/etc/apache2/mods-available/status.conf: Allow from 127.0.0.1 ::1
/etc/apache2/mods-available/ldap.conf: Allow from 127.0.0.1 ::1
/etc/apache2/mods-available/info.conf: Allow from 127.0.0.1 ::1
/etc/apache2/mods-available/proxy_balancer.conf:# Allow from 127.0.0.1 ::1
/etc/security/access.conf:#+ : root : 127.0.0.1
/etc/dhcp/dhclient.conf:#prepend domain-name-servers 127.0.0.1;
/etc/dhcp/dhclient.conf:# option domain-name-servers 127.0.0.1;
/etc/init/network-interface.conf: ifconfig lo 127.0.0.1 up || true
/etc/java-6-openjdk/net.properties:# localhost & 127.0.0.1).
/etc/java-6-openjdk/net.properties:# http.nonProxyHosts=localhost|127.0.0.1
/etc/java-6-openjdk/net.properties:# localhost & 127.0.0.1).
/etc/java-6-openjdk/net.properties:# ftp.nonProxyHosts=localhost|127.0.0.1
/etc/hosts:127.0.0.1 localhost
-w
单词 (egrep -w word1
|word2
/path/to/file)。-c
for count(即模式匹配的总次数)(grep -c word
/path/to/file)。–color
对于彩色输出(grep–color
服务器 /etc/passwd)。
man
是系统的手册页。Man 提供了有关命令及其用法的所有可能选项的在线文档。几乎所有的命令都带有相应的手册页。例如,
rumenz@local:~# man man
MAN(1) Manual pager utils MAN(1)
NAME
man - an interface to the on-line reference manuals
SYNOPSIS
man [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-m system[,...]] [-M path] [-S list] [-e extension] [-i|-I]
[--regex|--wildcard] [--names-only] [-a] [-u] [--no-subpages] [-P pager] [-r prompt] [-7] [-E encoding] [--no-hyphenation] [--no-justification] [-p
string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] [[section] page ...] ...
man -k [apropos options] regexp ...
man -K [-w|-W] [-S list] [-i|-I] [--regex] [section] term ...
man -f [whatis options] page ...
man -l [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-P pager] [-r prompt] [-7] [-E encoding] [-p string] [-t] [-T[device]]
[-H[browser]] [-X[dpi]] [-Z] file ...
man -w|-W [-C file] [-d] [-D] page ...
man -c [-C file] [-d] [-D] page ...
man [-hV]
手册页本身的手册页,类似地
man cat
([cat 命令的]手册页和man ls
([命令 ls 的]手册页)。
ps
(Process
) 以唯一的方式给出正在运行的进程的状态Id
叫PID
.
rumenz@local:~# ps
PID TTY TIME CMD
4170 pts/1 00:00:00 bash
9628 pts/1 00:00:00 ps
列出所有进程的状态以及进程
id
和PID
, 使用选项-A
。
rumenz@local:~# ps -A
PID TTY TIME CMD
1 ? 00:00:01 init
2 ? 00:00:00 kthreadd
3 ? 00:00:01 ksoftirqd/0
5 ? 00:00:00 kworker/0:0H
7 ? 00:00:00 kworker/u:0H
8 ? 00:00:00 migration/0
9 ? 00:00:00 rcu_bh
....
Note:可以先用grep找到进程的pid
rumenz@local:~# ps -A | grep -i ssh
1500 ? 00:09:58 sshd
4317 ? 00:00:00 sshd
这里
ps
与grep
命令来查找我们需要的自定义和相关输出。
rumenz@local:~# ps -A | grep -i apache2
1285 ? 00:00:00 apache2
查找进程
apache2
,注意其pid
和kill
它。例如,在我的情况下apache2
pid 是1285
。
rumenz@local:~# kill 1285 (to kill the process apache2)
Note: 每次重新运行一个进程或启动一个系统时,都会有一个新的
pid
为每个进程生成,你可以了解当前正在运行的进程及其pid
使用命令ps
。
pkill
通过进程名结束进程
rumenz@local:~# pkill apache2
whereis
命令用于定位Binary
,Sources
和Manual Pages
命令的。例如,要定位Binary
,Sources
和Manual Pages
命令的ls
和kill
。
rumenz@local:~# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz
rumenz@local:~# whereis kill
kill: /bin/kill /usr/share/man/man2/kill.2.gz /usr/share/man/man1/kill.1.gz
service
命令控制Starting
,Stopping
或Restarting
一个service
。这个命令可以start
,restart
或stop
无需重新启动系统即可使更改生效的服务。
rumenz@local:~# service apache2 start
* Starting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
httpd (pid 1285) already running [ OK ]
rumenz@local:~# service apache2 stop
[ OK ]
alias
是一个内置的 shell 命令,可让你为长命令或常用命令指定自定义名称。我经常使用
ls -l
命令。因此我为此创建了一个别名为l
。
rumenz@local:~# alias l='ls -l'
检查它是否有效。
rumenz@local:~# l
total 36
drwxr-xr-x 3 rumenz rumenz 4096 May 10 11:14 Binary
drwxr-xr-x 3 rumenz rumenz 4096 May 21 11:21 Desktop
drwxr-xr-x 2 rumenz rumenz 4096 May 21 15:23 Documents
drwxr-xr-x 8 rumenz rumenz 4096 May 20 14:56 Downloads
drwxr-xr-x 2 rumenz rumenz 4096 May 7 16:58 Music
drwxr-xr-x 2 rumenz rumenz 4096 May 20 16:17 Pictures
drwxr-xr-x 2 rumenz rumenz 4096 May 7 16:58 Public
drwxr-xr-x 2 rumenz rumenz 4096 May 7 16:58 Templates
drwxr-xr-x 2 rumenz rumenz 4096 May 7 16:58 Videos
删除别名
l
, 使用下面的unalias
命令。
rumenz@local:~# unalias l
rumenz@local:~# l
bash: l: command not found
报告文件系统的磁盘使用情况。对用户和系统管理员跟踪他们的磁盘使用情况很有用。
df
通过检查目录条目来工作,目录条目通常仅在文件关闭时更新。
rumenz@local:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 47929224 7811908 37675948 18% /
none 4 0 4 0% /sys/fs/cgroup
udev 1005916 4 1005912 1% /dev
tmpfs 202824 816 202008 1% /run
none 5120 0 5120 0% /run/lock
none 1014120 628 1013492 1% /run/shm
none 102400 44 102356 1% /run/user
/dev/sda5 184307 79852 94727 46% /boot
/dev/sda7 95989516 61104 91045676 1% /data
/dev/sda8 91953192 57032 87218528 1% /personal
统计文件空间使用量。以分层方式(即以递归方式)按文件输出磁盘使用情况摘要。
rumenz@local:~# du
8 ./Daily Pics/wp-polls/images/default_gradient
8 ./Daily Pics/wp-polls/images/default
32 ./Daily Pics/wp-polls/images
8 ./Daily Pics/wp-polls/tinymce/plugins/polls/langs
8 ./Daily Pics/wp-polls/tinymce/plugins/polls/img
28 ./Daily Pics/wp-polls/tinymce/plugins/polls
32 ./Daily Pics/wp-polls/tinymce/plugins
36 ./Daily Pics/wp-polls/tinymce
580 ./Daily Pics/wp-polls
1456 ./Daily Pics
36 ./Plugins/wordpress-author-box
16180 ./Plugins
12 ./May Articles 2013/Xtreme Download Manager
4632 ./May Articles 2013/XCache
命令
rm
代表移除。rm
用于删除文件和目录。
rumenz@local:~# rm PassportApplicationForm_Main_English_V1.0
rm: cannot remove `PassportApplicationForm_Main_English_V1.0': Is a directory
不能简单地通过
rm
删除目录,你必须使用rm -rf
rumenz@local:~# rm -rf PassportApplicationForm_Main_English_V1.0
Warning:
rm -rf
命令是一个危险的命令,如果你不小心把它放到了错误的目录中。一旦你rm -rf
一个目录中的所有文件和目录本身突然就永远丢失了。请谨慎使用。
echo
顾名思义,在标准输出上回显文本。它与 shell 无关,shell 也不读取 echo 命令的输出。但是在交互式脚本中,echo 通过终端将消息传递给用户。它是脚本、交互式脚本中常用的命令之一。
rumenz@local:~# echo "rumenz.com is a very good website"
rumenz.com is a very good website
interactive_shell.sh
在桌面上。(记住.sh
扩展名是必须的)。#!/bin/bash
echo "Please enter your name:"
read name
echo "Welcome to Linux $name"
接下来,设置执行权限并运行脚本。
rumenz@local:~# chmod 777 interactive_shell.sh
rumenz@local:~# ./interactive_shell.sh
Please enter your name:
Ravi Saive
Welcome to Linux Ravi Saive
Note:
#!/bin/bash
告诉 shell 它是一个脚本。
这是一个重要的命令,可用于在终端中更改自己的密码。显然出于安全原因,你需要知道你当前的密码。
rumenz@local:~# passwd
Changing password for rumenz.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
Password unchanged [Here was passowrd remians unchanged, i.e., new password=old password]
Enter new UNIX password: #####
Retype new UNIX password:#####
此命令将命令行上命名的文件打印到命名打印机。
rumenz@local:~# lpr -P deskjet-4620-series 1-final.pdf
Note:
lpq
命令可让你查看打印机的状态(是否已启动)以及等待打印的作业(文件)。
比较任何类型的两个文件并将结果写入标准输出。默认情况下,
cmp
如果文件相同,则返回 0;如果它们不同,则报告出现第一个不同的字节和行号。
rumenz@local:~# cat file1.txt
Hi My name is rumenz
rumenz@local:~# cat file2.txt
Hi My name is rumenz [dot] com
我们比较两个文件并查看命令的输出。
rumenz@local:~# cmp file1.txt file2.txt
file1.txt file2.txt differ: byte 15, line 1
wget
是一种免费实用程序,用于从 Web 上以非交互方式(即可以在后台工作)下载文件。它支持HTTP
,HTTPS
,FTP
协议和HTTP
代理。
rumenz@local:~# wget http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
100%[===========================================================================>] 2,75,557 67.8KB/s in 4.0s
2021-08-22 18:55:00 (67.8 KB/s) - ‘ffmpeg-php-0.6.0.tbz2’ saved [275557/275557]
Mount
是一个重要的命令,用于挂载不挂载自身的文件系统。你需要root权限才能挂载设备。第一次运行
lsblk
在插入你的文件系统并识别你的设备并记下你的设备分配名称后。
rumenz@local:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 923.6G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 7.9G 0 part [SWAP]
sr0 11:0 1 1024M 0 rom
sdb 8:16 1 3.7G 0 disk
└─sdb1 8:17 1 3.7G 0 part
rumenz@local:~# su
Password:
rumenz@local:~# cd /dev
rumenz@local:~# mkdir usb
现在挂载文件系统
sdb1
到目录usb
。
rumenz@local:~# mount /dev/sdb1 /dev/usb
现在你可以导航到
/dev/usb
从终端或X-windows
挂载目录中的 system 和 access 文件。
gcc
是一个编译器
#include <stdio.h>
int main()
{
printf("Hello world\n");
return 0;
}
rumenz@local:~# gcc Hello.c
rumenz@local:~# ./a.out
Hello world
Note: 在编译一个
c
程序输出自动生成到一个新文件a.out
并且每次编译c
程序相同的文件a.out
被修改。因此,在编译期间定义输出文件是一个很好的建议,因此不存在覆盖输出文件的风险。
rumenz@local:~# gcc -o Hello Hello.c
这里
-o
将输出发送到Hello
文件而不是a.out
。再次运行它。
rumenz@local:~# ./Hello
Hello world
g++
是 ' 的内置编译器C++
,第一个面向对象的编程语言。一个简单的c++
程序,将其保存在你的桌面上Add.cpp
(记住.cpp
扩展名是必须的)。
#include <iostream>
using namespace std;
int main()
{
int a;
int b;
cout<<"Enter first number:\n";
cin >> a;
cout <<"Enter the second number:\n";
cin>> b;
cin.ignore();
int result = a + b;
cout<<"Result is"<<" "<<result<<endl;
cin.get();
return 0;
}
rumenz@local:~# g++ Add.cpp
rumenz@local:~# ./a.out
Enter first number:
...
...
Note: 在编译一个
c++
程序输出自动生成到一个新文件a.out
并且每次编译c++
程序相同的文件a.out
被修改。因此,在编译期间定义输出文件是一个很好的建议,因此不存在覆盖输出文件的风险。
rumenz@local:~# g++ -o Add Add.cpp
rumenz@local:~# ./Add
Enter first number:
...
...
Java
是世界上使用率最高的编程语言之一,被认为是快速、安全和可靠的。当今大多数基于 Web 的服务都运行在 Java 上。通过将以下测试粘贴到名为的文件中来创建一个简单的 java 程序
rumenz.java
(记住.java
扩展名是必须的)。
class rumenz {
public static void main(String[] arguments) {
System.out.println("rumenz ");
}
}
rumenz@local:~# javac rumenz.java
rumenz@local:~# java rumenz
相关文章